Skip to content

Commit

Permalink
Merge pull request #189 from PrincetonUniversity/issue-185
Browse files Browse the repository at this point in the history
Issue 185
  • Loading branch information
lsawade authored Nov 27, 2024
2 parents 537f538 + b28660f commit 0a7ba9f
Show file tree
Hide file tree
Showing 17 changed files with 84 additions and 68 deletions.
12 changes: 6 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -130,12 +130,12 @@ add_library(
src/IO/HDF5/native_type.cpp
# src/IO/ASCII/native_type.cpp
src/IO/mesh/read_mesh.cpp
src/IO/mesh/fortran/read_boundaries.cpp
src/IO/mesh/fortran/read_elements.cpp
src/IO/mesh/fortran/read_material_properties.cpp
src/IO/mesh/fortran/read_mesh_database.cpp
src/IO/mesh/fortran/read_interfaces.cpp
src/IO/mesh/fortran/read_properties.cpp
src/IO/mesh/impl/fortran/read_boundaries.cpp
src/IO/mesh/impl/fortran/read_elements.cpp
src/IO/mesh/impl/fortran/read_material_properties.cpp
src/IO/mesh/impl/fortran/read_mesh_database.cpp
src/IO/mesh/impl/fortran/read_interfaces.cpp
src/IO/mesh/impl/fortran/read_properties.cpp
src/IO/sources/read_sources.cpp
src/IO/receivers/read_receivers.cpp
)
Expand Down
18 changes: 9 additions & 9 deletions docs/api/IO/Libraries/mesh/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,23 @@ The below functions are helper functions for the Fortran binary mesh database
reader. The functions are called in :cpp:func:`specfem::IO::read_mesh`
in sequential order and faciliate the reading of the mesh database.

.. doxygenfunction:: specfem::IO::mesh::fortran::read_mesh_database_header
.. doxygenfunction:: specfem::IO::mesh::impl::fortran::read_mesh_database_header

.. doxygenfunction:: specfem::IO::mesh::fortran::read_coorg_elements
.. doxygenfunction:: specfem::IO::mesh::impl::fortran::read_coorg_elements

.. doxygenfunction:: specfem::IO::mesh::fortran::read_properties
.. doxygenfunction:: specfem::IO::mesh::impl::fortran::read_properties

.. doxygenfunction:: specfem::IO::mesh::fortran::read_mesh_database_attenuation
.. doxygenfunction:: specfem::IO::mesh::impl::fortran::read_mesh_database_attenuation

.. doxygenfunction:: specfem::IO::mesh::fortran::read_material_properties
.. doxygenfunction:: specfem::IO::mesh::impl::fortran::read_material_properties

.. doxygenfunction:: specfem::IO::mesh::fortran::read_boundaries
.. doxygenfunction:: specfem::IO::mesh::impl::fortran::read_boundaries

.. doxygenfunction:: specfem::IO::mesh::fortran::read_coupled_interfaces
.. doxygenfunction:: specfem::IO::mesh::impl::fortran::read_coupled_interfaces

.. doxygenfunction:: specfem::IO::mesh::fortran::read_tangential_elements
.. doxygenfunction:: specfem::IO::mesh::impl::fortran::read_tangential_elements

.. doxygenfunction:: specfem::IO::mesh::fortran::read_axial_elements
.. doxygenfunction:: specfem::IO::mesh::impl::fortran::read_axial_elements

Finally, we add tags to the :cpp:struct:`specfem::mesh::mesh` using the
:cpp:struct:`specfem::mesh::tags` struct. The description of which can be found
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
namespace specfem {
namespace IO {
namespace mesh {
namespace impl {
namespace fortran {

// /**
Expand Down Expand Up @@ -70,6 +71,7 @@ read_boundaries(std::ifstream &stream, const int nspec, const int n_absorbing,
const specfem::MPI::MPI *mpi);

} // namespace fortran
} // namespace impl
} // namespace mesh
} // namespace IO
} // namespace specfem
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
namespace specfem {
namespace IO {
namespace mesh {
namespace impl {
namespace fortran {

/**
Expand Down Expand Up @@ -36,6 +37,7 @@ read_axial_elements(std::ifstream &stream, const int nelem_on_the_axis,
const int nspec, const specfem::MPI::MPI *mpi);

} // namespace fortran
} // namespace impl
} // namespace mesh
} // namespace IO
} // namespace specfem
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
namespace specfem {
namespace IO {
namespace mesh {
namespace impl {
namespace fortran {

template <specfem::element::medium_tag medium1,
Expand All @@ -30,6 +31,7 @@ specfem::mesh::coupled_interfaces read_coupled_interfaces(
const int num_interfaces_elastic_poroelastic, const specfem::MPI::MPI *mpi);

} // namespace fortran
} // namespace impl
} // namespace mesh
} // namespace IO
} // namespace specfem
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
namespace specfem {
namespace IO {
namespace mesh {
namespace impl {
namespace fortran {

/**
Expand All @@ -28,6 +29,7 @@ specfem::mesh::materials read_material_properties(
const specfem::kokkos::HostView2d<int> knods, const specfem::MPI::MPI *mpi);

} // namespace fortran
} // namespace impl
} // namespace mesh
} // namespace IO
} // namespace specfem
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
namespace specfem {
namespace IO {
namespace mesh {
namespace impl {
namespace fortran {

/**
Expand Down Expand Up @@ -46,6 +47,7 @@ std::tuple<int, type_real, bool>
read_mesh_database_attenuation(std::ifstream &stream,
const specfem::MPI::MPI *mpi);
} // namespace fortran
} // namespace impl
} // namespace mesh
} // namespace IO
} // namespace specfem
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
namespace specfem {
namespace IO {
namespace mesh {
namespace impl {
namespace fortran {

/*
Expand All @@ -20,6 +21,7 @@ specfem::mesh::properties read_properties(std::ifstream &stream,
const specfem::MPI::MPI *mpi);

} // namespace fortran
} // namespace impl
} // namespace mesh
} // namespace IO
} // namespace specfem
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "IO/mesh/fortran/read_boundaries.hpp"
#include "IO/mesh/impl/fortran/read_boundaries.hpp"
#include "IO/fortranio/interface.hpp"
#include "mesh/boundaries/boundaries.hpp"
#include "specfem_mpi/interface.hpp"
Expand Down Expand Up @@ -49,11 +49,13 @@ find_corners(const specfem::kokkos::HostView1d<int> ispec_edge,
}

specfem::kokkos::HostView1d<int> ispec_corners(
"specfem:IO::mesh::fortran::read_boundaries::find_corners::ispec_corners",
"specfem:IO::mesh::impl::fortran::read_boundaries::find_corners::ispec_"
"corners",
ncorner);

specfem::kokkos::HostView1d<specfem::enums::boundaries::type> type_corners(
"specfem:IO::mesh::fortran::read_boundaries::find_corners::type_corners",
"specfem:IO::mesh::impl::fortran::read_boundaries::find_corners::type_"
"corners",
ncorner);

int icorner = 0;
Expand Down Expand Up @@ -349,7 +351,7 @@ read_forcing_boundaries(std::ifstream &stream, const int nelement_acforcing,
return forcing_boundary;
}

specfem::mesh::boundaries specfem::IO::mesh::fortran::read_boundaries(
specfem::mesh::boundaries specfem::IO::mesh::impl::fortran::read_boundaries(
std::ifstream &stream, const int nspec, const int n_absorbing,
const int n_acoustic_surface, const int n_acforcing,
const Kokkos::View<int **, Kokkos::HostSpace> knods,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
#include "IO/mesh/fortran/read_elements.hpp"
#include "IO/mesh/impl/fortran/read_elements.hpp"
#include "IO/fortranio/interface.hpp"
#include "mesh/elements/axial_elements.hpp"
#include "mesh/elements/tangential_elements.hpp"
#include "specfem_mpi/interface.hpp"

specfem::mesh::elements::axial_elements
specfem::IO::mesh::fortran::read_axial_elements(std::ifstream &stream,
const int nelem_on_the_axis,
const int nspec,
const specfem::MPI::MPI *mpi) {
specfem::IO::mesh::impl::fortran::read_axial_elements(
std::ifstream &stream, const int nelem_on_the_axis, const int nspec,
const specfem::MPI::MPI *mpi) {

int ispec;

Expand All @@ -26,7 +25,7 @@ specfem::IO::mesh::fortran::read_axial_elements(std::ifstream &stream,
}

specfem::mesh::elements::tangential_elements
specfem::IO::mesh::fortran::read_tangential_elements(
specfem::IO::mesh::impl::fortran::read_tangential_elements(
std::ifstream &stream, const int nnodes_tangential_curve) {
type_real xread, yread;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "IO/mesh/fortran/read_interfaces.hpp"
#include "IO/mesh/impl/fortran/read_interfaces.hpp"
#include "IO/fortranio/interface.hpp"
#include "mesh/coupled_interfaces/coupled_interfaces.hpp"
#include "mesh/coupled_interfaces/interface_container.hpp"
Expand All @@ -7,9 +7,9 @@
template <specfem::element::medium_tag medium1,
specfem::element::medium_tag medium2>
specfem::mesh::interface_container<medium1, medium2>
specfem::IO::mesh::fortran::read_interfaces(const int num_interfaces,
std::ifstream &stream,
const specfem::MPI::MPI *mpi) {
specfem::IO::mesh::impl::fortran::read_interfaces(
const int num_interfaces, std::ifstream &stream,
const specfem::MPI::MPI *mpi) {

specfem::mesh::interface_container<medium1, medium2> interface(
num_interfaces);
Expand All @@ -33,7 +33,7 @@ specfem::IO::mesh::fortran::read_interfaces(const int num_interfaces,
template specfem::mesh::interface_container<
specfem::element::medium_tag::elastic,
specfem::element::medium_tag::acoustic>
specfem::IO::mesh::fortran::read_interfaces<
specfem::IO::mesh::impl::fortran::read_interfaces<
specfem::element::medium_tag::elastic,
specfem::element::medium_tag::acoustic>(const int num_interfaces,
std::ifstream &stream,
Expand All @@ -43,7 +43,7 @@ specfem::IO::mesh::fortran::read_interfaces<
template specfem::mesh::interface_container<
specfem::element::medium_tag::acoustic,
specfem::element::medium_tag::poroelastic>
specfem::IO::mesh::fortran::read_interfaces<
specfem::IO::mesh::impl::fortran::read_interfaces<
specfem::element::medium_tag::acoustic,
specfem::element::medium_tag::poroelastic>(const int num_interfaces,
std::ifstream &stream,
Expand All @@ -53,30 +53,30 @@ specfem::IO::mesh::fortran::read_interfaces<
template specfem::mesh::interface_container<
specfem::element::medium_tag::elastic,
specfem::element::medium_tag::poroelastic>
specfem::IO::mesh::fortran::read_interfaces<
specfem::IO::mesh::impl::fortran::read_interfaces<
specfem::element::medium_tag::elastic,
specfem::element::medium_tag::poroelastic>(const int num_interfaces,
std::ifstream &stream,
const specfem::MPI::MPI *mpi);

specfem::mesh::coupled_interfaces
specfem::IO::mesh::fortran::read_coupled_interfaces(
specfem::IO::mesh::impl::fortran::read_coupled_interfaces(
std::ifstream &stream, const int num_interfaces_elastic_acoustic,
const int num_interfaces_acoustic_poroelastic,
const int num_interfaces_elastic_poroelastic,
const specfem::MPI::MPI *mpi) {

auto elastic_acoustic = specfem::IO::mesh::fortran::read_interfaces<
auto elastic_acoustic = specfem::IO::mesh::impl::fortran::read_interfaces<
specfem::element::medium_tag::elastic,
specfem::element::medium_tag::acoustic>(num_interfaces_elastic_acoustic,
stream, mpi);

auto acoustic_poroelastic = specfem::IO::mesh::fortran::read_interfaces<
auto acoustic_poroelastic = specfem::IO::mesh::impl::fortran::read_interfaces<
specfem::element::medium_tag::acoustic,
specfem::element::medium_tag::poroelastic>(
num_interfaces_acoustic_poroelastic, stream, mpi);

auto elastic_poroelastic = specfem::IO::mesh::fortran::read_interfaces<
auto elastic_poroelastic = specfem::IO::mesh::impl::fortran::read_interfaces<
specfem::element::medium_tag::elastic,
specfem::element::medium_tag::poroelastic>(
num_interfaces_elastic_poroelastic, stream, mpi);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "IO/mesh/fortran/read_material_properties.hpp"
#include "IO/mesh/impl/fortran/read_material_properties.hpp"
#include "IO/fortranio/interface.hpp"
// #include "mesh/materials/materials.hpp"
#include "mesh/materials/materials.tpp"
Expand Down Expand Up @@ -175,7 +175,8 @@ void read_material_indices(

} // namespace

specfem::mesh::materials specfem::IO::mesh::fortran::read_material_properties(
specfem::mesh::materials
specfem::IO::mesh::impl::fortran::read_material_properties(
std::ifstream &stream, const int numat, const int nspec,
const specfem::kokkos::HostView2d<int> knods,
const specfem::MPI::MPI *mpi) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "IO/mesh/fortran/read_mesh_database.hpp"
#include "IO/mesh/impl/fortran/read_mesh_database.hpp"
#include "IO/fortranio/interface.hpp"
#include "kokkos_abstractions.h"
// #include "mesh/IO/fortran/read_material_properties.hpp"
Expand All @@ -9,7 +9,8 @@
#include <iostream>
#include <tuple>

std::tuple<int, int, int> specfem::IO::mesh::fortran::read_mesh_database_header(
std::tuple<int, int, int>
specfem::IO::mesh::impl::fortran::read_mesh_database_header(
std::ifstream &stream, const specfem::MPI::MPI *mpi) {
// This subroutine reads header values of the database which are skipped
std::string dummy_s;
Expand Down Expand Up @@ -144,9 +145,8 @@ std::tuple<int, int, int> specfem::IO::mesh::fortran::read_mesh_database_header(
}

specfem::kokkos::HostView2d<type_real>
specfem::IO::mesh::fortran::read_coorg_elements(std::ifstream &stream,
const int npgeo,
const specfem::MPI::MPI *mpi) {
specfem::IO::mesh::impl::fortran::read_coorg_elements(
std::ifstream &stream, const int npgeo, const specfem::MPI::MPI *mpi) {

int ipoin = 0;

Expand All @@ -169,7 +169,7 @@ specfem::IO::mesh::fortran::read_coorg_elements(std::ifstream &stream,
}

std::tuple<int, type_real, bool>
specfem::IO::mesh::fortran::read_mesh_database_attenuation(
specfem::IO::mesh::impl::fortran::read_mesh_database_attenuation(
std::ifstream &stream, const specfem::MPI::MPI *mpi) {

int n_sls;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
#include "IO/mesh/fortran/read_properties.hpp"
#include "IO/mesh/impl/fortran/read_properties.hpp"
#include "IO/fortranio/interface.hpp"
#include "mesh/properties/properties.hpp"

specfem::mesh::properties
specfem::IO::mesh::fortran::read_properties(std::ifstream &stream,
const specfem::MPI::MPI *mpi) {
specfem::mesh::properties specfem::IO::mesh::impl::fortran::read_properties(
std::ifstream &stream, const specfem::MPI::MPI *mpi) {
// ---------------------------------------------------------------------
// reading mesh properties

Expand Down
Loading

0 comments on commit 0a7ba9f

Please sign in to comment.