diff --git a/include/IO/interface.hpp b/include/IO/interface.hpp index 8c1429fb5..671873eee 100644 --- a/include/IO/interface.hpp +++ b/include/IO/interface.hpp @@ -24,6 +24,17 @@ namespace IO { specfem::mesh::mesh read_mesh(const std::string filename, const specfem::MPI::MPI *mpi); +/** + * @brief Print the information of a mesh + * + * @param mesh Mesh object to print + * @param mpi pointer to MPI object to manage communication + * @return specfem::mesh::mesh Specfem mesh object + * + */ +void print_mesh(const specfem::mesh::mesh &mesh, + const specfem::MPI::MPI *mpi); + /** * @brief Read station file * diff --git a/include/quadrature/quadratures.hpp b/include/quadrature/quadratures.hpp index 8ea1144b2..5cff0dc1a 100644 --- a/include/quadrature/quadratures.hpp +++ b/include/quadrature/quadratures.hpp @@ -9,7 +9,18 @@ struct quadratures { specfem::quadrature::gll::gll gll; quadratures(const specfem::quadrature::gll::gll &gll) : gll(gll) {} + + void print(std::ostream &out) const { + out << " Quadrature in X-dimension \n"; + gll.print(out); + + out << " Quadrature in Z-dimension \n"; + gll.print(out); + } }; + +std::ostream &operator<<(std::ostream &out, + const specfem::quadrature::quadratures &quad); } // namespace quadrature } // namespace specfem diff --git a/src/IO/mesh.cpp b/src/IO/mesh.cpp index 29021be54..a38988048 100644 --- a/src/IO/mesh.cpp +++ b/src/IO/mesh.cpp @@ -185,7 +185,27 @@ specfem::IO::read_mesh(const std::string filename, stream.close(); - // Print material properties + const auto &l_elastic_isotropic = + mesh.materials.elastic_isotropic.material_properties; + const auto &l_acoustic_isotropic = + mesh.materials.acoustic_isotropic.material_properties; + + const auto &l_elastic_anisotropic = + mesh.materials.elastic_anisotropic.material_properties; + + assert(l_elastic_isotropic.size() + l_acoustic_isotropic.size() + + l_elastic_anisotropic.size() == + mesh.materials.n_materials); + + mesh.tags = specfem::mesh::tags( + mesh.materials, mesh.boundaries); + + return mesh; +} + +void specfem::IO::print_mesh( + const specfem::mesh::mesh &mesh, + const specfem::MPI::MPI *mpi) { mpi->cout("Material systems:\n" "------------------------------"); @@ -193,12 +213,12 @@ specfem::IO::read_mesh(const std::string filename, mpi->cout("Number of material systems = " + std::to_string(mesh.materials.n_materials) + "\n\n"); - const auto l_elastic_isotropic = + const auto &l_elastic_isotropic = mesh.materials.elastic_isotropic.material_properties; - const auto l_acoustic_isotropic = + const auto &l_acoustic_isotropic = mesh.materials.acoustic_isotropic.material_properties; - const auto l_elastic_anisotropic = + const auto &l_elastic_anisotropic = mesh.materials.elastic_anisotropic.material_properties; for (const auto material : l_elastic_isotropic) { @@ -212,13 +232,4 @@ specfem::IO::read_mesh(const std::string filename, for (const auto material : l_elastic_anisotropic) { mpi->cout(material.print()); } - - assert(l_elastic_isotropic.size() + l_acoustic_isotropic.size() + - l_elastic_anisotropic.size() == - mesh.materials.n_materials); - - mesh.tags = specfem::mesh::tags( - mesh.materials, mesh.boundaries); - - return mesh; } diff --git a/src/IO/mesh/impl/fortran/read_material_properties.cpp b/src/IO/mesh/impl/fortran/read_material_properties.cpp index 3f8458bf8..4c126202c 100644 --- a/src/IO/mesh/impl/fortran/read_material_properties.cpp +++ b/src/IO/mesh/impl/fortran/read_material_properties.cpp @@ -36,13 +36,13 @@ std::vector read_materials( std::vector index_mapping( numat); - message << "Material systems:\n" - << "------------------------------"; + // message << "Material systems:\n" + // << "------------------------------"; - mpi->cout(message.str()); + // mpi->cout(message.str()); - if (mpi->get_rank() == 0) - std::cout << "Number of material systems = " << numat << "\n\n"; + // if (mpi->get_rank() == 0) + // std::cout << "Number of material systems = " << numat << "\n\n"; // Section for elastic isotropic std::vector > diff --git a/src/execute.cpp b/src/execute.cpp index 138d51902..2ef3ef6ae 100644 --- a/src/execute.cpp +++ b/src/execute.cpp @@ -41,8 +41,15 @@ void execute( // -------------------------------------------------------------- // Read mesh and materials // -------------------------------------------------------------- - const auto quadrature = setup.instantiate_quadrature(); + const auto quadratures = setup.instantiate_quadrature(); + if (mpi->main_proc()) { + std::cout << quadratures << std::endl; + } + const auto mesh = specfem::IO::read_mesh(database_filename, mpi); + if (mpi->main_proc()) { + specfem::IO::print_mesh(mesh, mpi); + } // -------------------------------------------------------------- // -------------------------------------------------------------- @@ -101,7 +108,7 @@ void execute( mpi->cout("-------------------------------"); const type_real dt = setup.get_dt(); specfem::compute::assembly assembly( - mesh, quadrature, sources, receivers, setup.get_seismogram_types(), + mesh, quadratures, sources, receivers, setup.get_seismogram_types(), setup.get_t0(), dt, nsteps, max_seismogram_time_step, nstep_between_samples, setup.get_simulation_type(), setup.instantiate_property_reader()); diff --git a/src/parameter_parser/quadrature.cpp b/src/parameter_parser/quadrature.cpp index 701acaf3f..16cbe4c0f 100644 --- a/src/parameter_parser/quadrature.cpp +++ b/src/parameter_parser/quadrature.cpp @@ -11,12 +11,6 @@ specfem::runtime_configuration::quadrature::instantiate() { specfem::quadrature::gll::gll gll(this->alpha, this->beta, this->ngll); - std::cout << " Quadrature in X-dimension \n"; - std::cout << gll << std::endl; - - std::cout << " Quadrature in Z-dimension \n"; - std::cout << gll << std::endl; - return specfem::quadrature::quadratures(gll); } diff --git a/src/parameter_parser/time_scheme/time_scheme.cpp b/src/parameter_parser/time_scheme/time_scheme.cpp index 57366b1a3..760c73ae8 100644 --- a/src/parameter_parser/time_scheme/time_scheme.cpp +++ b/src/parameter_parser/time_scheme/time_scheme.cpp @@ -33,7 +33,7 @@ specfem::runtime_configuration::time_scheme::time_scheme::instantiate( } // User output - std::cout << *it << "\n"; + // std::cout << *it << "\n"; return it; } diff --git a/src/quadrature/quadrature.cpp b/src/quadrature/quadrature.cpp index f46bd1bef..242ad3d80 100644 --- a/src/quadrature/quadrature.cpp +++ b/src/quadrature/quadrature.cpp @@ -10,6 +10,14 @@ specfem::quadrature::operator<<(std::ostream &out, return out; } +std::ostream & +specfem::quadrature::operator<<(std::ostream &out, + const specfem::quadrature::quadratures &quad) { + quad.print(out); + + return out; +} + void specfem::quadrature::quadrature::print(std::ostream &out) const { out << "Quadrature wasn't initialized properly. Base class being called";