Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

initializing plastCo from mu leads to SeisSol crashing #10

Open
Thomas-Ulrich opened this issue Nov 20, 2020 · 2 comments
Open

initializing plastCo from mu leads to SeisSol crashing #10

Thomas-Ulrich opened this issue Nov 20, 2020 · 2 comments
Assignees

Comments

@Thomas-Ulrich
Copy link
Contributor

Thomas-Ulrich commented Nov 20, 2020

Initializing the plastic cohesion with:

!Switch
[rho, mu, lambda]:  !Include Aqaba_rhomulambda.yaml
[bulkFriction]: !ConstantMap
  map:
    bulkFriction: 0.6
[plastCo]: !IdentityMap
  components:
    - !SphericalDomainFilter
      radius: 1800
      centre:
        x: -1540
        y: -22115
        z: -7200
      components: !ConstantMap
        map:
          plastCo: 1.0e20
    - !EvalModel
        parameters: [mu]
        model: !Switch
            [mu]: !Include Aqaba_rhomulambda.yaml
        components: !FunctionMap
           map:
              plastCo: return 0.0001*mu;
[s_xx, s_yy, s_zz, s_xy, s_yz, s_xz]: !Include Aqaba_initial_stress.yaml

Where Aqaba_rhomulambda.yaml is:

!LayeredModel
  map: !AffineMap
    matrix:
      z1: [0.0, 0.0, 1.0]
    translation:
      z1: 0
  interpolation: lower
  parameters: [rho, mu, lambda]
  nodes:
    10000.000000: [2348.000000, 1.865899e+10, 2.138201e+10]
    -2500.000000: [2348.000000, 1.865899e+10, 2.138201e+10]
    -5000.000000: [2441.000000, 2.174986e+10, 2.311560e+10]
    -7500.000000: [2441.000000, 2.174986e+10, 2.311560e+10]
    -10000.000000: [2546.000000, 2.560064e+10, 2.722188e+10]
    -12500.000000: [2705.000000, 3.228965e+10, 3.433229e+10]
    -15000.000000: [2784.000000, 3.602053e+10, 3.828058e+10]
    -17500.000000: [2784.000000, 3.602053e+10, 3.828058e+10]
    -20000.000000: [2833.000000, 3.844907e+10, 4.085213e+10]
    -22500.000000: [2888.000000, 4.133043e+10, 4.394226e+10]
    -25000.000000: [2939.000000, 4.410815e+10, 4.688483e+10]
    -27500.000000: [3029.000000, 4.929139e+10, 5.235072e+10]
    -30000.000000: [3107.000000, 5.413101e+10, 5.753690e+10]
    -32500.000000: [3119.000000, 5.488824e+10, 5.839891e+10]
    -35000.000000: [3119.000000, 5.488824e+10, 5.839891e+10]
    -37500.000000: [3119.000000, 5.488824e+10, 5.839891e+10]
    -400000.000000: [3144.000000, 5.652157e+10, 6.000752e+10]

Does not work in SeisSol. I attach the error file:
937504.Aqaba.txt
Actually, the file can be parsed with the easi library without a problem (tested with a small CPP program), so it is probably a SeisSol problem.

On the other hand, when I compute explicitly PlasticCo beforehand, then SeisSol does not crash...

!Switch
[rho, mu, lambda]:  !Include Aqaba_rhomulambda.yaml
[bulkFriction]: !ConstantMap
  map:
    bulkFriction: 0.6
[plastCo]: !IdentityMap
  components:
    - !SphericalDomainFilter
      radius: 1800
      centre:
        x: -1540
        y: -22115
        z: -7200
      components: !ConstantMap
        map:
          plastCo: 1.0e20
    - !LayeredModel
          map: !AffineMap
            matrix:
              z1: [0.0, 0.0, 1.0]
            translation:
              z1: 0
          interpolation: lower
          parameters: [plastCo]
          nodes:
            10000.000000: [1.865899e+06]
            -2500.000000: [1.865899e+06]
            -5000.000000: [2.174986e+06]
            -7500.000000: [2.174986e+06]
            -10000.000000: [2.560064e+06]
            -12500.000000: [3.228965e+06]
            -15000.000000: [3.602053e+06]
            -17500.000000: [3.602053e+06]
            -20000.000000: [3.844907e+06]
            -22500.000000: [4.133043e+06]
            -25000.000000: [4.410815e+06]
            -27500.000000: [4.929139e+06]
            -30000.000000: [5.413101e+06]
            -32500.000000: [5.488824e+06]
            -35000.000000: [5.488824e+06]
            -37500.000000: [5.488824e+06]
            -400000.000000: [5.652157e+06]
[s_xx, s_yy, s_zz, s_xy, s_yz, s_xz]: !Include Aqaba_initial_stress.yaml

This is also a problem we experienced with the Ridgecrest setup.

The full setup is available at: /hppfs/work/pr45fi/di73yeq4/Aqaba_bug.

@Thomas-Ulrich Thomas-Ulrich changed the title initializing plastCo from leads to seissol crashing initializing plastCo from mu leads to SeisSol crashing Nov 20, 2020
@sebwolf-de sebwolf-de self-assigned this Nov 20, 2020
@Thomas-Ulrich
Copy link
Contributor Author

I could get more info from Sanitizer, on a slightly different setup:

AddressSanitizer:DEADLYSIGNAL
=================================================================
==2074128==ERROR: AddressSanitizer: SEGV on unknown address 0x3c3ef4001fa610 (pc 0x0000004b41ee bp 0x7ffcaacd5a40 sp 0x7ffcaacd59f0 T0)
==2074128==The signal is caused by a WRITE memory access.
    #0 0x4b41ed in easi::ArrayOfStructsAdapter<seissol::model::Plasticity>::set(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, easi::Vector<unsigned int> const&, easi::Slice<double> const&) (/hppfs/work/pr63qo/di73yeq4/SeisSol/build-gcc/SeisSol_Debug_dhsw_4_elastic+0x4b41ed)
    #1 0x46ab2f in easi::Composite::evaluate(easi::Query&, easi::ResultAdapter&) /hppfs/work/pr63qo/di73yeq4/SeisSol/submodules/easi/include/easi/component/Composite.h:113
    #2 0x46acf1 in easi::Composite::evaluate(easi::Query&, easi::ResultAdapter&) /hppfs/work/pr63qo/di73yeq4/SeisSol/submodules/easi/include/easi/component/Composite.h:126
    #3 0x46f87c in easi::EvalModel::evaluate(easi::Query&, easi::ResultAdapter&) /hppfs/work/pr63qo/di73yeq4/SeisSol/submodules/easi/include/easi/component/EvalModel.h:75
    #4 0x46b1a4 in easi::Composite::evaluate(easi::Query&, easi::ResultAdapter&) /hppfs/work/pr63qo/di73yeq4/SeisSol/submodules/easi/include/easi/component/Composite.h:175
    #5 0x46bf13 in easi::Switch::evaluate(easi::Query&, easi::ResultAdapter&) /hppfs/work/pr63qo/di73yeq4/SeisSol/submodules/easi/include/easi/component/Switch.h:105
    #6 0x484298 in seissol::initializers::MaterialParameterDB<seissol::model::Plasticity>::evaluateModel(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, seissol::initializers::QueryGenerator const&) (/hppfs/work/pr63qo/di73yeq4/SeisSol/build-gcc/SeisSol_Debug_dhsw_4_elastic+0x484298)
    #7 0x599439 in seissol::Interoperability::initializeModel(char*, bool, bool, bool, bool, double*, double*, double*, double*, double*) /hppfs/work/pr63qo/di73yeq4/SeisSol/src/Solver/Interoperability.cpp:663
    #8 0x5970a8 in c_interoperability_initializeModel /hppfs/work/pr63qo/di73yeq4/SeisSol/src/Solver/Interoperability.cpp:150
    #9 0x5fe17b in __ini_model_mod_MOD_ini_model /hppfs/work/pr63qo/di73yeq4/SeisSol/src/Physics/ini_model.f90:134
    #10 0x55f484 in __ini_seissol_mod_MOD_ini_seissol /hppfs/work/pr63qo/di73yeq4/SeisSol/src/Initializer/ini_seissol.f90:276
    #11 0x54dba0 in fortran_main /hppfs/work/pr63qo/di73yeq4/SeisSol/src/seissolxx.f90:184
    #12 0x41947a in main /hppfs/work/pr63qo/di73yeq4/SeisSol/src/main.cpp:56
    #13 0x7f0db9b87349 in __libc_start_main (/lib64/libc.so.6+0x24349)
    #14 0x419359 in _start (/hppfs/work/pr63qo/di73yeq4/SeisSol/build-gcc/SeisSol_Debug_dhsw_4_elastic+0x419359)

Here is the material file:

!Switch
[rho, mu, lambda]:  !Include northridge_material.yaml
[bulkFriction]: !ConstantMap
  map:
    bulkFriction: 0.6
#cohesion for off-fault plasticity
[plastCo]: !IdentityMap
  components:
    #turn off plasticity in a sphere around the hypocenter
    - !SphericalDomainFilter
      radius: 2.0e3
      centre:
        x:  24660.0
        y: -6950
        z: -10200.0
      components: !ConstantMap
        map:
          plastCo: 1.0e20
    #depth dependent cohesion
    - !EvalModel
        parameters: [mu]
        model: !Switch
          [mu]: !Include northridge_material.yaml
        components: !FunctionMap
          map:
            plastCo: |
              return 0.0001*mu;
[s_xx, s_yy, s_zz, s_xy, s_yz, s_xz]: !Include Marmara_initial_stress.yaml

Any idea @uphoffc ?

@Thomas-Ulrich
Copy link
Contributor Author

[plastCo]: !IdentityMap
  components:
    #depth dependent cohesion
    - !EvalModel
        parameters: [mu]
        model: !Switch
          [mu]: !Include northridge_material.yaml
        components: !FunctionMap
          map:
            plastCo: |
              return 0.0001*mu;

This works fine. strange.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants