Skip to content

Commit 0405418

Browse files
authored
Merge pull request #1584 from PrincetonUniversity/issue-1554
Issue 1554 - Move most code from include/ to core/ (excluding io, medium and enumerations)
2 parents 3cbd37d + 0a9d709 commit 0405418

File tree

484 files changed

+728
-820
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

484 files changed

+728
-820
lines changed

CMakeLists.txt

Lines changed: 3 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -231,21 +231,6 @@ set(CMAKE_MESSAGE_LOG_LEVEL ${_saved_CMAKE_MESSAGE_LOG_LEVEL})
231231
# Add module subdirectories
232232
add_subdirectory(core)
233233

234-
# Build specfem2d libraries
235-
add_library(
236-
quadrature
237-
src/quadrature/quadrature.cpp
238-
src/quadrature/gll/gll_utils.cpp
239-
src/quadrature/gll/gll_library.cpp
240-
src/quadrature/gll/lagrange_poly.cpp
241-
src/quadrature/gll/gll.cpp
242-
)
243-
244-
target_link_libraries(
245-
quadrature
246-
Kokkos::kokkos
247-
)
248-
249234
add_library(
250235
io
251236
# IO libraries
@@ -277,7 +262,7 @@ add_library(
277262

278263
target_link_libraries(
279264
io
280-
mesh
265+
specfem::mesh
281266
source_class
282267
specfem::receivers
283268
yaml-cpp
@@ -328,35 +313,6 @@ target_link_libraries(
328313
# Kokkos::kokkos
329314
# )
330315

331-
add_library(
332-
mesh
333-
# 2-D
334-
src/mesh/dim2/boundaries/forcing_boundaries.cpp
335-
src/mesh/dim2/boundaries/absorbing_boundaries.cpp
336-
src/mesh/dim2/boundaries/acoustic_free_surface.cpp
337-
src/mesh/dim2/elements/tangential_elements.cpp
338-
src/mesh/dim2/elements/axial_elements.cpp
339-
# src/mesh/mpi_interfaces/mpi_interfaces.cpp
340-
src/mesh/dim2/tags/tags.cpp
341-
src/mesh/dim2/adjacency_graph/assert_symmetry.cpp
342-
src/mesh/dim2/mesh.cpp
343-
# 3-D
344-
345-
src/mesh/dim3/adjacency_graph/assert_symmetry.cpp
346-
src/mesh/dim3/tags/tags.cpp
347-
src/mesh/dim3/mesh.cpp
348-
)
349-
350-
target_link_libraries(
351-
mesh
352-
enumerations
353-
Kokkos::kokkos
354-
specfem::macros
355-
# material_class
356-
yaml-cpp
357-
${BOOST_LIBS}
358-
)
359-
360316
add_library(
361317
read_seismogram
362318
src/io/seismogram/reader.cpp
@@ -367,16 +323,6 @@ target_link_libraries(
367323
Kokkos::kokkos
368324
)
369325

370-
add_library(utilities
371-
src/utilities/strings.cpp
372-
)
373-
374-
target_link_libraries(
375-
utilities
376-
Kokkos::kokkos
377-
${BOOST_LIBS}
378-
)
379-
380326
add_library(
381327
reader
382328
src/io/property/reader.cpp
@@ -388,49 +334,7 @@ target_link_libraries(
388334
assembly
389335
io
390336
read_seismogram
391-
utilities
392-
)
393-
394-
add_library(
395-
algorithms
396-
src/algorithms/dim2/locate_point.cpp
397-
src/algorithms/dim2/locate_point_impl.cpp
398-
src/algorithms/dim3/locate_point.cpp
399-
src/algorithms/dim3/locate_point_impl.cpp
400-
)
401-
402-
target_link_libraries(
403-
algorithms
404-
Kokkos::kokkos
405-
jacobian
406-
point
407-
assembly
408-
${BOOST_LIBS}
409-
)
410-
411-
add_library(
412-
kokkos_kernels
413-
src/kokkos_kernels/impl/compute_mass_matrix.cpp
414-
src/kokkos_kernels/impl/invert_mass_matrix.cpp
415-
src/kokkos_kernels/impl/divide_mass_matrix.cpp
416-
src/kokkos_kernels/impl/compute_seismogram.cpp
417-
src/kokkos_kernels/impl/compute_source_interaction.cpp
418-
src/kokkos_kernels/impl/compute_stiffness_interaction.cpp
419-
src/kokkos_kernels/impl/compute_material_derivatives.cpp
420-
src/kokkos_kernels/impl/compute_coupling.cpp
421-
src/kokkos_kernels/frechet_kernels.cpp
422-
)
423-
424-
set_target_properties(kokkos_kernels PROPERTIES
425-
UNITY_BUILD $<NOT:$<BOOL:${__APPLE__}>>
426-
UNITY_BUILD_BATCH_SIZE $<IF:$<BOOL:${__APPLE__}>,0,4>
427-
)
428-
429-
target_link_libraries(
430-
kokkos_kernels
431-
PRIVATE
432-
assembly
433-
Kokkos::kokkos
337+
specfem::utilities
434338
)
435339

436340
add_library(
@@ -446,43 +350,9 @@ target_link_libraries(
446350
assembly
447351
specfem::receivers
448352
io
449-
utilities
450-
)
451-
452-
453-
add_library(
454-
parameter_reader
455-
src/parameter_parser/run_setup.cpp
456-
src/parameter_parser/time_scheme/time_scheme.cpp
457-
src/parameter_parser/database_configuration.cpp
458-
src/parameter_parser/header.cpp
459-
src/parameter_parser/quadrature.cpp
460-
src/parameter_parser/elastic_wave.cpp
461-
src/parameter_parser/electromagnetic_wave.cpp
462-
src/parameter_parser/receivers.cpp
463-
src/parameter_parser/writer/seismogram.cpp
464-
src/parameter_parser/setup.cpp
465-
src/parameter_parser/writer/wavefield.cpp
466-
src/parameter_parser/writer/plot_wavefield.cpp
467-
src/parameter_parser/writer/kernel.cpp
468-
src/parameter_parser/writer/property.cpp
469-
)
470-
471-
target_link_libraries(
472-
parameter_reader
473-
quadrature
474-
specfem::timescheme
475-
specfem::receivers
476-
yaml-cpp
477-
specfem::periodic_tasks
478-
writer
479-
reader
480-
kokkos_kernels
481-
specfem::solver
482-
${BOOST_LIBS}
353+
specfem::utilities
483354
)
484355

485-
486356
# specfem2d executable for backward compatibility
487357
add_executable(specfem2d src/specfem2d.cpp)
488358
target_link_libraries(specfem2d

core/specfem/CMakeLists.txt

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
11
# Add existing subdirectories
2-
add_subdirectory(mpi)
2+
add_subdirectory(algorithms)
3+
add_subdirectory(assembly)
4+
add_subdirectory(jacobian)
5+
add_subdirectory(kokkos_kernels)
36
add_subdirectory(logger)
47
add_subdirectory(macros)
5-
add_subdirectory(assembly)
8+
add_subdirectory(mesh)
9+
add_subdirectory(mpi)
10+
add_subdirectory(periodic_tasks)
611
add_subdirectory(point)
12+
add_subdirectory(program)
13+
add_subdirectory(quadrature)
714
add_subdirectory(receivers)
15+
add_subdirectory(runtime_configuration)
816
add_subdirectory(shape_function)
917
add_subdirectory(solver)
1018
add_subdirectory(source)
1119
add_subdirectory(source_time_functions)
12-
add_subdirectory(jacobian)
1320
add_subdirectory(timescheme)
14-
add_subdirectory(periodic_tasks)
15-
add_subdirectory(program)
21+
add_subdirectory(utilities)
1622

1723

1824

@@ -22,16 +28,26 @@ add_library(specfem::core ALIAS specfem_core_interface)
2228

2329
target_link_libraries(specfem_core_interface
2430
INTERFACE
31+
specfem::algorithms
2532
specfem::assembly
2633
specfem::jacobian
34+
specfem::kokkos_kernels
35+
specfem::logger
36+
specfem::macros
37+
specfem::mesh
2738
specfem::mpi
2839
specfem::periodic_tasks
2940
specfem::point
3041
specfem::program
42+
specfem::quadrature
3143
specfem::receivers
44+
specfem::runtime_configuration
3245
specfem::shape_function
46+
specfem::solver
3347
specfem::source
48+
specfem::source_time_functions
3449
specfem::timescheme
50+
specfem::utilities
3551
)
3652

3753
target_include_directories(specfem_core_interface
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
*/
2121
namespace specfem::algorithms {}
2222

23+
#include "algorithms/coupling_integral.hpp"
2324
#include "algorithms/divergence.hpp"
2425
#include "algorithms/gradient.hpp"
2526
#include "algorithms/interpolate.hpp"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
file(GLOB_RECURSE ALGORITHMS_SOURCE_FILES "./*.cpp" "./**/*.cpp")
2+
3+
add_library(
4+
specfem_algorithms
5+
${ALGORITHMS_SOURCE_FILES}
6+
)
7+
add_library(specfem::algorithms ALIAS specfem_algorithms)
8+
9+
target_link_libraries(
10+
specfem_algorithms
11+
Kokkos::kokkos
12+
jacobian
13+
point
14+
assembly
15+
${BOOST_LIBS}
16+
)

include/algorithms/integrate/coupling_integral1d.hpp renamed to core/specfem/algorithms/coupling_integral.hpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
#pragma once
22

33
#include "enumerations/interface.hpp"
4-
#include "execution/for_each_level.hpp"
5-
#include "execution/team_thread_md_range_iterator.hpp"
6-
#include "specfem/assembly.hpp"
4+
#include "specfem/assembly/nonconforming_interfaces.hpp"
5+
#include "specfem/execution.hpp"
76
#include "specfem/point.hpp"
87
#include <Kokkos_Core.hpp>
98

9+
namespace specfem::assembly {
10+
template <specfem::dimension::type DimensionTag> struct assembly;
11+
}
12+
1013
/**
11-
* @file coupling_integral1d.hpp
14+
* @file coupling_integral.hpp
1215
* @brief 1D coupling integrals for interface computations
1316
* @ingroup AlgorithmsIntegration
1417
*
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
#pragma once
22

3-
#include "datatypes/point_view.hpp"
4-
#include "execution/for_each_level.hpp"
5-
#include "specfem/assembly.hpp"
3+
#include "specfem/datatype.hpp"
4+
#include "specfem/execution.hpp"
65
#include "specfem/point.hpp"
76
#include <Kokkos_Core.hpp>
87

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#pragma once
22

3-
#include "execution/for_each_level.hpp"
43
#include "kokkos_abstractions.h"
5-
#include "specfem/assembly.hpp"
4+
#include "specfem/assembly/jacobian_matrix.hpp"
65
#include "specfem/data_access.hpp"
6+
#include "specfem/execution.hpp"
77
#include "specfem/point.hpp"
88
#include <Kokkos_Core.hpp>
99

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#pragma once
22

3-
#include "datatypes/point_view.hpp"
4-
#include "execution/for_each_level.hpp"
53
#include "kokkos_abstractions.h"
4+
#include "specfem/datatype.hpp"
5+
#include "specfem/execution.hpp"
66
#include "specfem_setup.hpp"
77
#include <Kokkos_Core.hpp>
88

src/algorithms/dim2/locate_point.cpp renamed to core/specfem/algorithms/locate_point/dim2/locate_point.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
#include "algorithms/locate_point.hpp"
2-
#include "algorithms/locate_point_impl.hpp"
3-
#include "algorithms/locate_point_impl.tpp"
1+
#include "specfem/algorithms/locate_point.hpp"
42
#include "enumerations/mesh_entities.hpp"
3+
#include "specfem/algorithms/locate_point/locate_point_impl.hpp"
4+
#include "specfem/algorithms/locate_point/locate_point_impl.tpp"
55
#include "specfem/assembly.hpp"
66
#include "specfem/jacobian.hpp"
77
#include "specfem/point.hpp"

0 commit comments

Comments
 (0)