diff --git a/DATA/Par_file b/DATA/Par_file index a8fd51264..c7ebf8ab0 100644 --- a/DATA/Par_file +++ b/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 18.d0 diff --git a/EXAMPLES/applications/CPML_examples/CPML_realistic_mesh_with_topography/DATA/Par_file b/EXAMPLES/applications/CPML_examples/CPML_realistic_mesh_with_topography/DATA/Par_file index 997e08fc3..77f05b97a 100644 --- a/EXAMPLES/applications/CPML_examples/CPML_realistic_mesh_with_topography/DATA/Par_file +++ b/EXAMPLES/applications/CPML_examples/CPML_realistic_mesh_with_topography/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_absorbing_CPML_5sides/DATA/Par_file b/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_absorbing_CPML_5sides/DATA/Par_file index 9d7670766..48f2668ef 100644 --- a/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_absorbing_CPML_5sides/DATA/Par_file +++ b/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_absorbing_CPML_5sides/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_absorbing_CPML_6sides/DATA/Par_file b/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_absorbing_CPML_6sides/DATA/Par_file index 922f6cf60..da953809a 100644 --- a/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_absorbing_CPML_6sides/DATA/Par_file +++ b/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_absorbing_CPML_6sides/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_elastic_absorbing_CPML_5sides/DATA/Par_file b/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_elastic_absorbing_CPML_5sides/DATA/Par_file index bbd820036..e65b3eb79 100644 --- a/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_elastic_absorbing_CPML_5sides/DATA/Par_file +++ b/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_elastic_absorbing_CPML_5sides/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_elastic_absorbing_CPML_6sides/DATA/Par_file b/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_elastic_absorbing_CPML_6sides/DATA/Par_file index 922f6cf60..da953809a 100644 --- a/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_elastic_absorbing_CPML_6sides/DATA/Par_file +++ b/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_acoustic_elastic_absorbing_CPML_6sides/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_elastic_absorbing_CPML_5sides/DATA/Par_file b/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_elastic_absorbing_CPML_5sides/DATA/Par_file index bbd820036..e65b3eb79 100644 --- a/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_elastic_absorbing_CPML_5sides/DATA/Par_file +++ b/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_elastic_absorbing_CPML_5sides/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_elastic_absorbing_CPML_6sides/DATA/Par_file b/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_elastic_absorbing_CPML_6sides/DATA/Par_file index 922f6cf60..da953809a 100644 --- a/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_elastic_absorbing_CPML_6sides/DATA/Par_file +++ b/EXAMPLES/applications/CPML_examples/homogeneous_halfspace_HEX8_elastic_absorbing_CPML_6sides/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/Gmsh_simple_box_hex27/DATA/Par_file b/EXAMPLES/applications/Gmsh_simple_box_hex27/DATA/Par_file index 361b2040f..3a32cefd8 100644 --- a/EXAMPLES/applications/Gmsh_simple_box_hex27/DATA/Par_file +++ b/EXAMPLES/applications/Gmsh_simple_box_hex27/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .true. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .true. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 1.0d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/Gmsh_simple_lddrk/DATA/Par_file b/EXAMPLES/applications/Gmsh_simple_lddrk/DATA/Par_file index a2a5928e1..f20fae1b3 100644 --- a/EXAMPLES/applications/Gmsh_simple_lddrk/DATA/Par_file +++ b/EXAMPLES/applications/Gmsh_simple_lddrk/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .true. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .true. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/LTS_homogeneous_halfspace_HEX8/DATA/Par_file b/EXAMPLES/applications/LTS_homogeneous_halfspace_HEX8/DATA/Par_file index 5d59226ae..a2d9540c8 100644 --- a/EXAMPLES/applications/LTS_homogeneous_halfspace_HEX8/DATA/Par_file +++ b/EXAMPLES/applications/LTS_homogeneous_halfspace_HEX8/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 18.d0 @@ -324,6 +325,13 @@ TRACTION_PATH = DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/cmt_force_hybrid/DATA/Par_file b/EXAMPLES/applications/cmt_force_hybrid/DATA/Par_file index 0dd00482a..24e86f409 100644 --- a/EXAMPLES/applications/cmt_force_hybrid/DATA/Par_file +++ b/EXAMPLES/applications/cmt_force_hybrid/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 1.d0 @@ -330,6 +331,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/coffee_mug_with_fluid_inside/DATA/Par_file b/EXAMPLES/applications/coffee_mug_with_fluid_inside/DATA/Par_file index 8c5d5bc27..33fbc5df1 100644 --- a/EXAMPLES/applications/coffee_mug_with_fluid_inside/DATA/Par_file +++ b/EXAMPLES/applications/coffee_mug_with_fluid_inside/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 18.d0 @@ -324,6 +325,13 @@ TRACTION_PATH = DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/decompose_mesh_MPI/DATA/Par_file b/EXAMPLES/applications/decompose_mesh_MPI/DATA/Par_file index e39728a8c..f871d4855 100644 --- a/EXAMPLES/applications/decompose_mesh_MPI/DATA/Par_file +++ b/EXAMPLES/applications/decompose_mesh_MPI/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 18.d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/decompose_mesh_MPI_with_faults/DATA/Par_file b/EXAMPLES/applications/decompose_mesh_MPI_with_faults/DATA/Par_file index 80efd01f4..2f8983509 100644 --- a/EXAMPLES/applications/decompose_mesh_MPI_with_faults/DATA/Par_file +++ b/EXAMPLES/applications/decompose_mesh_MPI_with_faults/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/fault_examples/hete_fault_properties/DATA/Par_file b/EXAMPLES/applications/fault_examples/hete_fault_properties/DATA/Par_file index eedf07cb7..0617a58ba 100644 --- a/EXAMPLES/applications/fault_examples/hete_fault_properties/DATA/Par_file +++ b/EXAMPLES/applications/fault_examples/hete_fault_properties/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/fault_examples/splay_faults/DATA/Par_file b/EXAMPLES/applications/fault_examples/splay_faults/DATA/Par_file index 00877aea1..610377dd6 100644 --- a/EXAMPLES/applications/fault_examples/splay_faults/DATA/Par_file +++ b/EXAMPLES/applications/fault_examples/splay_faults/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/fault_examples/tpv102/DATA/Par_file b/EXAMPLES/applications/fault_examples/tpv102/DATA/Par_file index 09d5e989c..72d8d92aa 100644 --- a/EXAMPLES/applications/fault_examples/tpv102/DATA/Par_file +++ b/EXAMPLES/applications/fault_examples/tpv102/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/fault_examples/tpv103/DATA/Par_file b/EXAMPLES/applications/fault_examples/tpv103/DATA/Par_file index 5190c2b04..f65c72bcf 100644 --- a/EXAMPLES/applications/fault_examples/tpv103/DATA/Par_file +++ b/EXAMPLES/applications/fault_examples/tpv103/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/fault_examples/tpv15/DATA/Par_file b/EXAMPLES/applications/fault_examples/tpv15/DATA/Par_file index 227794d12..5cd59793d 100644 --- a/EXAMPLES/applications/fault_examples/tpv15/DATA/Par_file +++ b/EXAMPLES/applications/fault_examples/tpv15/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/fault_examples/tpv16/DATA/Par_file b/EXAMPLES/applications/fault_examples/tpv16/DATA/Par_file index eb46c10f5..5f228e9dd 100644 --- a/EXAMPLES/applications/fault_examples/tpv16/DATA/Par_file +++ b/EXAMPLES/applications/fault_examples/tpv16/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/fault_examples/tpv5/DATA/Par_file b/EXAMPLES/applications/fault_examples/tpv5/DATA/Par_file index f0221e62d..e35ad8506 100644 --- a/EXAMPLES/applications/fault_examples/tpv5/DATA/Par_file +++ b/EXAMPLES/applications/fault_examples/tpv5/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/homogeneous_acoustic/DATA/Par_file b/EXAMPLES/applications/homogeneous_acoustic/DATA/Par_file index 275ddfc61..fd5584fa0 100644 --- a/EXAMPLES/applications/homogeneous_acoustic/DATA/Par_file +++ b/EXAMPLES/applications/homogeneous_acoustic/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/homogeneous_halfspace_HEX27_elastic_no_absorbing/DATA/Par_file b/EXAMPLES/applications/homogeneous_halfspace_HEX27_elastic_no_absorbing/DATA/Par_file index 8ba140980..441c5ef77 100644 --- a/EXAMPLES/applications/homogeneous_halfspace_HEX27_elastic_no_absorbing/DATA/Par_file +++ b/EXAMPLES/applications/homogeneous_halfspace_HEX27_elastic_no_absorbing/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/homogeneous_halfspace_HEX8_elastic_absorbing_Stacey_5sides/DATA/Par_file b/EXAMPLES/applications/homogeneous_halfspace_HEX8_elastic_absorbing_Stacey_5sides/DATA/Par_file index a8fd51264..c7ebf8ab0 100644 --- a/EXAMPLES/applications/homogeneous_halfspace_HEX8_elastic_absorbing_Stacey_5sides/DATA/Par_file +++ b/EXAMPLES/applications/homogeneous_halfspace_HEX8_elastic_absorbing_Stacey_5sides/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 18.d0 diff --git a/EXAMPLES/applications/homogeneous_halfspace_HEX8_elastic_no_absorbing/DATA/Par_file b/EXAMPLES/applications/homogeneous_halfspace_HEX8_elastic_no_absorbing/DATA/Par_file index 4d151df5c..8ffcaee63 100644 --- a/EXAMPLES/applications/homogeneous_halfspace_HEX8_elastic_no_absorbing/DATA/Par_file +++ b/EXAMPLES/applications/homogeneous_halfspace_HEX8_elastic_no_absorbing/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/homogeneous_poroelastic/DATA/Par_file b/EXAMPLES/applications/homogeneous_poroelastic/DATA/Par_file index d3e0dcb79..c96029c52 100644 --- a/EXAMPLES/applications/homogeneous_poroelastic/DATA/Par_file +++ b/EXAMPLES/applications/homogeneous_poroelastic/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/homogeneous_poroelastic/DATA/Par_file_coarse b/EXAMPLES/applications/homogeneous_poroelastic/DATA/Par_file_coarse index a0e668018..76ba80d6f 100644 --- a/EXAMPLES/applications/homogeneous_poroelastic/DATA/Par_file_coarse +++ b/EXAMPLES/applications/homogeneous_poroelastic/DATA/Par_file_coarse @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/inversion_examples/fwi_test_acoustic/DATA/Par_file b/EXAMPLES/applications/inversion_examples/fwi_test_acoustic/DATA/Par_file index 8d48086f6..ce34d44e2 100644 --- a/EXAMPLES/applications/inversion_examples/fwi_test_acoustic/DATA/Par_file +++ b/EXAMPLES/applications/inversion_examples/fwi_test_acoustic/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = dummy # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 1.0d0 @@ -324,6 +325,13 @@ TRACTION_PATH = dummy FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/layered_halfspace/DATA/Par_file b/EXAMPLES/applications/layered_halfspace/DATA/Par_file index 7c6e31929..f6953ed03 100644 --- a/EXAMPLES/applications/layered_halfspace/DATA/Par_file +++ b/EXAMPLES/applications/layered_halfspace/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/meshfem3D_examples/CPML_extended_mesh/DATA/Par_file b/EXAMPLES/applications/meshfem3D_examples/CPML_extended_mesh/DATA/Par_file index 080eccde1..1a616769a 100644 --- a/EXAMPLES/applications/meshfem3D_examples/CPML_extended_mesh/DATA/Par_file +++ b/EXAMPLES/applications/meshfem3D_examples/CPML_extended_mesh/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 1.d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/meshfem3D_examples/cavity/DATA/Par_file b/EXAMPLES/applications/meshfem3D_examples/cavity/DATA/Par_file index 4c1c31aa4..32e8f6419 100644 --- a/EXAMPLES/applications/meshfem3D_examples/cavity/DATA/Par_file +++ b/EXAMPLES/applications/meshfem3D_examples/cavity/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/meshfem3D_examples/cavity/DATA/Par_file.96procs b/EXAMPLES/applications/meshfem3D_examples/cavity/DATA/Par_file.96procs index eccc2d51c..0c026185a 100644 --- a/EXAMPLES/applications/meshfem3D_examples/cavity/DATA/Par_file.96procs +++ b/EXAMPLES/applications/meshfem3D_examples/cavity/DATA/Par_file.96procs @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/meshfem3D_examples/many_interfaces/DATA/Par_file b/EXAMPLES/applications/meshfem3D_examples/many_interfaces/DATA/Par_file index b4a230b40..4cfbe23e1 100644 --- a/EXAMPLES/applications/meshfem3D_examples/many_interfaces/DATA/Par_file +++ b/EXAMPLES/applications/meshfem3D_examples/many_interfaces/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/meshfem3D_examples/regular_element_mesh/DATA/Par_file b/EXAMPLES/applications/meshfem3D_examples/regular_element_mesh/DATA/Par_file index fd16c5596..bfe45bfeb 100644 --- a/EXAMPLES/applications/meshfem3D_examples/regular_element_mesh/DATA/Par_file +++ b/EXAMPLES/applications/meshfem3D_examples/regular_element_mesh/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .true. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .true. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 1.d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/meshfem3D_examples/sep_bathymetry/DATA/Par_file b/EXAMPLES/applications/meshfem3D_examples/sep_bathymetry/DATA/Par_file index 49cad193b..a7fff7aa7 100644 --- a/EXAMPLES/applications/meshfem3D_examples/sep_bathymetry/DATA/Par_file +++ b/EXAMPLES/applications/meshfem3D_examples/sep_bathymetry/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./sep_model # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/meshfem3D_examples/simple_model/DATA/Par_file b/EXAMPLES/applications/meshfem3D_examples/simple_model/DATA/Par_file index a016746a4..e7f86ab5b 100644 --- a/EXAMPLES/applications/meshfem3D_examples/simple_model/DATA/Par_file +++ b/EXAMPLES/applications/meshfem3D_examples/simple_model/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/meshfem3D_examples/socal1D/DATA/Par_file b/EXAMPLES/applications/meshfem3D_examples/socal1D/DATA/Par_file index 4c90c232b..9f28d257c 100644 --- a/EXAMPLES/applications/meshfem3D_examples/socal1D/DATA/Par_file +++ b/EXAMPLES/applications/meshfem3D_examples/socal1D/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .true. TOPOGRAPHY = .true. -ATTENUATION = .true. ANISOTROPY = .true. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .true. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/meshfem3D_examples/socal1D/example_utm/Par_file_utm b/EXAMPLES/applications/meshfem3D_examples/socal1D/example_utm/Par_file_utm index 4c98183ff..0cfbe0251 100644 --- a/EXAMPLES/applications/meshfem3D_examples/socal1D/example_utm/Par_file_utm +++ b/EXAMPLES/applications/meshfem3D_examples/socal1D/example_utm/Par_file_utm @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/noise_non_uniform/DATA/Par_file b/EXAMPLES/applications/noise_non_uniform/DATA/Par_file index 36d5b7e95..ca61633a7 100644 --- a/EXAMPLES/applications/noise_non_uniform/DATA/Par_file +++ b/EXAMPLES/applications/noise_non_uniform/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 18.d0 @@ -324,6 +325,13 @@ TRACTION_PATH = DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/noise_non_uniform/DATA/Par_file_step1 b/EXAMPLES/applications/noise_non_uniform/DATA/Par_file_step1 index 7ad288bf7..88cf2e399 100644 --- a/EXAMPLES/applications/noise_non_uniform/DATA/Par_file_step1 +++ b/EXAMPLES/applications/noise_non_uniform/DATA/Par_file_step1 @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 18.d0 @@ -324,6 +325,13 @@ TRACTION_PATH = DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/noise_non_uniform/DATA/Par_file_step2 b/EXAMPLES/applications/noise_non_uniform/DATA/Par_file_step2 index 36d5b7e95..ca61633a7 100644 --- a/EXAMPLES/applications/noise_non_uniform/DATA/Par_file_step2 +++ b/EXAMPLES/applications/noise_non_uniform/DATA/Par_file_step2 @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 18.d0 @@ -324,6 +325,13 @@ TRACTION_PATH = DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/noise_tomography/DATA/Par_file b/EXAMPLES/applications/noise_tomography/DATA/Par_file index d878a497d..2a7d7857a 100644 --- a/EXAMPLES/applications/noise_tomography/DATA/Par_file +++ b/EXAMPLES/applications/noise_tomography/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/oldstuff/small_example_coupling_axisem_specfem_matlab_gui_CURRENTLY_BROKEN_according_to_Vadim/Param_files/DATA/Par_file b/EXAMPLES/applications/oldstuff/small_example_coupling_axisem_specfem_matlab_gui_CURRENTLY_BROKEN_according_to_Vadim/Param_files/DATA/Par_file index 27d57cdfc..5fc88f52b 100644 --- a/EXAMPLES/applications/oldstuff/small_example_coupling_axisem_specfem_matlab_gui_CURRENTLY_BROKEN_according_to_Vadim/Param_files/DATA/Par_file +++ b/EXAMPLES/applications/oldstuff/small_example_coupling_axisem_specfem_matlab_gui_CURRENTLY_BROKEN_according_to_Vadim/Param_files/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/1/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = false # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/oldstuff/small_example_coupling_axisem_specfem_matlab_gui_CURRENTLY_BROKEN_according_to_Vadim/Param_files/DATA/Par_file_one_proc b/EXAMPLES/applications/oldstuff/small_example_coupling_axisem_specfem_matlab_gui_CURRENTLY_BROKEN_according_to_Vadim/Param_files/DATA/Par_file_one_proc index 3c7f29ae5..22decebb2 100644 --- a/EXAMPLES/applications/oldstuff/small_example_coupling_axisem_specfem_matlab_gui_CURRENTLY_BROKEN_according_to_Vadim/Param_files/DATA/Par_file_one_proc +++ b/EXAMPLES/applications/oldstuff/small_example_coupling_axisem_specfem_matlab_gui_CURRENTLY_BROKEN_according_to_Vadim/Param_files/DATA/Par_file_one_proc @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/1/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = false # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/oldstuff/small_example_coupling_axisem_specfem_matlab_gui_CURRENTLY_BROKEN_according_to_Vadim/Param_files/DATA/Par_file_several_proc b/EXAMPLES/applications/oldstuff/small_example_coupling_axisem_specfem_matlab_gui_CURRENTLY_BROKEN_according_to_Vadim/Param_files/DATA/Par_file_several_proc index 27d57cdfc..5fc88f52b 100644 --- a/EXAMPLES/applications/oldstuff/small_example_coupling_axisem_specfem_matlab_gui_CURRENTLY_BROKEN_according_to_Vadim/Param_files/DATA/Par_file_several_proc +++ b/EXAMPLES/applications/oldstuff/small_example_coupling_axisem_specfem_matlab_gui_CURRENTLY_BROKEN_according_to_Vadim/Param_files/DATA/Par_file_several_proc @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/1/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = false # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/oldstuff/small_example_please_do_not_remove_CURRENTLY_BROKEN_according_to_Vadim/create_data/DATA/Par_file b/EXAMPLES/applications/oldstuff/small_example_please_do_not_remove_CURRENTLY_BROKEN_according_to_Vadim/create_data/DATA/Par_file index a4c20b52c..af47769f4 100644 --- a/EXAMPLES/applications/oldstuff/small_example_please_do_not_remove_CURRENTLY_BROKEN_according_to_Vadim/create_data/DATA/Par_file +++ b/EXAMPLES/applications/oldstuff/small_example_please_do_not_remove_CURRENTLY_BROKEN_according_to_Vadim/create_data/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = ./DATA/FKmodel_30_20 RECIPROCITY_AND_KH_INTEGRAL = false # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/oldstuff/small_example_please_do_not_remove_CURRENTLY_BROKEN_according_to_Vadim/fwi_fk/DATA/Par_file b/EXAMPLES/applications/oldstuff/small_example_please_do_not_remove_CURRENTLY_BROKEN_according_to_Vadim/fwi_fk/DATA/Par_file index 37f97adf7..79b5d2f77 100644 --- a/EXAMPLES/applications/oldstuff/small_example_please_do_not_remove_CURRENTLY_BROKEN_according_to_Vadim/fwi_fk/DATA/Par_file +++ b/EXAMPLES/applications/oldstuff/small_example_please_do_not_remove_CURRENTLY_BROKEN_according_to_Vadim/fwi_fk/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = ./DATA/FKmodel_30_20 RECIPROCITY_AND_KH_INTEGRAL = false # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/small_adjoint_multiple_sources/DATA/Par_file b/EXAMPLES/applications/small_adjoint_multiple_sources/DATA/Par_file index a4eed9e62..d8758e756 100644 --- a/EXAMPLES/applications/small_adjoint_multiple_sources/DATA/Par_file +++ b/EXAMPLES/applications/small_adjoint_multiple_sources/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/small_example_coupling_FK_specfem/DATA/Par_file b/EXAMPLES/applications/small_example_coupling_FK_specfem/DATA/Par_file index 3895c4c78..8118d9970 100644 --- a/EXAMPLES/applications/small_example_coupling_FK_specfem/DATA/Par_file +++ b/EXAMPLES/applications/small_example_coupling_FK_specfem/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/1/ FKMODEL_FILE = DATA/FKMODEL RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/small_example_coupling_FK_specfem_with_fluid/DATA/Par_file b/EXAMPLES/applications/small_example_coupling_FK_specfem_with_fluid/DATA/Par_file index e8f2aee9f..dfd3945aa 100644 --- a/EXAMPLES/applications/small_example_coupling_FK_specfem_with_fluid/DATA/Par_file +++ b/EXAMPLES/applications/small_example_coupling_FK_specfem_with_fluid/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/1/ FKMODEL_FILE = DATA/FKMODEL RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/small_example_coupling_SPECFEM_specfem/DATA.local/Par_file b/EXAMPLES/applications/small_example_coupling_SPECFEM_specfem/DATA.local/Par_file index a6a27df60..3a30324d2 100644 --- a/EXAMPLES/applications/small_example_coupling_SPECFEM_specfem/DATA.local/Par_file +++ b/EXAMPLES/applications/small_example_coupling_SPECFEM_specfem/DATA.local/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = dummy # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 1.d0 @@ -327,6 +328,13 @@ RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet # start time of coupled simulation INJECTION_START_TIME = 2.0 +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/small_example_coupling_SPECFEM_specfem/DATA.regional/Par_file b/EXAMPLES/applications/small_example_coupling_SPECFEM_specfem/DATA.regional/Par_file index 2c4586aa4..cf7efc2e0 100644 --- a/EXAMPLES/applications/small_example_coupling_SPECFEM_specfem/DATA.regional/Par_file +++ b/EXAMPLES/applications/small_example_coupling_SPECFEM_specfem/DATA.regional/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = dummy # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 1.d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./COUPLING_FILES FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files/DATA/Par_file b/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files/DATA/Par_file index 77af53c3e..089991730 100644 --- a/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files/DATA/Par_file +++ b/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/1/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = false # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files/DATA/Par_file_one_proc b/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files/DATA/Par_file_one_proc index 3c7f29ae5..22decebb2 100644 --- a/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files/DATA/Par_file_one_proc +++ b/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files/DATA/Par_file_one_proc @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/1/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = false # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files/DATA/Par_file_several_proc b/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files/DATA/Par_file_several_proc index 77af53c3e..089991730 100644 --- a/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files/DATA/Par_file_several_proc +++ b/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files/DATA/Par_file_several_proc @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/1/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = false # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files_for_buried_box/DATA/Par_file b/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files_for_buried_box/DATA/Par_file index aebf7ac50..619c4c142 100644 --- a/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files_for_buried_box/DATA/Par_file +++ b/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files_for_buried_box/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/1/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files_for_buried_box/DATA/Par_file_one_proc b/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files_for_buried_box/DATA/Par_file_one_proc index 15b1d1f13..8d5be730c 100644 --- a/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files_for_buried_box/DATA/Par_file_one_proc +++ b/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files_for_buried_box/DATA/Par_file_one_proc @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/1/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files_for_buried_box/DATA/Par_file_several_proc b/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files_for_buried_box/DATA/Par_file_several_proc index aebf7ac50..619c4c142 100644 --- a/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files_for_buried_box/DATA/Par_file_several_proc +++ b/EXAMPLES/applications/small_example_coupling_axisem_specfem/Param_files_for_buried_box/DATA/Par_file_several_proc @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/1/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/tomographic_model/DATA/Par_file b/EXAMPLES/applications/tomographic_model/DATA/Par_file index 9e28034ce..a7a4b74c7 100644 --- a/EXAMPLES/applications/tomographic_model/DATA/Par_file +++ b/EXAMPLES/applications/tomographic_model/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/waterlayered_halfspace/DATA/Par_file b/EXAMPLES/applications/waterlayered_halfspace/DATA/Par_file index 9602bda29..6065a9a25 100644 --- a/EXAMPLES/applications/waterlayered_halfspace/DATA/Par_file +++ b/EXAMPLES/applications/waterlayered_halfspace/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/waterlayered_poroelastic/DATA/Par_file b/EXAMPLES/applications/waterlayered_poroelastic/DATA/Par_file index 15c6bbbb5..02e70681e 100644 --- a/EXAMPLES/applications/waterlayered_poroelastic/DATA/Par_file +++ b/EXAMPLES/applications/waterlayered_poroelastic/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = dummy # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = dummy FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/applications/wavefield_discontinuity/test_small_injection/DATA/Par_file b/EXAMPLES/applications/wavefield_discontinuity/test_small_injection/DATA/Par_file index 3d554d57a..add7f8c44 100644 --- a/EXAMPLES/applications/wavefield_discontinuity/test_small_injection/DATA/Par_file +++ b/EXAMPLES/applications/wavefield_discontinuity/test_small_injection/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 18.d0 diff --git a/EXAMPLES/benchmarks/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/DATA/Par_file b/EXAMPLES/benchmarks/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/DATA/Par_file index 2f2376638..a9439ad4c 100644 --- a/EXAMPLES/benchmarks/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/DATA/Par_file +++ b/EXAMPLES/benchmarks/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/benchmarks/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC_ELASTIC/DATA/Par_file b/EXAMPLES/benchmarks/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC_ELASTIC/DATA/Par_file index a528a5d31..35f1d1111 100644 --- a/EXAMPLES/benchmarks/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC_ELASTIC/DATA/Par_file +++ b/EXAMPLES/benchmarks/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC_ELASTIC/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/benchmarks/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/DATA/Par_file b/EXAMPLES/benchmarks/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/DATA/Par_file index 3c8ffd9b9..2646b4f66 100644 --- a/EXAMPLES/benchmarks/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/DATA/Par_file +++ b/EXAMPLES/benchmarks/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/benchmarks/analytic_examples/analytic_solution_elastic/DATA/Par_file b/EXAMPLES/benchmarks/analytic_examples/analytic_solution_elastic/DATA/Par_file index 7b32a703e..7880764f0 100644 --- a/EXAMPLES/benchmarks/analytic_examples/analytic_solution_elastic/DATA/Par_file +++ b/EXAMPLES/benchmarks/analytic_examples/analytic_solution_elastic/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = dummy # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 1.0d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/benchmarks/attenuation/viscoelastic/DATA/Par_file b/EXAMPLES/benchmarks/attenuation/viscoelastic/DATA/Par_file index eaa04230a..a6f77d838 100644 --- a/EXAMPLES/benchmarks/attenuation/viscoelastic/DATA/Par_file +++ b/EXAMPLES/benchmarks/attenuation/viscoelastic/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .true. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .true. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 18.d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/benchmarks/check_absolute_amplitude_of_force_source_seismograms/DATA/Par_file b/EXAMPLES/benchmarks/check_absolute_amplitude_of_force_source_seismograms/DATA/Par_file index 4202ad52a..7c179a30e 100644 --- a/EXAMPLES/benchmarks/check_absolute_amplitude_of_force_source_seismograms/DATA/Par_file +++ b/EXAMPLES/benchmarks/check_absolute_amplitude_of_force_source_seismograms/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .true. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .true. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 140.0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/real_world/Birch_glacier_collapse/DATA/Par_file b/EXAMPLES/real_world/Birch_glacier_collapse/DATA/Par_file index d8deecad9..c84da9477 100644 --- a/EXAMPLES/real_world/Birch_glacier_collapse/DATA/Par_file +++ b/EXAMPLES/real_world/Birch_glacier_collapse/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = dummy # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .true. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .true. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 1.d0 @@ -324,6 +325,13 @@ TRACTION_PATH = dummy FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/real_world/Campi_Flegrei/DATA/Par_file b/EXAMPLES/real_world/Campi_Flegrei/DATA/Par_file index 9d7f297e8..35a8cd8bb 100644 --- a/EXAMPLES/real_world/Campi_Flegrei/DATA/Par_file +++ b/EXAMPLES/real_world/Campi_Flegrei/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = dummy # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .true. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .true. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 1.d0 @@ -324,6 +325,13 @@ TRACTION_PATH = dummy FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/real_world/Mendocino_Mw7.0/DATA/Par_file b/EXAMPLES/real_world/Mendocino_Mw7.0/DATA/Par_file index f43b712a7..b8aa075cb 100644 --- a/EXAMPLES/real_world/Mendocino_Mw7.0/DATA/Par_file +++ b/EXAMPLES/real_world/Mendocino_Mw7.0/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = dummy # parameters describing the model APPROXIMATE_OCEAN_LOAD = .true. TOPOGRAPHY = .false. -ATTENUATION = .true. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .true. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 1.d0 @@ -324,6 +325,13 @@ TRACTION_PATH = dummy FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/real_world/Moon_Apollo_impact/DATA/Par_file b/EXAMPLES/real_world/Moon_Apollo_impact/DATA/Par_file index 86bf4ab8a..14b1878f9 100644 --- a/EXAMPLES/real_world/Moon_Apollo_impact/DATA/Par_file +++ b/EXAMPLES/real_world/Moon_Apollo_impact/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -334,6 +335,13 @@ TRACTION_PATH = dummy FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/real_world/Mount_StHelens/DATA/Par_file b/EXAMPLES/real_world/Mount_StHelens/DATA/Par_file index 2ed3f5e11..08e4b86f3 100644 --- a/EXAMPLES/real_world/Mount_StHelens/DATA/Par_file +++ b/EXAMPLES/real_world/Mount_StHelens/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/real_world/Myanmar_Mw7.7/DATA/Par_file b/EXAMPLES/real_world/Myanmar_Mw7.7/DATA/Par_file index 35c675b1e..915ad2cc9 100644 --- a/EXAMPLES/real_world/Myanmar_Mw7.7/DATA/Par_file +++ b/EXAMPLES/real_world/Myanmar_Mw7.7/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = dummy # parameters describing the model APPROXIMATE_OCEAN_LOAD = .true. TOPOGRAPHY = .false. -ATTENUATION = .true. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .true. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 1.d0 @@ -324,6 +325,13 @@ TRACTION_PATH = dummy FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/reproducible_study/seismoacoustic_bishop2022/DATA_FIG4/Par_file b/EXAMPLES/reproducible_study/seismoacoustic_bishop2022/DATA_FIG4/Par_file index f8ce1c3fc..0a1e4ceb8 100644 --- a/EXAMPLES/reproducible_study/seismoacoustic_bishop2022/DATA_FIG4/Par_file +++ b/EXAMPLES/reproducible_study/seismoacoustic_bishop2022/DATA_FIG4/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/reproducible_study/seismoacoustic_bishop2022/DATA_FIG8/Par_file b/EXAMPLES/reproducible_study/seismoacoustic_bishop2022/DATA_FIG8/Par_file index c995ff3ec..f8140cff8 100644 --- a/EXAMPLES/reproducible_study/seismoacoustic_bishop2022/DATA_FIG8/Par_file +++ b/EXAMPLES/reproducible_study/seismoacoustic_bishop2022/DATA_FIG8/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = ./DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = ./DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/EXAMPLES/reproducible_study/sensitivity_kernels_liutromp2006/DATA/Par_file b/EXAMPLES/reproducible_study/sensitivity_kernels_liutromp2006/DATA/Par_file index 90d3747b5..4738d6970 100644 --- a/EXAMPLES/reproducible_study/sensitivity_kernels_liutromp2006/DATA/Par_file +++ b/EXAMPLES/reproducible_study/sensitivity_kernels_liutromp2006/DATA/Par_file @@ -75,9 +75,10 @@ SEP_MODEL_DIRECTORY = DATA/my_SEP_model/ # parameters describing the model APPROXIMATE_OCEAN_LOAD = .false. TOPOGRAPHY = .false. -ATTENUATION = .false. ANISOTROPY = .false. GRAVITY = .false. +ROTATION = .false. +ATTENUATION = .false. # in case of attenuation, reference frequency in Hz at which the velocity values in the velocity model are given (unused otherwise) ATTENUATION_f0_REFERENCE = 0.33333d0 @@ -324,6 +325,13 @@ TRACTION_PATH = DATA/AxiSEM_tractions/3/ FKMODEL_FILE = FKmodel RECIPROCITY_AND_KH_INTEGRAL = .false. # does not work yet +#----------------------------------------------------------- +## +## Prescribed wavefield discontinuity on an interface +## +##----------------------------------------------------------- +IS_WAVEFIELD_DISCONTINUITY = .false. + #----------------------------------------------------------- # # Run modes diff --git a/src/generate_databases/create_mass_matrices.f90 b/src/generate_databases/create_mass_matrices.f90 index 83ff156a4..c22f555dc 100644 --- a/src/generate_databases/create_mass_matrices.f90 +++ b/src/generate_databases/create_mass_matrices.f90 @@ -27,9 +27,9 @@ subroutine create_mass_matrices(nglob) -! returns precomputed mass matrix in rmass array +! returns precomputed mass matrix in rmass arrays - use constants, only: CUSTOM_REAL + use constants, only: CUSTOM_REAL,IMAIN,myrank use shared_parameters, only: ACOUSTIC_SIMULATION, ELASTIC_SIMULATION, POROELASTIC_SIMULATION, & PML_CONDITIONS, STACEY_ABSORBING_CONDITIONS, DT @@ -53,25 +53,39 @@ subroutine create_mass_matrices(nglob) ! elastic domains if (ELASTIC_SIMULATION) then ! allocates memory - allocate(rmass(nglob),stat=ier) + allocate(rmassx(nglob), & + rmassy(nglob), & + rmassz(nglob),stat=ier) if (ier /= 0) call exit_MPI_without_rank('error allocating array 660') - if (ier /= 0) call exit_MPI_without_rank('error allocating array rmass') - rmass(:) = 0._CUSTOM_REAL + if (ier /= 0) call exit_MPI_without_rank('error allocating array rmassx,rmassy,rmassz') + rmassx(:) = 0._CUSTOM_REAL + rmassy(:) = 0._CUSTOM_REAL + rmassz(:) = 0._CUSTOM_REAL ! returns elastic mass matrix if (PML_CONDITIONS) then + ! user info + if (myrank == 0) then + write(IMAIN,*) ' elastic mass matrix w/ PML elements' + endif + call define_mass_matrices_pml_elastic(nglob,nspec,nspec_irregular,DT,ibool,rhostore, & jacobianstore,irregular_element_number,jacobian_regular, & wxgll,wygll,wzgll,ispec_is_elastic, & nspec_cpml,is_CPML,CPML_regions,CPML_to_spec, & d_store_x,d_store_y,d_store_z, & K_store_x,K_store_y,K_store_z, & - rmass) + rmassx,rmassy,rmassz) else + ! user info + if (myrank == 0) then + write(IMAIN,*) ' elastic mass matrix' + endif + call define_mass_matrices_elastic(nglob,nspec,nspec_irregular,ibool,rhostore, & jacobianstore,irregular_element_number,jacobian_regular, & wxgll,wygll,wzgll,ispec_is_elastic, & - rmass) + rmassx,rmassy,rmassz) endif endif @@ -85,6 +99,11 @@ subroutine create_mass_matrices(nglob) ! returns acoustic mass matrix if (PML_CONDITIONS) then + ! user info + if (myrank == 0) then + write(IMAIN,*) ' acoustic mass matrix w/ PML elements' + endif + call define_mass_matrices_pml_acoustic(nglob,nspec,nspec_irregular,DT,ibool,kappastore, & jacobianstore,irregular_element_number,jacobian_regular, & wxgll,wygll,wzgll,ispec_is_acoustic, & @@ -93,6 +112,11 @@ subroutine create_mass_matrices(nglob) K_store_x,K_store_y,K_store_z, & rmass_acoustic) else + ! user info + if (myrank == 0) then + write(IMAIN,*) ' acoustic mass matrix' + endif + call define_mass_matrices_acoustic(nglob,nspec,nspec_irregular,ibool,kappastore, & jacobianstore,irregular_element_number,jacobian_regular, & wxgll,wygll,wzgll,ispec_is_acoustic, & @@ -112,6 +136,11 @@ subroutine create_mass_matrices(nglob) rmass_solid_poroelastic(:) = 0._CUSTOM_REAL rmass_fluid_poroelastic(:) = 0._CUSTOM_REAL + ! user info + if (myrank == 0) then + write(IMAIN,*) ' poroelastic mass matrix' + endif + ! poroelastic mass matrices call define_mass_matrices_poroelastic(nglob,nspec,nspec_irregular,ibool,rhoarraystore,phistore,tortstore, & jacobianstore,irregular_element_number,jacobian_regular, & @@ -120,7 +149,9 @@ subroutine create_mass_matrices(nglob) endif ! Stacey absorbing conditions (adds C*deltat/2 contribution to the mass matrices on Stacey edges) - if (STACEY_ABSORBING_CONDITIONS) call create_mass_matrices_Stacey(nglob) + if (STACEY_ABSORBING_CONDITIONS) then + call create_mass_matrices_Stacey(nglob) + endif ! ocean load mass matrix call create_mass_matrices_ocean_load(nglob) @@ -133,7 +164,7 @@ end subroutine create_mass_matrices subroutine create_mass_matrices_ocean_load(nglob) -! returns precomputed mass matrix in rmass array +! compute mass matrix contribution in rmass_ocean_load array use constants, only: myrank,CUSTOM_REAL,IMAIN @@ -155,9 +186,9 @@ subroutine create_mass_matrices_ocean_load(nglob) ! creates ocean load mass matrix if (APPROXIMATE_OCEAN_LOAD) then - + ! user info if (myrank == 0) then - write(IMAIN,*) ' ...creating ocean load mass matrix ' + write(IMAIN,*) ' creating ocean load mass matrix ' endif ! adding ocean load mass matrix at ocean bottom @@ -175,16 +206,13 @@ subroutine create_mass_matrices_ocean_load(nglob) ispec_is_elastic,rmass_ocean_load) ! adds regular mass matrix to ocean load contribution - rmass_ocean_load(:) = rmass_ocean_load(:) + rmass(:) - + rmass_ocean_load(:) = rmass_ocean_load(:) + rmassz(:) else - ! allocate dummy array if no oceans NGLOB_OCEAN = 1 allocate(rmass_ocean_load(NGLOB_OCEAN),stat=ier) if (ier /= 0) call exit_MPI_without_rank('error allocating array 665') if (ier /= 0) stop 'error allocating dummy array rmass_ocean_load' - endif end subroutine create_mass_matrices_ocean_load @@ -195,13 +223,12 @@ end subroutine create_mass_matrices_ocean_load subroutine create_mass_matrices_Stacey(nglob) -! in the case of Stacey boundary conditions, add C*deltat/2 contribution to the mass matrix -! on Stacey edges for the crust_mantle and outer_core regions but not for the inner_core region +! in the case of Stacey boundary conditions, add C*deltat/2 contribution to the mass matrix on Stacey edges; ! thus the mass matrix must be replaced by three mass matrices including the "C" damping matrix - use constants, only: CUSTOM_REAL + use constants, only: CUSTOM_REAL,IMAIN,myrank - use shared_parameters, only: ACOUSTIC_SIMULATION, ELASTIC_SIMULATION, DT + use shared_parameters, only: ACOUSTIC_SIMULATION, ELASTIC_SIMULATION, USE_LDDRK, DT ! global indices use generate_databases_par, only: nspec => NSPEC_AB, ibool @@ -212,48 +239,34 @@ subroutine create_mass_matrices_Stacey(nglob) integer,intent(in) :: nglob - ! local parameters - integer :: ier + ! only for Newmark time schemes + if (USE_LDDRK) return - ! checks if anything to do - if (num_abs_boundary_faces > 0) then - nglob_xy = nglob - else - nglob_xy = 1 + ! user info + if (myrank == 0) then + write(IMAIN,*) ' adding Stacey contributions' endif + ! checks if anything to do in this slice + if (num_abs_boundary_faces == 0) return + + ! adds Stacey contributions to mass matrices ! elastic domains if (ELASTIC_SIMULATION) then - allocate( rmassx(nglob_xy), rmassy(nglob_xy), rmassz(nglob_xy), stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 666') - if (ier /= 0) stop 'error in allocate 21' - rmassx(:) = 0._CUSTOM_REAL - rmassy(:) = 0._CUSTOM_REAL - rmassz(:) = 0._CUSTOM_REAL - - if (num_abs_boundary_faces > 0) then - call define_mass_matrices_Stacey_elastic(nglob,nspec,DT,ibool,rho_vp,rho_vs, & - num_abs_boundary_faces,abs_boundary_ispec,abs_boundary_ijk, & - abs_boundary_normal,abs_boundary_jacobian2Dw, & - ispec_is_elastic, & - rmassx, rmassy, rmassz) - endif + call add_mass_matrices_Stacey_elastic(nglob,nspec,DT,ibool,rho_vp,rho_vs, & + num_abs_boundary_faces,abs_boundary_ispec,abs_boundary_ijk, & + abs_boundary_normal,abs_boundary_jacobian2Dw, & + ispec_is_elastic, & + rmassx, rmassy, rmassz) endif ! acoustic domains if (ACOUSTIC_SIMULATION) then - allocate( rmassz_acoustic(nglob_xy), stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 667') - if (ier /= 0) stop 'error in allocate 22' - rmassz_acoustic(:) = 0._CUSTOM_REAL - - if (num_abs_boundary_faces > 0) then - call define_mass_matrices_Stacey_acoustic(nglob,nspec,DT,ibool,rho_vp, & - num_abs_boundary_faces,abs_boundary_ispec,abs_boundary_ijk, & - abs_boundary_jacobian2Dw, & - ispec_is_acoustic, & - rmassz_acoustic) - endif + call add_mass_matrices_Stacey_acoustic(nglob,nspec,DT,ibool,rho_vp, & + num_abs_boundary_faces,abs_boundary_ispec,abs_boundary_ijk, & + abs_boundary_jacobian2Dw, & + ispec_is_acoustic, & + rmass_acoustic) endif end subroutine create_mass_matrices_Stacey diff --git a/src/generate_databases/create_regions_mesh.f90 b/src/generate_databases/create_regions_mesh.f90 index 165713dce..a9d78b668 100644 --- a/src/generate_databases/create_regions_mesh.f90 +++ b/src/generate_databases/create_regions_mesh.f90 @@ -33,7 +33,7 @@ subroutine create_regions_mesh() use shared_parameters, only: & ACOUSTIC_SIMULATION, ELASTIC_SIMULATION, POROELASTIC_SIMULATION, & - STACEY_ABSORBING_CONDITIONS,SAVE_MESH_FILES,PML_CONDITIONS, & + SAVE_MESH_FILES,PML_CONDITIONS, & ANISOTROPY,APPROXIMATE_OCEAN_LOAD,OLSEN_ATTENUATION_RATIO, & ATTENUATION,USE_OLSEN_ATTENUATION, & SAVE_MOHO_MESH,ATTENUATION_f0_REFERENCE, & @@ -450,14 +450,9 @@ subroutine create_regions_mesh() if (.not. SAVE_MOHO_MESH) deallocate(xstore_unique,ystore_unique,zstore_unique) if (ACOUSTIC_SIMULATION) deallocate(rmass_acoustic) - if (ELASTIC_SIMULATION) deallocate(rmass) + if (ELASTIC_SIMULATION) deallocate(rmassx,rmassy,rmassz) if (POROELASTIC_SIMULATION) deallocate(rmass_solid_poroelastic,rmass_fluid_poroelastic) - if (STACEY_ABSORBING_CONDITIONS) then - if (ELASTIC_SIMULATION) deallocate(rmassx,rmassy,rmassz) - if (ACOUSTIC_SIMULATION) deallocate(rmassz_acoustic) - endif - ! user output call synchronize_all() if (myrank == 0) then diff --git a/src/generate_databases/generate_databases_par.F90 b/src/generate_databases/generate_databases_par.F90 index 48f98f464..c532f4365 100644 --- a/src/generate_databases/generate_databases_par.F90 +++ b/src/generate_databases/generate_databases_par.F90 @@ -215,13 +215,9 @@ module create_regions_mesh_ext_par real(kind=CUSTOM_REAL), dimension(:,:,:,:), allocatable :: rho_vpI,rho_vpII,rho_vsI ! mass matrix - real(kind=CUSTOM_REAL), dimension(:), allocatable :: rmass,rmass_acoustic, & - rmass_solid_poroelastic,rmass_fluid_poroelastic - - ! mass matrix contributions real(kind=CUSTOM_REAL), dimension(:), allocatable :: rmassx,rmassy,rmassz - real(kind=CUSTOM_REAL), dimension(:), allocatable :: rmassz_acoustic - integer :: nglob_xy + real(kind=CUSTOM_REAL), dimension(:), allocatable :: rmass_acoustic + real(kind=CUSTOM_REAL), dimension(:), allocatable :: rmass_solid_poroelastic,rmass_fluid_poroelastic ! ocean load integer :: NGLOB_OCEAN diff --git a/src/generate_databases/memory_eval.f90 b/src/generate_databases/memory_eval.f90 index 60aef67d2..c6dfd4de8 100644 --- a/src/generate_databases/memory_eval.f90 +++ b/src/generate_databases/memory_eval.f90 @@ -119,10 +119,10 @@ subroutine memory_eval(NSPEC_AB,NGLOB_AB,max_nibool_interfaces_ext_mesh,num_inte ! elastic arrays if (ELASTIC_SIMULATION) then ! displacement,velocity,acceleration - memory_size = memory_size + 3.d0*dble(NDIM)*NGLOB_AB*dble(CUSTOM_REAL) + memory_size = memory_size + 3.d0*dble(NDIM)*dble(NGLOB_AB)*dble(CUSTOM_REAL) - ! rmass - memory_size = memory_size + 3*NGLOB_AB*dble(CUSTOM_REAL) + ! rmassx,rmassy,rmassz + memory_size = memory_size + 3.d0*dble(NGLOB_AB)*dble(CUSTOM_REAL) ! rho_vp,rho_vs memory_size = memory_size + 2.d0*dble(NGLLX)*dble(NGLLY)*dble(NGLLZ)*NSPEC_AB*dble(CUSTOM_REAL) diff --git a/src/generate_databases/save_arrays_solver.F90 b/src/generate_databases/save_arrays_solver.F90 index 99bb3f4ca..c3871a38e 100644 --- a/src/generate_databases/save_arrays_solver.F90 +++ b/src/generate_databases/save_arrays_solver.F90 @@ -43,7 +43,7 @@ subroutine save_arrays_solver_mesh() nspec2D_xmin,nspec2D_xmax,nspec2D_ymin,nspec2D_ymax,NSPEC2D_BOTTOM,NSPEC2D_TOP, & ibelm_xmin,ibelm_xmax,ibelm_ymin,ibelm_ymax,ibelm_bottom,ibelm_top, & SIMULATION_TYPE,SAVE_FORWARD, & - STACEY_ABSORBING_CONDITIONS,USE_MESH_COLORING_GPU + USE_MESH_COLORING_GPU ! MPI interfaces use generate_databases_par, only: num_interfaces_ext_mesh,my_neighbors_ext_mesh, & @@ -164,7 +164,9 @@ subroutine save_arrays_solver_mesh() ! elastic if (ELASTIC_SIMULATION) then - write(IOUT) rmass + write(IOUT) rmassx + write(IOUT) rmassy + write(IOUT) rmassz if (APPROXIMATE_OCEAN_LOAD) then write(IOUT) rmass_ocean_load endif @@ -228,17 +230,6 @@ subroutine save_arrays_solver_mesh() write(IOUT) abs_boundary_ijk write(IOUT) abs_boundary_jacobian2Dw write(IOUT) abs_boundary_normal - if (STACEY_ABSORBING_CONDITIONS .and. (.not. PML_CONDITIONS)) then - ! store mass matrix contributions - if (ELASTIC_SIMULATION) then - write(IOUT) rmassx - write(IOUT) rmassy - write(IOUT) rmassz - endif - if (ACOUSTIC_SIMULATION) then - write(IOUT) rmassz_acoustic - endif - endif endif ! stamp for checking i/o so far diff --git a/src/generate_databases/save_arrays_solver_adios.F90 b/src/generate_databases/save_arrays_solver_adios.F90 index fad0d3c95..cb62b5c56 100644 --- a/src/generate_databases/save_arrays_solver_adios.F90 +++ b/src/generate_databases/save_arrays_solver_adios.F90 @@ -49,7 +49,6 @@ subroutine save_arrays_solver_mesh_adios() NSPEC2D_BOTTOM, NSPEC2D_TOP, & ibelm_xmin, ibelm_xmax,ibelm_ymin, ibelm_ymax, ibelm_bottom, ibelm_top, & SIMULATION_TYPE, SAVE_FORWARD, & - STACEY_ABSORBING_CONDITIONS, & LOCAL_PATH, myrank, sizeprocs ! MPI interfaces @@ -108,7 +107,7 @@ subroutine save_arrays_solver_mesh_adios() num_phase_ispec_poroelastic_wmax, num_colors_outer_acoustic_wmax, & num_colors_inner_acoustic_wmax, num_colors_outer_elastic_wmax, & num_colors_inner_elastic_wmax, & - nglob_ocean_wmax, nglob_xy_wmax, nspec_aniso_wmax, & + nglob_ocean_wmax, nspec_aniso_wmax, & max_nibool_interfaces_ext_mesh_wmax, & num_neighbors_all_wmax @@ -200,7 +199,7 @@ subroutine save_arrays_solver_mesh_adios() max_global_values(35) = num_colors_inner_elastic max_global_values(36) = 0 ! dummy for future use max_global_values(37) = nglob_ocean - max_global_values(38) = nglob_xy + max_global_values(38) = 0 ! dummy for future use max_global_values(39) = 0 ! dummy for future use max_global_values(40) = nspec_aniso max_global_values(41) = nspec_irregular @@ -247,7 +246,7 @@ subroutine save_arrays_solver_mesh_adios() num_colors_inner_elastic_wmax = max_global_values(35) ! idummy = max_global_values(36) ! for future use nglob_ocean_wmax = max_global_values(37) - nglob_xy_wmax = max_global_values(38) + ! idummy = max_global_values(38) ! idummy = max_global_values(39) ! for future use nspec_aniso_wmax = max_global_values(40) nspec_irreg_wmax = max_global_values(41) @@ -314,7 +313,9 @@ subroutine save_arrays_solver_mesh_adios() ! elastic if (ELASTIC_SIMULATION) then local_dim = nglob_wmax - call define_adios_global_array1D(myadios_group, group_size_inc, local_dim, '', STRINGIFY_VAR(rmass)) + call define_adios_global_array1D(myadios_group, group_size_inc,local_dim, '', STRINGIFY_VAR(rmassx)) + call define_adios_global_array1D(myadios_group, group_size_inc,local_dim, '', STRINGIFY_VAR(rmassy)) + call define_adios_global_array1D(myadios_group, group_size_inc,local_dim, '', STRINGIFY_VAR(rmassz)) if (APPROXIMATE_OCEAN_LOAD) then local_dim = nglob_ocean_wmax @@ -405,19 +406,6 @@ subroutine save_arrays_solver_mesh_adios() local_dim = NDIM * NGLLSQUARE * num_abs_boundary_faces_wmax call define_adios_global_array1D(myadios_group, group_size_inc,local_dim, '', & STRINGIFY_VAR(abs_boundary_normal)) - if (STACEY_ABSORBING_CONDITIONS .and. (.not. PML_CONDITIONS)) then - ! store mass matrix contributions - if (ELASTIC_SIMULATION) then - local_dim = nglob_xy_wmax - call define_adios_global_array1D(myadios_group, group_size_inc,local_dim, '', STRINGIFY_VAR(rmassx)) - call define_adios_global_array1D(myadios_group, group_size_inc,local_dim, '', STRINGIFY_VAR(rmassy)) - call define_adios_global_array1D(myadios_group, group_size_inc,local_dim, '', STRINGIFY_VAR(rmassz)) - endif - if (ACOUSTIC_SIMULATION) then - local_dim = nglob_xy_wmax - call define_adios_global_array1D(myadios_group, group_size_inc,local_dim, '', STRINGIFY_VAR(rmassz_acoustic)) - endif - endif endif call define_adios_scalar(myadios_group, group_size_inc, '', STRINGIFY_VAR(nspec2d_xmin)) @@ -705,7 +693,10 @@ subroutine save_arrays_solver_mesh_adios() ! elastic if (ELASTIC_SIMULATION) then local_dim = nglob_wmax - call write_adios_global_1d_array(myadios_file, myadios_group, myrank, sizeprocs, local_dim, STRINGIFY_VAR(rmass)) + call write_adios_global_1d_array(myadios_file, myadios_group, myrank, sizeprocs, local_dim, STRINGIFY_VAR(rmassx)) + call write_adios_global_1d_array(myadios_file, myadios_group, myrank, sizeprocs, local_dim, STRINGIFY_VAR(rmassy)) + call write_adios_global_1d_array(myadios_file, myadios_group, myrank, sizeprocs, local_dim, STRINGIFY_VAR(rmassz)) + if (APPROXIMATE_OCEAN_LOAD) then local_dim = nglob_ocean_wmax call write_adios_global_1d_array(myadios_file, myadios_group, myrank, sizeprocs, local_dim, & @@ -806,20 +797,6 @@ subroutine save_arrays_solver_mesh_adios() local_dim = NDIM * NGLLSQUARE * num_abs_boundary_faces_wmax call write_adios_global_1d_array(myadios_file, myadios_group, myrank, sizeprocs, local_dim, & STRINGIFY_VAR(abs_boundary_normal)) - if (STACEY_ABSORBING_CONDITIONS .and. (.not. PML_CONDITIONS)) then - ! store mass matrix contributions - if (ELASTIC_SIMULATION) then - local_dim = nglob_xy_wmax - call write_adios_global_1d_array(myadios_file, myadios_group, myrank, sizeprocs, local_dim, STRINGIFY_VAR(rmassx)) - call write_adios_global_1d_array(myadios_file, myadios_group, myrank, sizeprocs, local_dim, STRINGIFY_VAR(rmassy)) - call write_adios_global_1d_array(myadios_file, myadios_group, myrank, sizeprocs, local_dim, STRINGIFY_VAR(rmassz)) - endif - if (ACOUSTIC_SIMULATION) then - local_dim = nglob_xy_wmax - call write_adios_global_1d_array(myadios_file, myadios_group, myrank, sizeprocs, local_dim, & - STRINGIFY_VAR(rmassz_acoustic)) - endif - endif endif call write_adios_scalar(myadios_file, myadios_group, STRINGIFY_VAR(nspec2d_xmin)) diff --git a/src/generate_databases/save_arrays_solver_hdf5.F90 b/src/generate_databases/save_arrays_solver_hdf5.F90 index 34c9a4721..2a54f9454 100644 --- a/src/generate_databases/save_arrays_solver_hdf5.F90 +++ b/src/generate_databases/save_arrays_solver_hdf5.F90 @@ -45,7 +45,6 @@ subroutine save_arrays_solver_mesh_hdf5() NSPEC2D_BOTTOM, NSPEC2D_TOP, & ibelm_xmin, ibelm_xmax,ibelm_ymin, ibelm_ymax, ibelm_bottom, ibelm_top, & SIMULATION_TYPE, SAVE_FORWARD, & - STACEY_ABSORBING_CONDITIONS, & LOCAL_PATH, myrank ! MPI interfaces @@ -109,7 +108,6 @@ subroutine save_arrays_solver_mesh_hdf5() integer, dimension(0:NPROC-1) :: offset_nglob_interface_PML_acoustic integer, dimension(0:NPROC-1) :: offset_nglob_interface_PML_elastic integer, dimension(0:NPROC-1) :: offset_num_abs_boundary_faces - integer, dimension(0:NPROC-1) :: offset_nglob_xy integer, dimension(0:NPROC-1) :: offset_nspec2D_xmin integer, dimension(0:NPROC-1) :: offset_nspec2D_xmax integer, dimension(0:NPROC-1) :: offset_nspec2D_ymin @@ -208,7 +206,6 @@ subroutine save_arrays_solver_mesh_hdf5() endif call gather_all_all_singlei(num_abs_boundary_faces,offset_num_abs_boundary_faces,NPROC) - call gather_all_all_singlei(nglob_xy,offset_nglob_xy,NPROC) call gather_all_all_singlei(nspec2D_xmin,offset_nspec2D_xmin,NPROC) call gather_all_all_singlei(nspec2D_xmax,offset_nspec2D_xmax,NPROC) call gather_all_all_singlei(nspec2D_ymin,offset_nspec2D_ymin,NPROC) @@ -278,7 +275,6 @@ subroutine save_arrays_solver_mesh_hdf5() endif call h5_write_dataset_no_group("offset_num_abs_boundary_faces",offset_num_abs_boundary_faces) - call h5_write_dataset_no_group("offset_nglob_xy",offset_nglob_xy) call h5_write_dataset_no_group("offset_nspec2D_xmin",offset_nspec2D_xmin) call h5_write_dataset_no_group("offset_nspec2D_xmax",offset_nspec2D_xmax) call h5_write_dataset_no_group("offset_nspec2D_ymin",offset_nspec2D_ymin) @@ -414,15 +410,17 @@ subroutine save_arrays_solver_mesh_hdf5() ! elastic if (ELASTIC_SIMULATION) then - dset_name = "rmass" ! 1 r (/offset_nglob/) - call h5_create_dataset_gen(dset_name,(/sum(offset_nglob(:))/), 1, CUSTOM_REAL) - + dset_name = "rmassx" ! 1 r (/offset_nglob/) + call h5_create_dataset_gen(dset_name, (/sum(offset_nglob(:))/), 1, CUSTOM_REAL) + dset_name = "rmassy" ! 1 r (/offset_nglob/) + call h5_create_dataset_gen(dset_name, (/sum(offset_nglob(:))/), 1, CUSTOM_REAL) + dset_name = "rmassz" ! 1 r (/offset_nglob/) + call h5_create_dataset_gen(dset_name, (/sum(offset_nglob(:))/), 1, CUSTOM_REAL) if (APPROXIMATE_OCEAN_LOAD) then dset_name = "rmass_ocean_load" ! 1 r (/offset_nglob_ocean/) call h5_create_dataset_gen(dset_name,(/sum(offset_nglob_ocean(:))/), 1, CUSTOM_REAL) endif - - !pll Stacey + ! Stacey dset_name = "rho_vp" ! 4 r (/0,0,0,offset_nspec/) call h5_create_dataset_gen(dset_name,(/NGLLX,NGLLY,NGLLZ,sum(offset_nspec(:))/), 4, CUSTOM_REAL) dset_name = "rho_vs" ! 4 r (/0,0,0,offset_nspec/) @@ -530,22 +528,6 @@ subroutine save_arrays_solver_mesh_hdf5() call h5_create_dataset_gen(dset_name,(/NGLLSQUARE,sum(offset_num_abs_boundary_faces(:))/), 2, CUSTOM_REAL) dset_name = "abs_boundary_normal" ! 3 r (/0,0,offset_num_abs_boundary_faces/) call h5_create_dataset_gen(dset_name,(/NDIM,NGLLSQUARE,sum(offset_num_abs_boundary_faces(:))/), 3, CUSTOM_REAL) - - if (STACEY_ABSORBING_CONDITIONS .and. (.not. PML_CONDITIONS)) then - ! store mass matrix contributions - if (ELASTIC_SIMULATION) then - dset_name = "rmassx" ! 1 r (/offset_nglob_xy/) - call h5_create_dataset_gen(dset_name, (/sum(offset_nglob_xy(:))/),1,CUSTOM_REAL) - dset_name = "rmassy" ! 1 r (/offset_nglob_xy/) - call h5_create_dataset_gen(dset_name, (/sum(offset_nglob_xy(:))/),1,CUSTOM_REAL) - dset_name = "rmassz" ! 1 r (/offset_nglob_xy/) - call h5_create_dataset_gen(dset_name, (/sum(offset_nglob_xy(:))/),1,CUSTOM_REAL) - endif - if (ACOUSTIC_SIMULATION) then - dset_name = "rmassz_acoustic" ! 1 r (/offset_nglob_xy/) - call h5_create_dataset_gen(dset_name, (/sum(offset_nglob_xy(:))/),1,CUSTOM_REAL) - endif - endif else ! dummy dset_name = "abs_boundary_ispec" ! 1 i (/myrank/) @@ -556,22 +538,6 @@ subroutine save_arrays_solver_mesh_hdf5() call h5_create_dataset_gen(dset_name,(/1,NPROC/), 2, CUSTOM_REAL) dset_name = "abs_boundary_normal" ! 3 r (/0,0,myrank/) call h5_create_dataset_gen(dset_name,(/1,1,NPROC/), 3, CUSTOM_REAL) - - if (STACEY_ABSORBING_CONDITIONS .and. (.not. PML_CONDITIONS)) then - ! store mass matrix contributions - if (ELASTIC_SIMULATION) then - dset_name = "rmassx" ! 1 r (/myrank/) - call h5_create_dataset_gen(dset_name,(/NPROC/), 1, CUSTOM_REAL) - dset_name = "rmassy" ! 1 r (/myrank/) - call h5_create_dataset_gen(dset_name,(/NPROC/), 1, CUSTOM_REAL) - dset_name = "rmassz" ! 1 r (/myrank/) - call h5_create_dataset_gen(dset_name,(/NPROC/), 1, CUSTOM_REAL) - endif - if (ACOUSTIC_SIMULATION) then - dset_name = "rmassz_acoustic" ! 1 r (/myrank/) - call h5_create_dataset_gen(dset_name,(/NPROC/), 1, CUSTOM_REAL) - endif - endif endif dset_name = "nspec2D_xmin" ! 1 i (/myrank/) @@ -961,13 +927,17 @@ subroutine save_arrays_solver_mesh_hdf5() ! elastic if (ELASTIC_SIMULATION) then - dset_name = "rmass" ! 1 r (/offset_nglob/) - call h5_write_dataset_collect_hyperslab(dset_name, rmass, (/sum(offset_nglob(0:myrank-1))/), H5_COL) + dset_name = "rmassx" ! 1 r (/offset_nglob/) + call h5_write_dataset_collect_hyperslab(dset_name, rmassx, (/sum(offset_nglob(0:myrank-1))/),H5_COL) + dset_name = "rmassy" ! 1 r (/offset_nglob/) + call h5_write_dataset_collect_hyperslab(dset_name, rmassy, (/sum(offset_nglob(0:myrank-1))/),H5_COL) + dset_name = "rmassz" ! 1 r (/offset_nglob/) + call h5_write_dataset_collect_hyperslab(dset_name, rmassz, (/sum(offset_nglob(0:myrank-1))/),H5_COL) if (APPROXIMATE_OCEAN_LOAD) then dset_name = "rmass_ocean_load" ! 1 r (/offset_nglob_ocean/) call h5_write_dataset_collect_hyperslab(dset_name, rmass_ocean_load, (/sum(offset_nglob_ocean(0:myrank-1))/),H5_COL) endif - !pll Stacey + ! Stacey dset_name = "rho_vp" ! 4 r (/0,0,0,offset_nspec/) call h5_write_dataset_collect_hyperslab(dset_name, rho_vp, (/0,0,0,sum(offset_nspec(0:myrank-1))/),H5_COL) dset_name = "rho_vs" ! 4 r (/0,0,0,offset_nspec/) @@ -1079,22 +1049,6 @@ subroutine save_arrays_solver_mesh_hdf5() dset_name = "abs_boundary_normal" ! 3 r (/0,0,offset_num_abs_boundary_faces/) call h5_write_dataset_collect_hyperslab(dset_name, abs_boundary_normal, & (/0,0,sum(offset_num_abs_boundary_faces(0:myrank-1))/), H5_COL) - - if (STACEY_ABSORBING_CONDITIONS .and. (.not. PML_CONDITIONS)) then - ! store mass matrix contributions - if (ELASTIC_SIMULATION) then - dset_name = "rmassx" ! 1 r (/offset_nglob_xy/) - call h5_write_dataset_collect_hyperslab(dset_name, rmassx, (/sum(offset_nglob_xy(0:myrank-1))/),H5_COL) - dset_name = "rmassy" ! 1 r (/offset_nglob_xy/) - call h5_write_dataset_collect_hyperslab(dset_name, rmassy, (/sum(offset_nglob_xy(0:myrank-1))/),H5_COL) - dset_name = "rmassz" ! 1 r (/offset_nglob_xy/) - call h5_write_dataset_collect_hyperslab(dset_name, rmassz, (/sum(offset_nglob_xy(0:myrank-1))/),H5_COL) - endif - if (ACOUSTIC_SIMULATION) then - dset_name = "rmassz_acoustic" ! 1 r (/offset_nglob_xy/) - call h5_write_dataset_collect_hyperslab(dset_name, rmassz_acoustic, (/sum(offset_nglob_xy(0:myrank-1))/),H5_COL) - endif - endif else dset_name = "abs_boundary_ispec" ! 1 i (/myrank/) call h5_write_dataset_collect_hyperslab(dset_name, (/0/), (/myrank/),H5_COL) @@ -1104,23 +1058,6 @@ subroutine save_arrays_solver_mesh_hdf5() call h5_write_dataset_collect_hyperslab(dset_name, r2d_dummy, (/0,myrank/),H5_COL) dset_name = "abs_boundary_normal" ! 3 r (/0,0,myrank/) call h5_write_dataset_collect_hyperslab(dset_name, r3d_dummy, (/0,0,myrank/),H5_COL) - - if (STACEY_ABSORBING_CONDITIONS .and. (.not. PML_CONDITIONS)) then - ! store mass matrix contributions - if (ELASTIC_SIMULATION) then - dset_name = "rmassx" ! 1 r (/myrank/) - call h5_write_dataset_collect_hyperslab(dset_name, (/0.0/), (/myrank/),H5_COL) - dset_name = "rmassy" ! 1 r (/myrank/) - call h5_write_dataset_collect_hyperslab(dset_name, (/0.0/), (/myrank/),H5_COL) - dset_name = "rmassz" ! 1 r (/myrank/) - call h5_write_dataset_collect_hyperslab(dset_name, (/0.0/), (/myrank/),H5_COL) - endif - if (ACOUSTIC_SIMULATION) then - dset_name = "rmassz_acoustic" ! 1 r (/myrank/) - call h5_write_dataset_collect_hyperslab(dset_name, (/0.0/), (/myrank/),H5_COL) - endif - endif - endif dset_name = "nspec2D_xmin" ! 1 i (/myrank/) diff --git a/src/inverse_problem_for_model/input_output/mesh_tools_mod.f90 b/src/inverse_problem_for_model/input_output/mesh_tools_mod.f90 index 0bcc17095..33e97fed2 100644 --- a/src/inverse_problem_for_model/input_output/mesh_tools_mod.f90 +++ b/src/inverse_problem_for_model/input_output/mesh_tools_mod.f90 @@ -532,8 +532,8 @@ subroutine create_mass_matrices_Stacey_duplication_routine() NGLLX, NGLLY, NGLLZ, NSPEC_AB, NGLOB_AB, num_abs_boundary_faces, abs_boundary_ispec, abs_boundary_ijk, & abs_boundary_normal, abs_boundary_jacobian2Dw, num_interfaces_ext_mesh,max_nibool_interfaces_ext_mesh, & nibool_interfaces_ext_mesh,ibool_interfaces_ext_mesh, my_neighbors_ext_mesh - use specfem_par_elastic, only: rmass, rmassx, rmassy, rmassz, rho_vp, rho_vs, ispec_is_elastic - use specfem_par_acoustic, only: rmass_acoustic, rmassz_acoustic, ispec_is_acoustic + use specfem_par_elastic, only: rmassx, rmassy, rmassz, rho_vp, rho_vs, ispec_is_elastic + use specfem_par_acoustic, only: rmass_acoustic, ispec_is_acoustic integer :: i, j, k, ispec, ispec_irreg, iglob, iface, igll, ier double precision :: weight @@ -546,7 +546,7 @@ subroutine create_mass_matrices_Stacey_duplication_routine() if (ACOUSTIC_SIMULATION) then ! allocates memory if (.not. allocated(rmass_acoustic)) then - allocate(rmass_acoustic(NGLOB_AB),stat=ier) + allocate(rmass_acoustic(NGLOB_AB), stat=ier) if (ier /= 0) call exit_MPI_without_rank('error allocating array 330') if (ier /= 0) stop 'error allocating array rmass_acoustic' endif @@ -583,11 +583,15 @@ subroutine create_mass_matrices_Stacey_duplication_routine() if (ELASTIC_SIMULATION) then ! returns elastic mass matrix - if (.not. allocated(rmass)) then - allocate(rmass(NGLOB_AB),stat=ier) + if (.not. allocated(rmassx)) then + allocate(rmassx(NGLOB_AB), & + rmassy(NGLOB_AB), & + rmassz(NGLOB_AB), stat=ier) if (ier /= 0) call exit_MPI_without_rank('error allocating array 331') endif - rmass(:) = 0._CUSTOM_REAL + rmassx(:) = 0._CUSTOM_REAL + rmassy(:) = 0._CUSTOM_REAL + rmassz(:) = 0._CUSTOM_REAL if (PML_CONDITIONS) then write(*,*) 'PML not implemented yet ' @@ -606,125 +610,85 @@ subroutine create_mass_matrices_Stacey_duplication_routine() weight = wxgll(i)*wygll(j)*wzgll(k) if (ispec_irreg /= 0) jacobianl = jacobianstore(i,j,k,ispec_irreg) - rmass(iglob) = rmass(iglob) + & - real( dble(jacobianl) * weight * dble(rhostore(i,j,k,ispec)),kind=CUSTOM_REAL) + rmassz(iglob) = rmassz(iglob) + real( dble(jacobianl) * weight * dble(rhostore(i,j,k,ispec)),kind=CUSTOM_REAL) enddo enddo enddo endif enddo + ! copy initial mass matrix on all components + rmassx(:) = rmassz(:) + rmassy(:) = rmassz(:) endif endif + ! adds boundary contributions for newmark scheme if (STACEY_ABSORBING_CONDITIONS) then + ! use the non-dimensional time step to make the mass matrix correction + deltat = real(DT,kind=CUSTOM_REAL) + deltatover2 = real(0.5d0*deltat,kind=CUSTOM_REAL) + + do iface = 1,num_abs_boundary_faces + ispec = abs_boundary_ispec(iface) + + ! elastic element + if (ispec_is_elastic(ispec)) then + ! reference GLL points on boundary face + do igll = 1,NGLLSQUARE + ! gets local indices for GLL point + i = abs_boundary_ijk(1,igll,iface) + j = abs_boundary_ijk(2,igll,iface) + k = abs_boundary_ijk(3,igll,iface) + + ! gets velocity + iglob = ibool(i,j,k,ispec) + + ! gets associated normal + nx = abs_boundary_normal(1,igll,iface) + ny = abs_boundary_normal(2,igll,iface) + nz = abs_boundary_normal(3,igll,iface) + + vn = deltatover2*(nx+ny+nz) + + ! C*deltat/2 contributions + tx = rho_vp(i,j,k,ispec)*vn*nx + rho_vs(i,j,k,ispec)*(deltatover2-vn*nx) + ty = rho_vp(i,j,k,ispec)*vn*ny + rho_vs(i,j,k,ispec)*(deltatover2-vn*ny) + tz = rho_vp(i,j,k,ispec)*vn*nz + rho_vs(i,j,k,ispec)*(deltatover2-vn*nz) + + ! gets associated, weighted jacobian + jacobianw = abs_boundary_jacobian2Dw(igll,iface) + + ! assembles mass matrix on global points + rmassx(iglob) = rmassx(iglob) + tx*jacobianw + rmassy(iglob) = rmassy(iglob) + ty*jacobianw + rmassz(iglob) = rmassz(iglob) + tz*jacobianw + enddo + endif ! elastic - ! use the non-dimensional time step to make the mass matrix correction - deltat = real(DT,kind=CUSTOM_REAL) - deltatover2 = real(0.5d0*deltat,kind=CUSTOM_REAL) - - if (ELASTIC_SIMULATION) then - rmassx(:) = 0._CUSTOM_REAL - rmassy(:) = 0._CUSTOM_REAL - rmassz(:) = 0._CUSTOM_REAL - endif - ! acoustic domains - if (ACOUSTIC_SIMULATION) then - if (.not. allocated(rmassz_acoustic)) then - allocate(rmassz_acoustic(nglob_ab), stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 332') - endif - rmassz_acoustic(:) = 0._CUSTOM_REAL - endif - - do iface = 1,num_abs_boundary_faces - ispec = abs_boundary_ispec(iface) - if (ispec_is_elastic(ispec)) then - ! reference GLL points on boundary face - do igll = 1,NGLLSQUARE - ! gets local indices for GLL point - i = abs_boundary_ijk(1,igll,iface) - j = abs_boundary_ijk(2,igll,iface) - k = abs_boundary_ijk(3,igll,iface) - - ! gets velocity - iglob = ibool(i,j,k,ispec) - - ! gets associated normal - nx = abs_boundary_normal(1,igll,iface) - ny = abs_boundary_normal(2,igll,iface) - nz = abs_boundary_normal(3,igll,iface) - - vn = deltatover2*(nx+ny+nz) - - ! C*deltat/2 contributions - tx = rho_vp(i,j,k,ispec)*vn*nx + rho_vs(i,j,k,ispec)*(deltatover2-vn*nx) - ty = rho_vp(i,j,k,ispec)*vn*ny + rho_vs(i,j,k,ispec)*(deltatover2-vn*ny) - tz = rho_vp(i,j,k,ispec)*vn*nz + rho_vs(i,j,k,ispec)*(deltatover2-vn*nz) - - ! gets associated, weighted jacobian - jacobianw = abs_boundary_jacobian2Dw(igll,iface) - - ! assembles mass matrix on global points - rmassx(iglob) = rmassx(iglob) + tx*jacobianw - rmassy(iglob) = rmassy(iglob) + ty*jacobianw - rmassz(iglob) = rmassz(iglob) + tz*jacobianw - enddo - endif ! elastic - - ! acoustic element - if (ispec_is_acoustic(ispec)) then - - ! reference GLL points on boundary face - do igll = 1,NGLLSQUARE - ! gets local indices for GLL point - i = abs_boundary_ijk(1,igll,iface) - j = abs_boundary_ijk(2,igll,iface) - k = abs_boundary_ijk(3,igll,iface) - - ! gets global index - iglob = ibool(i,j,k,ispec) - - ! gets associated, weighted jacobian - jacobianw = abs_boundary_jacobian2Dw(igll,iface) - - ! C * DT/2 contribution - !! need to divide by rho_vp - sn = deltatover2/ sqrt(kappastore(i,j,k,ispec) * rhostore(i,j,k,ispec)) - - rmassz_acoustic(iglob) = rmassz_acoustic(iglob) + jacobianw*sn - enddo - endif ! acoustic + ! acoustic element + if (ispec_is_acoustic(ispec)) then + ! reference GLL points on boundary face + do igll = 1,NGLLSQUARE + ! gets local indices for GLL point + i = abs_boundary_ijk(1,igll,iface) + j = abs_boundary_ijk(2,igll,iface) + k = abs_boundary_ijk(3,igll,iface) - enddo + ! gets global index + iglob = ibool(i,j,k,ispec) - endif + ! gets associated, weighted jacobian + jacobianw = abs_boundary_jacobian2Dw(igll,iface) - !! need to create new masss matrix because the model is changed compared to - !! the one stored in databases_mpi - if (ELASTIC_SIMULATION) then - if (STACEY_ABSORBING_CONDITIONS) then - rmassx(:) = rmass(:) + rmassx(:) - rmassy(:) = rmass(:) + rmassy(:) - rmassz(:) = rmass(:) + rmassz(:) - else - rmassx(:) = rmass(:) - rmassy(:) = rmass(:) - rmassz(:) = rmass(:) - endif - endif + ! C * DT/2 contribution + !! need to divide by rho_vp + sn = deltatover2/ sqrt(kappastore(i,j,k,ispec) * rhostore(i,j,k,ispec)) - if (ACOUSTIC_SIMULATION) then - ! adds contributions - if (STACEY_ABSORBING_CONDITIONS) then - !if (USE_LDDRK) then - ! rmass_acoustic(:) = rmass_acoustic(:) - !else - ! adds boundary contributions for newmark scheme - rmass_acoustic(:) = rmass_acoustic(:) + rmassz_acoustic(:) - !endif - - endif - endif + rmass_acoustic(iglob) = rmass_acoustic(iglob) + jacobianw*sn + enddo + endif ! acoustic + enddo + endif ! synchronize all the processes before assembling the mass matrix ! to make sure all the nodes have finished to read their databases @@ -752,9 +716,6 @@ subroutine create_mass_matrices_Stacey_duplication_routine() rmassx(:) = 1._CUSTOM_REAL / rmassx(:) rmassy(:) = 1._CUSTOM_REAL / rmassy(:) rmassz(:) = 1._CUSTOM_REAL / rmassz(:) - - ! not needed anymore - deallocate(rmass) endif if (ACOUSTIC_SIMULATION) then @@ -766,8 +727,6 @@ subroutine create_mass_matrices_Stacey_duplication_routine() ! fill mass matrix with fictitious non-zero values to make sure it can be inverted globally where(rmass_acoustic <= 0._CUSTOM_REAL) rmass_acoustic = 1._CUSTOM_REAL rmass_acoustic(:) = 1._CUSTOM_REAL / rmass_acoustic(:) - ! not needed anymore - if (STACEY_ABSORBING_CONDITIONS) deallocate(rmassz_acoustic) endif end subroutine create_mass_matrices_Stacey_duplication_routine diff --git a/src/meshfem3D/check_mesh_quality.f90 b/src/meshfem3D/check_mesh_quality.f90 index f5b004f6a..b252b3334 100644 --- a/src/meshfem3D/check_mesh_quality.f90 +++ b/src/meshfem3D/check_mesh_quality.f90 @@ -69,8 +69,10 @@ subroutine check_mesh_quality(VP_MAX,NGLOB,NSPEC,x,y,z,ibool, & double precision :: distance_min_MPI,distance_max_MPI ! for stability double precision :: dt_suggested,dt_suggested_max,dt_suggested_max_MPI - double precision :: stability,stability_min,stability_max,max_CFL_stability_limit + double precision :: stability,stability_min,stability_max double precision :: stability_max_MPI + ! maximum stability CFL value + double precision, parameter :: max_CFL_stability_limit = 0.55d0 ! For MPI maxloc reduction double precision, dimension(2) :: buf_maxloc_send,buf_maxloc_recv @@ -227,20 +229,16 @@ subroutine check_mesh_quality(VP_MAX,NGLOB,NSPEC,x,y,z,ibool, & write(IMAIN,*) '***' call flush_IMAIN() - ! max stability CFL value - !! DK DK we could probably increase this, now that the Stacey conditions have been fixed - max_CFL_stability_limit = 0.55d0 !! DK DK increased this 0.48d0 - if (stability_max_MPI >= max_CFL_stability_limit) then write(IMAIN,*) '*********************************************' write(IMAIN,*) '*********************************************' - write(IMAIN,*) ' WARNING, that value is above the upper CFL limit of ',max_CFL_stability_limit + write(IMAIN,*) ' WARNING, that value is above the upper CFL limit of ',sngl(max_CFL_stability_limit) write(IMAIN,*) 'therefore the run should be unstable' write(IMAIN,*) 'You can try to reduce the time step' write(IMAIN,*) '*********************************************' write(IMAIN,*) '*********************************************' else - write(IMAIN,*) 'that value is below the upper CFL limit of ',max_CFL_stability_limit + write(IMAIN,*) 'that value is below the upper CFL limit of ',sngl(max_CFL_stability_limit) write(IMAIN,*) 'therefore the run should be stable' endif write(IMAIN,*) @@ -363,7 +361,7 @@ subroutine create_mesh_quality_data_3D(x,y,z,ibool,ispec,NSPEC,NGLOB,VP_MAX,dt_s equiangle_skewness,edge_aspect_ratio,diagonal_aspect_ratio, & stability,distmin,distmax) - use constants, only: NGNOD_EIGHT_CORNERS,PI,HUGEVAL,ZERO + use constants, only: NGNOD_EIGHT_CORNERS,PI,HUGEVAL,ZERO,COURANT_SUGGESTED use constants_meshfem, only: NGLLX_M,NGLLY_M,NGLLZ_M implicit none @@ -551,7 +549,10 @@ subroutine create_mesh_quality_data_3D(x,y,z,ibool,ispec,NSPEC,NGLOB,VP_MAX,dt_s ! compute edge aspect ratio edge_aspect_ratio = distmax / distmin - dt_suggested = ((1.d0 - 0.02d0)*0.48d0) * (distmin * percent_GLL(true_NGLLX)) / VP_MAX + ! suggested timestep + dt_suggested = COURANT_SUGGESTED * (distmin * percent_GLL(true_NGLLX)) / VP_MAX + + ! CFL stability criterion stability = dt_suggested * VP_MAX / (distmin * percent_GLL(true_NGLLX)) ! compute diagonal aspect ratio diff --git a/src/shared/define_mass_matrices.f90 b/src/shared/define_mass_matrices.f90 index 40e1f80be..e2559f084 100644 --- a/src/shared/define_mass_matrices.f90 +++ b/src/shared/define_mass_matrices.f90 @@ -30,7 +30,7 @@ subroutine define_mass_matrices_elastic(nglob,nspec,nspec_irregular,ibool,rhostore, & jacobianstore,irregular_element_number,jacobian_regular, & wxgll,wygll,wzgll,ispec_is_elastic, & - rmass) + rmassx,rmassy,rmassz) ! returns precomputed elastic mass matrix @@ -56,7 +56,7 @@ subroutine define_mass_matrices_elastic(nglob,nspec,nspec_irregular,ibool,rhosto logical, dimension(nspec), intent(in) :: ispec_is_elastic - real(kind=CUSTOM_REAL), dimension(nglob), intent(inout) :: rmass + real(kind=CUSTOM_REAL), dimension(nglob), intent(inout) :: rmassx,rmassy,rmassz ! local parameters double precision :: weight @@ -64,7 +64,9 @@ subroutine define_mass_matrices_elastic(nglob,nspec,nspec_irregular,ibool,rhosto integer :: ispec,ispec_irreg,i,j,k,iglob ! elastic mass matrix - rmass(:) = 0._CUSTOM_REAL + rmassx(:) = 0._CUSTOM_REAL + rmassy(:) = 0._CUSTOM_REAL + rmassz(:) = 0._CUSTOM_REAL do ispec = 1,nspec ! elastic domain @@ -81,14 +83,17 @@ subroutine define_mass_matrices_elastic(nglob,nspec,nspec_irregular,ibool,rhosto weight = wxgll(i)*wygll(j)*wzgll(k) if (ispec_irreg /= 0) jacobianl = jacobianstore(i,j,k,ispec_irreg) - rmass(iglob) = rmass(iglob) + & - real( dble(jacobianl) * weight * dble(rhostore(i,j,k,ispec)),kind=CUSTOM_REAL) + rmassz(iglob) = rmassz(iglob) + real( dble(jacobianl) * weight * dble(rhostore(i,j,k,ispec)),kind=CUSTOM_REAL) enddo enddo enddo endif enddo + ! copy initial mass matrix on all components + rmassx(:) = rmassz(:) + rmassy(:) = rmassz(:) + end subroutine define_mass_matrices_elastic ! @@ -350,17 +355,18 @@ end subroutine define_mass_matrices_ocean_load !------------------------------------------------------------------------------------------------- ! - subroutine define_mass_matrices_Stacey_elastic(nglob,nspec,DT,ibool,rho_vp,rho_vs, & + subroutine add_mass_matrices_Stacey_elastic(nglob,nspec,DT,ibool,rho_vp,rho_vs, & num_abs_boundary_faces,abs_boundary_ispec,abs_boundary_ijk, & abs_boundary_normal,abs_boundary_jacobian2Dw, & ispec_is_elastic, & - rmassx, rmassy, rmassz) + rmassx,rmassy,rmassz) ! in the case of Stacey boundary conditions, add C*deltat/2 contribution to the mass matrix ! ! thus, the mass matrix must be replaced by three mass matrices including the "C" damping matrix use constants, only: CUSTOM_REAL,NDIM,NGLLX,NGLLY,NGLLZ,NGLLSQUARE + use shared_parameters, only: USE_LDDRK implicit none @@ -384,22 +390,23 @@ subroutine define_mass_matrices_Stacey_elastic(nglob,nspec,DT,ibool,rho_vp,rho_v ! local parameters real(kind=CUSTOM_REAL) :: jacobianw - real(kind=CUSTOM_REAL) :: deltat,deltatover2 + real(kind=CUSTOM_REAL) :: deltatover2 real(kind=CUSTOM_REAL) :: tx,ty,tz real(kind=CUSTOM_REAL) :: nx,ny,nz,vn integer :: ispec,iglob,i,j,k,iface,igll ! elastic domains - ! use the non-dimensional time step to make the mass matrix correction - deltat = real(DT,kind=CUSTOM_REAL) - deltatover2 = real(0.5d0*DT,kind=CUSTOM_REAL) + ! only for Newmark time schemes + if (USE_LDDRK) return - ! adds contributions to mass matrix to stabilize Stacey conditions - rmassx(:) = 0._CUSTOM_REAL - rmassy(:) = 0._CUSTOM_REAL - rmassz(:) = 0._CUSTOM_REAL + ! checks if anything to do + if (num_abs_boundary_faces == 0) return + + ! half time step to make the mass matrix correction + deltatover2 = real(0.5d0 * DT,kind=CUSTOM_REAL) + ! adds contributions to mass matrix to stabilize Stacey conditions do iface = 1,num_abs_boundary_faces ispec = abs_boundary_ispec(iface) @@ -439,23 +446,24 @@ subroutine define_mass_matrices_Stacey_elastic(nglob,nspec,DT,ibool,rho_vp,rho_v endif ! elastic enddo - end subroutine define_mass_matrices_Stacey_elastic + end subroutine add_mass_matrices_Stacey_elastic ! !------------------------------------------------------------------------------------------------- ! - subroutine define_mass_matrices_Stacey_acoustic(nglob,nspec,DT,ibool,rho_vp, & + subroutine add_mass_matrices_Stacey_acoustic(nglob,nspec,DT,ibool,rho_vp, & num_abs_boundary_faces,abs_boundary_ispec,abs_boundary_ijk, & abs_boundary_jacobian2Dw, & ispec_is_acoustic, & - rmassz_acoustic) + rmass_acoustic) ! in the case of Stacey boundary conditions, add C*deltat/2 contribution to the mass matrix ! ! thus, the acoustic mass matrix must be replaced by a mass matrix including the "C" damping matrix use constants, only: CUSTOM_REAL,NGLLX,NGLLY,NGLLZ,NGLLSQUARE + use shared_parameters, only: USE_LDDRK implicit none @@ -474,23 +482,23 @@ subroutine define_mass_matrices_Stacey_acoustic(nglob,nspec,DT,ibool,rho_vp, & logical, dimension(nspec), intent(in) :: ispec_is_acoustic - real(kind=CUSTOM_REAL), dimension(nglob), intent(inout) :: rmassz_acoustic + real(kind=CUSTOM_REAL), dimension(nglob), intent(inout) :: rmass_acoustic ! local parameters real(kind=CUSTOM_REAL) :: jacobianw - real(kind=CUSTOM_REAL) :: deltat,deltatover2 + real(kind=CUSTOM_REAL) :: deltatover2 real(kind=CUSTOM_REAL) :: sn integer :: ispec,iglob,i,j,k,iface,igll ! acoustic domains - ! use the non-dimensional time step to make the mass matrix correction - deltat = real(DT,kind=CUSTOM_REAL) - deltatover2 = real(0.5d0*DT,kind=CUSTOM_REAL) + ! only for Newmark time schemes + if (USE_LDDRK) return - ! adds contributions to mass matrix to stabilize Stacey conditions - rmassz_acoustic(:) = 0._CUSTOM_REAL + ! half time step to make the mass matrix correction + deltatover2 = real(0.5d0 * DT,kind=CUSTOM_REAL) + ! adds contributions to mass matrix to stabilize Stacey conditions do iface = 1,num_abs_boundary_faces ispec = abs_boundary_ispec(iface) @@ -514,12 +522,12 @@ subroutine define_mass_matrices_Stacey_acoustic(nglob,nspec,DT,ibool,rho_vp, & ! gets global index iglob = ibool(i,j,k,ispec) - rmassz_acoustic(iglob) = rmassz_acoustic(iglob) + jacobianw*sn + rmass_acoustic(iglob) = rmass_acoustic(iglob) + jacobianw*sn enddo endif ! acoustic enddo - end subroutine define_mass_matrices_Stacey_acoustic + end subroutine add_mass_matrices_Stacey_acoustic ! !------------------------------------------------------------------------------------------------- @@ -531,7 +539,7 @@ subroutine define_mass_matrices_pml_elastic(nglob,nspec,nspec_irregular,DT,ibool nspec_cpml,is_CPML,CPML_regions,CPML_to_spec, & d_store_x,d_store_y,d_store_z, & K_store_x,K_store_y,K_store_z, & - rmass) + rmassx,rmassy,rmassz) ! returns precomputed elastic mass matrix w/ PML elements @@ -570,7 +578,7 @@ subroutine define_mass_matrices_pml_elastic(nglob,nspec,nspec_irregular,DT,ibool real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,nspec_cpml), intent(in) :: d_store_x,d_store_y,d_store_z real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,nspec_cpml), intent(in) :: K_store_x,K_store_y,K_store_z - real(kind=CUSTOM_REAL), dimension(nglob), intent(inout) :: rmass + real(kind=CUSTOM_REAL), dimension(nglob), intent(inout) :: rmassx,rmassy,rmassz ! local parameters double precision :: weight @@ -581,8 +589,11 @@ subroutine define_mass_matrices_pml_elastic(nglob,nspec,nspec_irregular,DT,ibool deltat = real(DT,kind=CUSTOM_REAL) ! elastic mass matrix - rmass(:) = 0._CUSTOM_REAL + rmassx(:) = 0._CUSTOM_REAL + rmassy(:) = 0._CUSTOM_REAL + rmassz(:) = 0._CUSTOM_REAL + ! default mass matrix for non-PML elements ! loops over physical mesh elements do ispec = 1,nspec if (.not. is_CPML(ispec) .and. ispec_is_elastic(ispec)) then @@ -600,13 +611,14 @@ subroutine define_mass_matrices_pml_elastic(nglob,nspec,nspec_irregular,DT,ibool weight = wxgll(i)*wygll(j)*wzgll(k) if (ispec_irreg /= 0) jacobianl = jacobianstore(i,j,k,ispec_irreg) - rmass(iglob) = rmass(iglob) + real( dble(jacobianl) * weight * dble(mat_coef),kind=CUSTOM_REAL) + rmassz(iglob) = rmassz(iglob) + real( dble(jacobianl) * weight * dble(mat_coef),kind=CUSTOM_REAL) enddo enddo enddo endif enddo + ! mass matrix for PML elements ! loops over C-PML elements do ispec_CPML = 1,nspec_cpml ispec = CPML_to_spec(ispec_CPML) @@ -628,7 +640,7 @@ subroutine define_mass_matrices_pml_elastic(nglob,nspec,nspec_irregular,DT,ibool weight = wxgll(i)*wygll(j)*wzgll(k) if (ispec_irreg /= 0) jacobianl = jacobianstore(i,j,k,ispec_irreg) - rmass(iglob) = rmass(iglob) + & + rmassz(iglob) = rmassz(iglob) + & real( dble(jacobianl) * weight * dble(mat_coef) * & (dble(K_store_x(i,j,k,ispec_CPML)) + dble(d_store_x(i,j,k,ispec_CPML)) * deltat / 2.d0),kind=CUSTOM_REAL) enddo @@ -647,7 +659,7 @@ subroutine define_mass_matrices_pml_elastic(nglob,nspec,nspec_irregular,DT,ibool weight = wxgll(i)*wygll(j)*wzgll(k) if (ispec_irreg /= 0) jacobianl = jacobianstore(i,j,k,ispec_irreg) - rmass(iglob) = rmass(iglob) + & + rmassz(iglob) = rmassz(iglob) + & real( dble(jacobianl) * weight * dble(mat_coef) * & (dble(K_store_y(i,j,k,ispec_CPML)) + dble(d_store_y(i,j,k,ispec_CPML)) * deltat / 2.d0),kind=CUSTOM_REAL) enddo @@ -667,7 +679,7 @@ subroutine define_mass_matrices_pml_elastic(nglob,nspec,nspec_irregular,DT,ibool weight = wxgll(i)*wygll(j)*wzgll(k) if (ispec_irreg /= 0) jacobianl = jacobianstore(i,j,k,ispec_irreg) - rmass(iglob) = rmass(iglob) + & + rmassz(iglob) = rmassz(iglob) + & real( dble(jacobianl) * weight * dble(mat_coef) * & (dble(K_store_z(i,j,k,ispec_CPML)) + dble(d_store_z(i,j,k,ispec_CPML)) * deltat / 2.d0),kind=CUSTOM_REAL) enddo @@ -686,7 +698,7 @@ subroutine define_mass_matrices_pml_elastic(nglob,nspec,nspec_irregular,DT,ibool weight = wxgll(i)*wygll(j)*wzgll(k) if (ispec_irreg /= 0) jacobianl = jacobianstore(i,j,k,ispec_irreg) - rmass(iglob) = rmass(iglob) + & + rmassz(iglob) = rmassz(iglob) + & real( dble(jacobianl) * weight * dble(mat_coef) * & (dble(K_store_x(i,j,k,ispec_CPML)) * dble(K_store_y(i,j,k,ispec_CPML)) + & (dble(d_store_x(i,j,k,ispec_CPML)) * dble(K_store_y(i,j,k,ispec_CPML)) + & @@ -707,7 +719,7 @@ subroutine define_mass_matrices_pml_elastic(nglob,nspec,nspec_irregular,DT,ibool weight = wxgll(i)*wygll(j)*wzgll(k) if (ispec_irreg /= 0) jacobianl = jacobianstore(i,j,k,ispec_irreg) - rmass(iglob) = rmass(iglob) + & + rmassz(iglob) = rmassz(iglob) + & real( dble(jacobianl) * weight * dble(mat_coef) * & (dble(K_store_x(i,j,k,ispec_CPML)) * dble(K_store_z(i,j,k,ispec_CPML)) + & (dble(d_store_x(i,j,k,ispec_CPML)) * dble(K_store_z(i,j,k,ispec_CPML)) + & @@ -728,7 +740,7 @@ subroutine define_mass_matrices_pml_elastic(nglob,nspec,nspec_irregular,DT,ibool weight = wxgll(i)*wygll(j)*wzgll(k) if (ispec_irreg /= 0) jacobianl = jacobianstore(i,j,k,ispec_irreg) - rmass(iglob) = rmass(iglob) + & + rmassz(iglob) = rmassz(iglob) + & real( dble(jacobianl) * weight * dble(mat_coef) * & (dble(K_store_y(i,j,k,ispec_CPML)) * dble(K_store_z(i,j,k,ispec_CPML)) + & (dble(d_store_y(i,j,k,ispec_CPML)) * dble(K_store_z(i,j,k,ispec_CPML)) + & @@ -749,7 +761,7 @@ subroutine define_mass_matrices_pml_elastic(nglob,nspec,nspec_irregular,DT,ibool weight = wxgll(i)*wygll(j)*wzgll(k) if (ispec_irreg /= 0) jacobianl = jacobianstore(i,j,k,ispec_irreg) - rmass(iglob) = rmass(iglob) + & + rmassz(iglob) = rmassz(iglob) + & real( dble(jacobianl) * weight * dble(mat_coef) * & (dble(K_store_x(i,j,k,ispec_CPML)) * dble(K_store_y(i,j,k,ispec_CPML)) * & dble(K_store_z(i,j,k,ispec_CPML)) + (dble(d_store_x(i,j,k,ispec_CPML)) * & @@ -766,6 +778,10 @@ subroutine define_mass_matrices_pml_elastic(nglob,nspec,nspec_irregular,DT,ibool endif enddo ! do ispec_CPML = 1,nspec_cpml + ! copy initial mass matrix on all components + rmassx(:) = rmassz(:) + rmassy(:) = rmassz(:) + end subroutine define_mass_matrices_pml_elastic ! @@ -830,6 +846,7 @@ subroutine define_mass_matrices_pml_acoustic(nglob,nspec,nspec_irregular,DT,iboo ! acoustic mass matrix rmass_acoustic(:) = 0._CUSTOM_REAL + ! default mass matrix for non-PML elements ! loops over physical mesh elements do ispec = 1,nspec if (.not. is_CPML(ispec) .and. ispec_is_acoustic(ispec)) then @@ -854,6 +871,7 @@ subroutine define_mass_matrices_pml_acoustic(nglob,nspec,nspec_irregular,DT,iboo endif enddo + ! mass matrix for PML elements ! loops over C-PML elements do ispec_CPML = 1,nspec_cpml ispec = CPML_to_spec(ispec_CPML) diff --git a/src/shared/read_parameter_file.F90 b/src/shared/read_parameter_file.F90 index 7654d99aa..aed8b3acc 100644 --- a/src/shared/read_parameter_file.F90 +++ b/src/shared/read_parameter_file.F90 @@ -201,24 +201,31 @@ subroutine read_parameter_file(BROADCAST_AFTER_READ) write(*,*) endif - call read_value_logical(ATTENUATION, 'ATTENUATION', ier) + call read_value_logical(ANISOTROPY, 'ANISOTROPY', ier) if (ier /= 0) then some_parameters_missing_from_Par_file = .true. - write(*,'(a)') 'ATTENUATION = .false.' + write(*,'(a)') 'ANISOTROPY = .false.' write(*,*) endif - call read_value_logical(ANISOTROPY, 'ANISOTROPY', ier) + call read_value_logical(GRAVITY, 'GRAVITY', ier) if (ier /= 0) then some_parameters_missing_from_Par_file = .true. - write(*,'(a)') 'ANISOTROPY = .false.' + write(*,'(a)') 'GRAVITY = .false.' write(*,*) endif - call read_value_logical(GRAVITY, 'GRAVITY', ier) + call read_value_logical(ROTATION, 'ROTATION', ier) if (ier /= 0) then some_parameters_missing_from_Par_file = .true. - write(*,'(a)') 'GRAVITY = .false.' + write(*,'(a)') 'ROTATION = .false.' + write(*,*) + endif + + call read_value_logical(ATTENUATION, 'ATTENUATION', ier) + if (ier /= 0) then + some_parameters_missing_from_Par_file = .true. + write(*,'(a)') 'ATTENUATION = .false.' write(*,*) endif @@ -1457,6 +1464,7 @@ subroutine broadcast_computed_parameters() call bcast_all_singlel(ATTENUATION) call bcast_all_singlel(ANISOTROPY) call bcast_all_singlel(GRAVITY) + call bcast_all_singlel(ROTATION) ! (optional) gravity min/max call bcast_all_singlel(USE_GRAVITY_MINMAX) diff --git a/src/shared/shared_par.F90 b/src/shared/shared_par.F90 index e00d2bf96..146c993a1 100644 --- a/src/shared/shared_par.F90 +++ b/src/shared/shared_par.F90 @@ -105,8 +105,12 @@ module shared_input_parameters character(len=MAX_STRING_LEN) :: SEP_MODEL_DIRECTORY ! physical parameters - logical :: APPROXIMATE_OCEAN_LOAD,TOPOGRAPHY,ATTENUATION,ANISOTROPY - logical :: GRAVITY + logical :: APPROXIMATE_OCEAN_LOAD = .false. + logical :: TOPOGRAPHY = .false. + logical :: ATTENUATION = .false. + logical :: ANISOTROPY = .false. + logical :: GRAVITY = .false. + logical :: ROTATION = .false. character(len=MAX_STRING_LEN) :: TOMOGRAPHY_PATH diff --git a/src/specfem3D/lts_setup.F90 b/src/specfem3D/lts_setup.F90 index 21dd5dfec..28d103a53 100644 --- a/src/specfem3D/lts_setup.F90 +++ b/src/specfem3D/lts_setup.F90 @@ -1591,7 +1591,7 @@ subroutine lts_prepare_mass_matrices() use specfem_par, only: num_abs_boundary_faces, & abs_boundary_ispec, abs_boundary_ijk, abs_boundary_normal, abs_boundary_jacobian2Dw - use specfem_par_elastic, only: ispec_is_elastic,rho_vp,rho_vs,rmassx,rmassy,rmassz,rmass + use specfem_par_elastic, only: ispec_is_elastic,rho_vp,rho_vs,rmassx,rmassy,rmassz use specfem_par_lts, only: cmassxyz, rmassxyz, rmassxyz_mod @@ -1631,31 +1631,34 @@ subroutine lts_prepare_mass_matrices() call define_mass_matrices_elastic(NGLOB_AB,NSPEC_AB,NSPEC_IRREGULAR,ibool,rhostore, & jacobianstore,irregular_element_number,jacobian_regular, & wxgll,wygll,wzgll,ispec_is_elastic, & - rmass) - - ! re-creates Stacey contributions - if (num_abs_boundary_faces > 0) then - call define_mass_matrices_Stacey_elastic(NGLOB_AB,NSPEC_AB,DT,ibool,rho_vp,rho_vs, & - num_abs_boundary_faces,abs_boundary_ispec,abs_boundary_ijk, & - abs_boundary_normal,abs_boundary_jacobian2Dw, & - ispec_is_elastic, & - rmassx, rmassy, rmassz) - endif + rmassx,rmassy,rmassz) + + ! initial mass matrix (rmass) + rmassxyz(1,:) = rmassx(:) + rmassxyz(2,:) = rmassy(:) + rmassxyz(3,:) = rmassz(:) + + ! adds Stacey contributions + call add_mass_matrices_Stacey_elastic(NGLOB_AB,NSPEC_AB,DT,ibool,rho_vp,rho_vs, & + num_abs_boundary_faces,abs_boundary_ispec,abs_boundary_ijk, & + abs_boundary_normal,abs_boundary_jacobian2Dw, & + ispec_is_elastic, & + rmassx,rmassy,rmassz) - ! stores initial boundary contributions - cmassxyz(1,:) = rmassx(:) - cmassxyz(2,:) = rmassy(:) - cmassxyz(3,:) = rmassz(:) + ! modified mass matrices with contributions (rmass + stacey_contribution) + rmassxyz_mod(1,:) = rmassx(:) + rmassxyz_mod(2,:) = rmassy(:) + rmassxyz_mod(3,:) = rmassz(:) - ! modified mass matrices with contributions - rmassxyz_mod(1,:) = rmass(:) + rmassx(:) - rmassxyz_mod(2,:) = rmass(:) + rmassy(:) - rmassxyz_mod(3,:) = rmass(:) + rmassz(:) + ! only boundary contributions ((rmass + stacey_contribution) - rmass == stacey_contribution) + cmassxyz(1,:) = rmassxyz_mod(1,:) - rmassxyz(1,:) + cmassxyz(2,:) = rmassxyz_mod(2,:) - rmassxyz(2,:) + cmassxyz(3,:) = rmassxyz_mod(3,:) - rmassxyz(3,:) - ! re-sets mass matrices without contributions - rmassx(:) = rmass(:) - rmassy(:) = rmass(:) - rmassz(:) = rmass(:) + ! re-sets mass matrices without contributions ((rmass + stacey_contribution) - stacey_contribution == rmass) + rmassx(:) = rmassxyz(1,:) + rmassy(:) = rmassxyz(2,:) + rmassz(:) = rmassxyz(3,:) else ! no absorbing boundary contributions @@ -1768,7 +1771,7 @@ subroutine lts_prepare_mass_matrices_invert() ! stores final, inverted mass matrices of each component into single array ! note: when calling this routine, rmassx,rmassy,rmassz have been assembled and inverted. - ! we will needs these inverted mass matrices and store them into rmassxyz + ! we need these inverted mass matrices and store them into rmassxyz rmassxyz(1,:) = rmassx(:) rmassxyz(2,:) = rmassy(:) rmassxyz(3,:) = rmassz(:) diff --git a/src/specfem3D/prepare_timerun.F90 b/src/specfem3D/prepare_timerun.F90 index 2062f2f22..0451a6e9a 100644 --- a/src/specfem3D/prepare_timerun.F90 +++ b/src/specfem3D/prepare_timerun.F90 @@ -34,9 +34,8 @@ subroutine prepare_timerun() use specfem_par_poroelastic use specfem_par_movie - !! solving wavefield discontinuity problem with non-split-node scheme - use wavefield_discontinuity_solver, only: & - prepare_timerun_wavefield_discontinuity + ! solving wavefield discontinuity problem with non-split-node scheme + use wavefield_discontinuity_solver, only: prepare_timerun_wavefield_discontinuity implicit none @@ -74,9 +73,10 @@ subroutine prepare_timerun() ! prepares gravity arrays call prepare_gravity() - ! ZN I do not use if (USE_LDDRK) call prepare_timerun_lddrk() - ! ZN in order to avoid the error of using unallocated arrays later on in the code, - ! ZN since R_**_lddrk are arguments in subroutine compute_forces_viscoelastic + ! prepares LDDRK time scheme + ! note: do not use if (USE_LDDRK) call prepare_timerun_lddrk() + ! in order to avoid the error of using unallocated arrays later on in the code, + ! since R_**_lddrk are arguments in subroutine compute_forces_viscoelastic call prepare_timerun_lddrk() ! prepares C-PML arrays @@ -269,41 +269,6 @@ subroutine prepare_timerun_mass_matrices() ! to make sure all the nodes have finished to read their databases call synchronize_all() - ! sets up mass matrices - if (ACOUSTIC_SIMULATION) then - ! adds contributions - if (STACEY_ABSORBING_CONDITIONS) then - if (USE_LDDRK) then - rmass_acoustic(:) = rmass_acoustic(:) - else - ! adds boundary contributions for newmark scheme - rmass_acoustic(:) = rmass_acoustic(:) + rmassz_acoustic(:) - endif - ! not needed anymore - deallocate(rmassz_acoustic) - endif - endif - - if (ELASTIC_SIMULATION) then - ! switches to three-component mass matrix - if (STACEY_ABSORBING_CONDITIONS) then - if (USE_LDDRK) then - rmassx(:) = rmass(:) - rmassy(:) = rmass(:) - rmassz(:) = rmass(:) - else - ! adds boundary contributions for Newmark scheme - rmassx(:) = rmass(:) + rmassx(:) - rmassy(:) = rmass(:) + rmassy(:) - rmassz(:) = rmass(:) + rmassz(:) - endif - else - rmassx(:) = rmass(:) - rmassy(:) = rmass(:) - rmassz(:) = rmass(:) - endif - endif - ! LTS mass matrices if (LTS_MODE) call lts_prepare_mass_matrices() @@ -317,6 +282,13 @@ subroutine prepare_timerun_mass_matrices() ! fill mass matrix with fictitious non-zero values to make sure it can be inverted globally where(rmass_acoustic <= 0._CUSTOM_REAL) rmass_acoustic = 1._CUSTOM_REAL + + ! checks mass matrix + if (minval(rmass_acoustic) <= 0._CUSTOM_REAL) & + call exit_MPI(myrank,'negative mass matrix term for rmass_acoustic') + + ! mass matrix inversion + ! for efficiency, invert final mass matrix once and for all on each slice rmass_acoustic(:) = 1._CUSTOM_REAL / rmass_acoustic(:) endif @@ -340,6 +312,17 @@ subroutine prepare_timerun_mass_matrices() where(rmassx <= 0._CUSTOM_REAL) rmassx = 1._CUSTOM_REAL where(rmassy <= 0._CUSTOM_REAL) rmassy = 1._CUSTOM_REAL where(rmassz <= 0._CUSTOM_REAL) rmassz = 1._CUSTOM_REAL + + ! checks mass matrix + if (minval(rmassx) <= 0._CUSTOM_REAL) & + call exit_MPI(myrank,'negative mass matrix term for rmassx') + if (minval(rmassy) <= 0._CUSTOM_REAL) & + call exit_MPI(myrank,'negative mass matrix term for rmassy') + if (minval(rmassz) <= 0._CUSTOM_REAL) & + call exit_MPI(myrank,'negative mass matrix term for rmassz') + + ! mass matrix inversion + ! for efficiency, invert final mass matrix once and for all on each slice rmassx(:) = 1._CUSTOM_REAL / rmassx(:) rmassy(:) = 1._CUSTOM_REAL / rmassy(:) rmassz(:) = 1._CUSTOM_REAL / rmassz(:) @@ -351,6 +334,11 @@ subroutine prepare_timerun_mass_matrices() nibool_interfaces_ext_mesh,ibool_interfaces_ext_mesh, & my_neighbors_ext_mesh) where(rmass_ocean_load <= 0._CUSTOM_REAL) rmass_ocean_load = 1._CUSTOM_REAL + ! checks mass matrix + if (minval(rmass_ocean_load) <= 0._CUSTOM_REAL) & + call exit_MPI(myrank,'negative mass matrix term for rmass_ocean_load') + ! mass matrix inversion + ! for efficiency, invert final mass matrix once and for all on each slice rmass_ocean_load(:) = 1._CUSTOM_REAL / rmass_ocean_load(:) endif endif @@ -370,6 +358,15 @@ subroutine prepare_timerun_mass_matrices() ! fills mass matrix with fictitious non-zero values to make sure it can be inverted globally where(rmass_solid_poroelastic <= 0._CUSTOM_REAL) rmass_solid_poroelastic = 1._CUSTOM_REAL where(rmass_fluid_poroelastic <= 0._CUSTOM_REAL) rmass_fluid_poroelastic = 1._CUSTOM_REAL + + ! checks mass matrix + if (minval(rmass_solid_poroelastic) <= 0._CUSTOM_REAL) & + call exit_MPI(myrank,'negative mass matrix term for rmass_solid_poroelastic') + if (minval(rmass_fluid_poroelastic) <= 0._CUSTOM_REAL) & + call exit_MPI(myrank,'negative mass matrix term for rmass_fluid_poroelastic') + + ! mass matrix inversion + ! for efficiency, invert final mass matrix once and for all on each slice rmass_solid_poroelastic(:) = 1._CUSTOM_REAL / rmass_solid_poroelastic(:) rmass_fluid_poroelastic(:) = 1._CUSTOM_REAL / rmass_fluid_poroelastic(:) endif @@ -380,12 +377,6 @@ subroutine prepare_timerun_mass_matrices() ! synchonizes call synchronize_all() - ! frees arrays - if (ELASTIC_SIMULATION) then - ! not needed anymore - deallocate(rmass) - endif - end subroutine prepare_timerun_mass_matrices ! diff --git a/src/specfem3D/read_mesh_databases.F90 b/src/specfem3D/read_mesh_databases.F90 index 0659f49da..5334f354f 100644 --- a/src/specfem3D/read_mesh_databases.F90 +++ b/src/specfem3D/read_mesh_databases.F90 @@ -284,12 +284,6 @@ subroutine read_mesh_databases() if (I_should_read_the_database) read(IIN) rmass_acoustic call bcast_all_cr_for_database(rmass_acoustic(1), size(rmass_acoustic,kind=4)) - - ! initializes mass matrix contribution - allocate(rmassz_acoustic(NGLOB_AB),stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 1425') - if (ier /= 0) stop 'Error allocating array rmassz_acoustic' - rmassz_acoustic(:) = 0.0_CUSTOM_REAL endif ! elastic simulation @@ -318,18 +312,10 @@ subroutine read_mesh_databases() endif ! allocates mass matrix - allocate(rmass(NGLOB_AB),stat=ier) + allocate(rmassx(NGLOB_AB), & + rmassy(NGLOB_AB), & + rmassz(NGLOB_AB), stat=ier) if (ier /= 0) call exit_MPI_without_rank('error allocating array 1431') - if (ier /= 0) stop 'Error allocating array rmass' - rmass(:) = 0.0_CUSTOM_REAL - - ! initializes mass matrix contributions - allocate(rmassx(NGLOB_AB),stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 1432') - allocate(rmassy(NGLOB_AB),stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 1433') - allocate(rmassz(NGLOB_AB), stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 1434') if (ier /= 0) stop 'Error allocating array rmassx,rmassy,rmassz' rmassx(:) = 0._CUSTOM_REAL rmassy(:) = 0._CUSTOM_REAL @@ -451,10 +437,14 @@ subroutine read_mesh_databases() ! reads mass matrices if (I_should_read_the_database) then - read(IIN,iostat=ier) rmass - if (ier /= 0) stop 'Error reading in array rmass' + read(IIN,iostat=ier) rmassx + read(IIN,iostat=ier) rmassy + read(IIN,iostat=ier) rmassz + if (ier /= 0) stop 'Error reading in array rmassx,rmassy,rmassz' endif - call bcast_all_cr_for_database(rmass(1), size(rmass,kind=4)) + call bcast_all_cr_for_database(rmassx(1), size(rmassx,kind=4)) + call bcast_all_cr_for_database(rmassy(1), size(rmassy,kind=4)) + call bcast_all_cr_for_database(rmassz(1), size(rmassz,kind=4)) if (APPROXIMATE_OCEAN_LOAD) then ! ocean mass matrix @@ -791,24 +781,6 @@ subroutine read_mesh_databases() call bcast_all_i_for_database(abs_boundary_ijk(1,1,1), size(abs_boundary_ijk,kind=4)) call bcast_all_cr_for_database(abs_boundary_jacobian2Dw(1,1), size(abs_boundary_jacobian2Dw,kind=4)) call bcast_all_cr_for_database(abs_boundary_normal(1,1,1), size(abs_boundary_normal,kind=4)) - - if (STACEY_ABSORBING_CONDITIONS .and. (.not. PML_CONDITIONS)) then - ! store mass matrix contributions - if (ELASTIC_SIMULATION) then - if (I_should_read_the_database) then - read(IIN) rmassx - read(IIN) rmassy - read(IIN) rmassz - endif - call bcast_all_cr_for_database(rmassx(1), size(rmassx,kind=4)) - call bcast_all_cr_for_database(rmassy(1), size(rmassy,kind=4)) - call bcast_all_cr_for_database(rmassz(1), size(rmassz,kind=4)) - endif - if (ACOUSTIC_SIMULATION) then - if (I_should_read_the_database) read(IIN) rmassz_acoustic - call bcast_all_cr_for_database(rmassz_acoustic(1), size(rmassz_acoustic,kind=4)) - endif - endif endif ! checks i/o so far diff --git a/src/specfem3D/read_mesh_databases_adios.F90 b/src/specfem3D/read_mesh_databases_adios.F90 index 71ca0582d..a8c3ca598 100644 --- a/src/specfem3D/read_mesh_databases_adios.F90 +++ b/src/specfem3D/read_mesh_databases_adios.F90 @@ -129,8 +129,7 @@ subroutine read_mesh_databases_adios() local_dim_alpha_store_z, & local_dim_points_interface_PML_acoustic, & local_dim_points_interface_PML_elastic, & - local_dim_rmassx, local_dim_rmassy, local_dim_rmassz, & - local_dim_rmassz_acoustic, local_dim_coupling_el_po_ispec, & + local_dim_coupling_el_po_ispec, & local_dim_coupling_po_el_ispec, local_dim_coupling_el_po_ijk, & local_dim_coupling_po_el_ijk, & local_dim_coupling_el_po_jacobian2Dw, & @@ -361,7 +360,9 @@ subroutine read_mesh_databases_adios() call read_adios_scalar_local_dim(myadios_file, myadios_group, myrank, "rmass_acoustic", local_dim_rmass_acoustic) endif if (ELASTIC_SIMULATION) then - call read_adios_scalar_local_dim(myadios_file, myadios_group, myrank, "rmass", local_dim_rmass) + call read_adios_scalar_local_dim(myadios_file, myadios_group, myrank, "rmassx", local_dim_rmass) + !call read_adios_scalar_local_dim(myadios_file, myadios_group, myrank, "rmassy", local_dim_rmass) ! same dimensions + !call read_adios_scalar_local_dim(myadios_file, myadios_group, myrank, "rmassz", local_dim_rmass) if (APPROXIMATE_OCEAN_LOAD) then call read_adios_scalar_local_dim(myadios_file, myadios_group, myrank, "rmass_ocean_load", local_dim_rmass_ocean_load) @@ -419,17 +420,6 @@ subroutine read_mesh_databases_adios() "abs_boundary_jacobian2Dw", local_dim_abs_boundary_jacobian2Dw) call read_adios_scalar_local_dim(myadios_file, myadios_group, myrank, & "abs_boundary_normal", local_dim_abs_boundary_normal) - if (STACEY_ABSORBING_CONDITIONS .and. (.not. PML_CONDITIONS)) then - ! mass matrix contributions - if (ELASTIC_SIMULATION) then - call read_adios_scalar_local_dim(myadios_file, myadios_group, myrank, "rmassx", local_dim_rmassx) - call read_adios_scalar_local_dim(myadios_file, myadios_group, myrank, "rmassy", local_dim_rmassy) - call read_adios_scalar_local_dim(myadios_file, myadios_group, myrank, "rmassz", local_dim_rmassz) - endif - if (ACOUSTIC_SIMULATION) then - call read_adios_scalar_local_dim(myadios_file, myadios_group, myrank, "rmassz_acoustic", local_dim_rmassz_acoustic) - endif - endif endif if (nspec2d_xmin > 0) then @@ -574,12 +564,6 @@ subroutine read_mesh_databases_adios() if (ier /= 0) call exit_MPI_without_rank('error allocating array 1795') if (ier /= 0) stop 'error allocating array rmass_acoustic' rmass_acoustic(:) = 0.0_CUSTOM_REAL - - ! initializes mass matrix contribution - allocate(rmassz_acoustic(NGLOB_AB),stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 1796') - if (ier /= 0) stop 'error allocating array rmassz_acoustic' - rmassz_acoustic(:) = 0._CUSTOM_REAL endif !TODO @@ -608,18 +592,10 @@ subroutine read_mesh_databases_adios() endif ! allocates mass matrix - allocate(rmass(NGLOB_AB),stat=ier) + allocate(rmassx(NGLOB_AB), & + rmassy(NGLOB_AB), & + rmassz(NGLOB_AB), stat=ier) if (ier /= 0) call exit_MPI_without_rank('error allocating array 1802') - rmass(:) = 0.0_CUSTOM_REAL - - if (ier /= 0) stop 'error allocating array rmass' - ! initializes mass matrix contributions - allocate(rmassx(NGLOB_AB),stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 1803') - allocate(rmassy(NGLOB_AB),stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 1804') - allocate(rmassz(NGLOB_AB), stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 1805') if (ier /= 0) stop 'error allocating array rmassx,rmassy,rmassz' rmassx(:) = 0._CUSTOM_REAL rmassy(:) = 0._CUSTOM_REAL @@ -1191,7 +1167,9 @@ subroutine read_mesh_databases_adios() sel_num = sel_num+1 sel => selections(sel_num) call set_selection_boundingbox(sel, start, count_ad) - call read_adios_schedule_array(myadios_file, myadios_group, sel, start, count_ad, "rmass/array", rmass) + call read_adios_schedule_array(myadios_file, myadios_group, sel, start, count_ad, "rmassx/array", rmassx) + call read_adios_schedule_array(myadios_file, myadios_group, sel, start, count_ad, "rmassy/array", rmassy) + call read_adios_schedule_array(myadios_file, myadios_group, sel, start, count_ad, "rmassz/array", rmassz) if (APPROXIMATE_OCEAN_LOAD) then ! ocean mass matrix @@ -1346,29 +1324,6 @@ subroutine read_mesh_databases_adios() call set_selection_boundingbox(sel, start, count_ad) call read_adios_schedule_array(myadios_file, myadios_group, sel, start, count_ad, & "abs_boundary_normal/array", abs_boundary_normal) - - if (STACEY_ABSORBING_CONDITIONS .and. (.not. PML_CONDITIONS)) then - ! store mass matrix contributions - if (ELASTIC_SIMULATION) then - start(1) = local_dim_rmassx * myrank - count_ad(1) = NGLOB_AB ! == nglob_xy in generate_databse - sel_num = sel_num+1 - sel => selections(sel_num) - call set_selection_boundingbox(sel, start, count_ad) - call read_adios_schedule_array(myadios_file, myadios_group, sel, start, count_ad, "rmassx/array", rmassx) - call read_adios_schedule_array(myadios_file, myadios_group, sel, start, count_ad, "rmassy/array", rmassy) - call read_adios_schedule_array(myadios_file, myadios_group, sel, start, count_ad, "rmassz/array", rmassz) - endif - if (ACOUSTIC_SIMULATION) then - start(1) = local_dim_rmassz_acoustic * myrank - count_ad(1) = NGLOB_AB ! == nglob_xy in generate_databse - sel_num = sel_num+1 - sel => selections(sel_num) - call set_selection_boundingbox(sel, start, count_ad) - call read_adios_schedule_array(myadios_file, myadios_group, sel, start, count_ad, & - "rmassz_acoustic/array", rmassz_acoustic) - endif - endif endif if (nspec2d_xmin > 0) then diff --git a/src/specfem3D/read_mesh_databases_hdf5.F90 b/src/specfem3D/read_mesh_databases_hdf5.F90 index 8697c202b..31df0bace 100644 --- a/src/specfem3D/read_mesh_databases_hdf5.F90 +++ b/src/specfem3D/read_mesh_databases_hdf5.F90 @@ -134,7 +134,6 @@ subroutine read_mesh_databases_hdf5() integer, dimension(0:NPROC-1) :: offset_nglob_interface_PML_acoustic integer, dimension(0:NPROC-1) :: offset_nglob_interface_PML_elastic integer, dimension(0:NPROC-1) :: offset_num_abs_boundary_faces - integer, dimension(0:NPROC-1) :: offset_nglob_xy integer, dimension(0:NPROC-1) :: offset_nspec2D_xmin integer, dimension(0:NPROC-1) :: offset_nspec2D_xmax integer, dimension(0:NPROC-1) :: offset_nspec2D_ymin @@ -366,12 +365,6 @@ subroutine read_mesh_databases_hdf5() call h5_read_dataset_collect_hyperslab(dsetname, rmass_acoustic,(/sum(offset_nglob(0:myrank-1))/),H5_COL) endif if (size(rmass_acoustic) > 0) call bcast_all_cr_for_database(rmass_acoustic(1), size(rmass_acoustic,kind=4)) - - ! initializes mass matrix contribution - allocate(rmassz_acoustic(NGLOB_AB),stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 1425') - if (ier /= 0) stop 'Error allocating array rmassz_acoustic' - rmassz_acoustic(:) = 0.0_CUSTOM_REAL endif ! elastic simulation @@ -400,18 +393,10 @@ subroutine read_mesh_databases_hdf5() endif ! allocates mass matrix - allocate(rmass(NGLOB_AB),stat=ier) + allocate(rmassx(NGLOB_AB), & + rmassy(NGLOB_AB), & + rmassz(NGLOB_AB), stat=ier) if (ier /= 0) call exit_MPI_without_rank('error allocating array 1431') - rmass(:) = 0.0_CUSTOM_REAL - - if (ier /= 0) stop 'Error allocating array rmass' - ! initializes mass matrix contributions - allocate(rmassx(NGLOB_AB),stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 1432') - allocate(rmassy(NGLOB_AB),stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 1433') - allocate(rmassz(NGLOB_AB), stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 1434') if (ier /= 0) stop 'Error allocating array rmassx,rmassy,rmassz' rmassx(:) = 0._CUSTOM_REAL rmassy(:) = 0._CUSTOM_REAL @@ -533,11 +518,16 @@ subroutine read_mesh_databases_hdf5() ! reads mass matrices if (I_should_read_the_database) then - dsetname = "rmass" - call h5_read_dataset_collect_hyperslab(dsetname, rmass, (/sum(offset_nglob(0:myrank-1))/), H5_COL) + dsetname = "rmassx" + call h5_read_dataset_collect_hyperslab(dsetname, rmassx, (/sum(offset_nglob(0:myrank-1))/), H5_COL) + dsetname = "rmassy" + call h5_read_dataset_collect_hyperslab(dsetname, rmassy, (/sum(offset_nglob(0:myrank-1))/), H5_COL) + dsetname = "rmassz" + call h5_read_dataset_collect_hyperslab(dsetname, rmassz, (/sum(offset_nglob(0:myrank-1))/), H5_COL) endif - call bcast_all_cr_for_database(rmass(1), size(rmass,kind=4)) - if (ier /= 0) stop 'Error reading in array rmass' + if (size(rmassx) > 0) call bcast_all_cr_for_database(rmassx(1), size(rmassx,kind=4)) + if (size(rmassy) > 0) call bcast_all_cr_for_database(rmassy(1), size(rmassy,kind=4)) + if (size(rmassz) > 0) call bcast_all_cr_for_database(rmassz(1), size(rmassz,kind=4)) if (APPROXIMATE_OCEAN_LOAD) then ! ocean mass matrix @@ -939,11 +929,6 @@ subroutine read_mesh_databases_hdf5() call bcast_all_i_array_for_database(offset_num_abs_boundary_faces, size(offset_num_abs_boundary_faces,kind=4)) if (sum(offset_num_abs_boundary_faces) > 0) then - if (I_should_read_the_database) then - call h5_read_dataset_collect_hyperslab("offset_nglob_xy",offset_nglob_xy, (/0/), H5_COL) - endif - call bcast_all_i_array_for_database(offset_nglob_xy, size(offset_nglob_xy,kind=4)) - if (I_should_read_the_database) then dsetname = "abs_boundary_ispec" call h5_read_dataset_collect_hyperslab(dsetname, abs_boundary_ispec, & @@ -966,34 +951,6 @@ subroutine read_mesh_databases_hdf5() call bcast_all_cr_for_database(abs_boundary_jacobian2Dw(1,1), size(abs_boundary_jacobian2Dw,kind=4)) if (size(abs_boundary_normal) > 0) & call bcast_all_cr_for_database(abs_boundary_normal(1,1,1), size(abs_boundary_normal,kind=4)) - - if (STACEY_ABSORBING_CONDITIONS .and. (.not. PML_CONDITIONS)) then - ! store mass matrix contributions - if (ELASTIC_SIMULATION) then - if (I_should_read_the_database) then - dsetname = "rmassx" - call h5_read_dataset_collect_hyperslab(dsetname, rmassx(1:offset_nglob_xy(myrank)), & - (/sum(offset_nglob_xy(0:myrank-1))/),H5_COL) - dsetname = "rmassy" - call h5_read_dataset_collect_hyperslab(dsetname, rmassy(1:offset_nglob_xy(myrank)), & - (/sum(offset_nglob_xy(0:myrank-1))/),H5_COL) - dsetname = "rmassz" - call h5_read_dataset_collect_hyperslab(dsetname, rmassz(1:offset_nglob_xy(myrank)), & - (/sum(offset_nglob_xy(0:myrank-1))/),H5_COL) - endif - if (size(rmassx) > 0) call bcast_all_cr_for_database(rmassx(1), size(rmassx,kind=4)) - if (size(rmassy) > 0) call bcast_all_cr_for_database(rmassy(1), size(rmassy,kind=4)) - if (size(rmassz) > 0) call bcast_all_cr_for_database(rmassz(1), size(rmassz,kind=4)) - endif - if (ACOUSTIC_SIMULATION) then - if (I_should_read_the_database) then - dsetname = "rmassz_acoustic" - call h5_read_dataset_collect_hyperslab(dsetname, rmassz_acoustic(1:offset_nglob_xy(myrank)), & - (/sum(offset_nglob_xy(0:myrank-1))/),H5_COL) - endif - if (size(rmassz_acoustic) > 0) call bcast_all_cr_for_database(rmassz_acoustic(1), size(rmassz_acoustic,kind=4)) - endif - endif endif ! boundaries diff --git a/src/specfem3D/specfem3D_par.F90 b/src/specfem3D/specfem3D_par.F90 index 14e1e468d..d55103b29 100644 --- a/src/specfem3D/specfem3D_par.F90 +++ b/src/specfem3D/specfem3D_par.F90 @@ -425,10 +425,9 @@ module specfem_par_elastic real(kind=CUSTOM_REAL), dimension(:,:), allocatable :: accel_adj_coupling ! mass matrix - real(kind=CUSTOM_REAL), dimension(:), allocatable :: rmass - - ! Stacey real(kind=CUSTOM_REAL), dimension(:), allocatable :: rmassx,rmassy,rmassz + + ! for Stacey real(kind=CUSTOM_REAL), dimension(:,:,:,:), allocatable :: rho_vp,rho_vs ! anisotropic @@ -523,7 +522,6 @@ module specfem_par_acoustic ! mass matrix real(kind=CUSTOM_REAL), dimension(:), allocatable :: rmass_acoustic - real(kind=CUSTOM_REAL), dimension(:), allocatable :: rmassz_acoustic ! acoustic-elastic coupling surface real(kind=CUSTOM_REAL), dimension(:,:,:), allocatable :: coupling_ac_el_normal diff --git a/src/tomography/model_update.f90 b/src/tomography/model_update.f90 index e8b103e3a..6d50ada79 100644 --- a/src/tomography/model_update.f90 +++ b/src/tomography/model_update.f90 @@ -821,10 +821,8 @@ subroutine save_new_databases() real(kind=CUSTOM_REAL), dimension(:,:,:,:), allocatable :: rhostore_new integer :: i,j,k,ispec - integer :: nglob_xy ! mass matrices - real(kind=CUSTOM_REAL), dimension(:), allocatable :: rmass_new real(kind=CUSTOM_REAL), dimension(:), allocatable :: rmassx_new,rmassy_new,rmassz_new real(kind=CUSTOM_REAL), dimension(:), allocatable :: rmass_acoustic_new,rmass_solid_poroelastic_new,rmass_fluid_poroelastic_new @@ -875,9 +873,13 @@ subroutine save_new_databases() call zwgljd(zigll,wzgll,NGLLZ,GAUSSALPHA,GAUSSBETA) ! create mass matrix ONLY for the elastic case - allocate(rmass_new(NGLOB_AB),stat=ier) + allocate(rmassx_new(NGLOB_AB), & + rmassy_new(NGLOB_AB), & + rmassz_new(NGLOB_AB), stat=ier) if (ier /= 0) call exit_MPI_without_rank('error allocating array 958') - rmass_new(:) = 0._CUSTOM_REAL + rmassx_new(:) = 0._CUSTOM_REAL + rmassy_new(:) = 0._CUSTOM_REAL + rmassz_new(:) = 0._CUSTOM_REAL ! user output if (myrank == 0) then @@ -889,32 +891,15 @@ subroutine save_new_databases() call define_mass_matrices_elastic(NGLOB_AB,NSPEC_AB,nspec_irregular,ibool,rhostore_new, & jacobianstore,irregular_element_number,jacobian_regular, & wxgll,wygll,wzgll,ispec_is_elastic, & - rmass_new) + rmassx_new,rmassy_new,rmassz_new) ! this does update the absorbing boundary contributions to the mass matrix if (STACEY_ABSORBING_CONDITIONS) then - ! checks if anything to do - if (num_abs_boundary_faces > 0) then - nglob_xy = NGLOB_AB - else - nglob_xy = 1 - endif - - ! elastic domains - allocate( rmassx_new(nglob_xy), rmassy_new(nglob_xy), rmassz_new(nglob_xy), stat=ier) - if (ier /= 0) call exit_MPI_without_rank('error allocating array 666') - if (ier /= 0) stop 'error in allocate 21' - rmassx_new(:) = 0._CUSTOM_REAL - rmassy_new(:) = 0._CUSTOM_REAL - rmassz_new(:) = 0._CUSTOM_REAL - - if (num_abs_boundary_faces > 0) then - call define_mass_matrices_Stacey_elastic(NGLOB_AB,NSPEC_AB,DT,ibool,rho_vp_new,rho_vs_new, & - num_abs_boundary_faces,abs_boundary_ispec,abs_boundary_ijk, & - abs_boundary_normal,abs_boundary_jacobian2Dw, & - ispec_is_elastic, & - rmassx_new, rmassy_new, rmassz_new) - endif + call add_mass_matrices_Stacey_elastic(NGLOB_AB,NSPEC_AB,DT,ibool,rho_vp_new,rho_vs_new, & + num_abs_boundary_faces,abs_boundary_ispec,abs_boundary_ijk, & + abs_boundary_normal,abs_boundary_jacobian2Dw, & + ispec_is_elastic, & + rmassx_new,rmassy_new,rmassz_new) endif call synchronize_all() @@ -1074,8 +1059,8 @@ subroutine save_new_databases() call save_external_bin_m_up(NSPEC_AB,NGLOB_AB, & rho_vp_new,rho_vs_new,qmu_attenuation_store, & rhostore_new,kappastore_new,mustore_new, & - rmass_new,rmass_acoustic_new,rmass_solid_poroelastic_new,rmass_fluid_poroelastic_new, & - nglob_xy,rmassx_new,rmassy_new,rmassz_new, & + rmassx_new,rmassy_new,rmassz_new, & + rmass_acoustic_new,rmass_solid_poroelastic_new,rmass_fluid_poroelastic_new, & APPROXIMATE_OCEAN_LOAD,rmass_ocean_load,NGLOB_OCEAN,ibool,xstore,ystore,zstore, & abs_boundary_normal,abs_boundary_jacobian2Dw, & abs_boundary_ijk,abs_boundary_ispec,num_abs_boundary_faces, & @@ -1091,7 +1076,6 @@ subroutine save_new_databases() ispec_is_acoustic,ispec_is_elastic,ispec_is_poroelastic) deallocate(rhostore_new, kappastore_new, mustore_new, rho_vp_new, rho_vs_new) - deallocate(rmass_new) deallocate(rmassx_new,rmassy_new,rmassz_new) deallocate(rmass_acoustic_new,rmass_solid_poroelastic_new,rmass_fluid_poroelastic_new) deallocate(qmu_attenuation_store,qkappa_attenuation_store) diff --git a/src/tomography/save_external_bin_m_up.f90 b/src/tomography/save_external_bin_m_up.f90 index 3a29288cd..e0d4c2a34 100644 --- a/src/tomography/save_external_bin_m_up.f90 +++ b/src/tomography/save_external_bin_m_up.f90 @@ -34,8 +34,8 @@ subroutine save_external_bin_m_up(nspec,nglob, & rho_vp,rho_vs,qmu_attenuation_store, & rhostore,kappastore,mustore, & - rmass,rmass_acoustic,rmass_solid_poroelastic,rmass_fluid_poroelastic, & - nglob_xy,rmassx,rmassy,rmassz, & + rmassx,rmassy,rmassz, & + rmass_acoustic,rmass_solid_poroelastic,rmass_fluid_poroelastic, & APPROXIMATE_OCEAN_LOAD,rmass_ocean_load,NGLOB_OCEAN, & ibool, & xstore,ystore,zstore, & @@ -69,7 +69,7 @@ subroutine save_external_bin_m_up(nspec,nglob, & nspec_inner_elastic,nspec_outer_elastic,num_phase_ispec_elastic,phase_ispec_inner_elastic, & num_colors_outer_elastic,num_colors_inner_elastic,num_elem_colors_elastic - use specfem_par_acoustic, only: rmassz_acoustic,num_coupling_ac_po_faces, & + use specfem_par_acoustic, only: num_coupling_ac_po_faces, & num_coupling_ac_el_faces,coupling_ac_el_ijk,coupling_ac_el_ispec, & nspec_inner_acoustic,nspec_outer_acoustic,num_phase_ispec_acoustic,phase_ispec_inner_acoustic, & num_colors_outer_acoustic,num_colors_inner_acoustic,num_elem_colors_acoustic @@ -88,12 +88,10 @@ subroutine save_external_bin_m_up(nspec,nglob, & ! material real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,nspec) :: rhostore,kappastore,mustore - real(kind=CUSTOM_REAL), dimension(nglob) :: rmass,rmass_acoustic, & + real(kind=CUSTOM_REAL), dimension(nglob) :: rmassx,rmassy,rmassz, & + rmass_acoustic, & rmass_solid_poroelastic,rmass_fluid_poroelastic - integer :: nglob_xy - real(kind=CUSTOM_REAL), dimension(nglob_xy) :: rmassx,rmassy,rmassz - ! ocean load logical :: APPROXIMATE_OCEAN_LOAD integer :: NGLOB_OCEAN @@ -199,7 +197,9 @@ subroutine save_external_bin_m_up(nspec,nglob, & ! elastic call any_all_l( ANY(ispec_is_elastic), ELASTIC_SIMULATION ) if (ELASTIC_SIMULATION) then - write(IOUT) rmass + write(IOUT) rmassx + write(IOUT) rmassy + write(IOUT) rmassz if (APPROXIMATE_OCEAN_LOAD) then write(IOUT) rmass_ocean_load endif @@ -223,15 +223,6 @@ subroutine save_external_bin_m_up(nspec,nglob, & write(IOUT) abs_boundary_ijk write(IOUT) abs_boundary_jacobian2Dw write(IOUT) abs_boundary_normal - ! store mass matrix contributions - if (ELASTIC_SIMULATION) then - write(IOUT) rmassx - write(IOUT) rmassy - write(IOUT) rmassz - endif - if (ACOUSTIC_SIMULATION) then - write(IOUT) rmassz_acoustic - endif endif ! free surface