diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ae02097b..160af43b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,36 +1,25 @@ -# List of source files +# Automatically detect source files in subdirectories +# Find all subdirectories in src/ +file(GLOB _subdirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *) +list(FILTER _subdirs INCLUDE REGEX "^[^.]+$") # Exclude hidden files +set(_subdir_sources "") + +# For each subdirectory, collect all .cpp and .H files +foreach(_dir IN LISTS _subdirs) + if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_dir}) + file(GLOB_RECURSE _dir_sources + "${_dir}/*.cpp" + "${_dir}/*.H" + ) + list(APPEND _subdir_sources ${_dir_sources}) + endif() +endforeach() + +# Main source file list includes main.cpp and all subdirectory sources set(_sources main.cpp - AgentDefinitions.H - AgentContainer.H - AgentContainer.cpp - AirTravelFlow.H - AirTravelFlow.cpp - CaseData.H - CaseData.cpp - DiseaseCoupling.H - CensusData.H - CensusData.cpp - DiseaseParm.H - DiseaseParm.cpp - DemographicData.H - DemographicData.cpp - IO.H - IO.cpp - InteractionModel.H - InteractionModHome.H - InteractionModHomeNborhood.H - InteractionModWorkNborhood.H - InteractionModSchool.H - InteractionModWork.H - InteractionModelLibrary.H - InitializeInfections.H - InitializeInfections.cpp - UrbanPopAgentStruct.H - UrbanPopData.H - UrbanPopData.cpp - Utils.H - Utils.cpp) + ${_subdir_sources} +) # List of input files set(_input_files) diff --git a/src/AgentContainer.H b/src/agents/AgentContainer.H similarity index 99% rename from src/AgentContainer.H rename to src/agents/AgentContainer.H index 97973912..bbd7b8ae 100644 --- a/src/AgentContainer.H +++ b/src/agents/AgentContainer.H @@ -24,7 +24,7 @@ #include "DiseaseStatus.H" #include "HospitalModel.H" #include "InteractionModelLibrary.H" -#include "Utils.H" +#include "RuntimeParams.H" /*! \brief Derived class from ParticleContainer that defines agents and their functions */ class AgentContainer : public amrex::ParticleContainer<0, 0, RealIdx::nattribs, IntIdx::nattribs> { diff --git a/src/AgentContainer.cpp b/src/agents/AgentContainer.cpp similarity index 100% rename from src/AgentContainer.cpp rename to src/agents/AgentContainer.cpp diff --git a/src/AgentDefinitions.H b/src/agents/AgentDefinitions.H similarity index 100% rename from src/AgentDefinitions.H rename to src/agents/AgentDefinitions.H diff --git a/src/DiseaseCoupling.H b/src/disease/DiseaseCoupling.H similarity index 100% rename from src/DiseaseCoupling.H rename to src/disease/DiseaseCoupling.H diff --git a/src/DiseaseParm.H b/src/disease/DiseaseParm.H similarity index 100% rename from src/DiseaseParm.H rename to src/disease/DiseaseParm.H diff --git a/src/DiseaseParm.cpp b/src/disease/DiseaseParm.cpp similarity index 100% rename from src/DiseaseParm.cpp rename to src/disease/DiseaseParm.cpp diff --git a/src/DiseaseStatus.H b/src/disease/DiseaseStatus.H similarity index 99% rename from src/DiseaseStatus.H rename to src/disease/DiseaseStatus.H index 2c237ff6..00a2e10e 100644 --- a/src/DiseaseStatus.H +++ b/src/disease/DiseaseStatus.H @@ -43,10 +43,10 @@ template () {} + DiseaseStatus() {} /*! \brief default destructor */ - virtual ~DiseaseStatus() = default; + virtual ~DiseaseStatus() = default; /*! \brief Updates disease status of each agent at a given step and * also updates a MultiFab that tracks disease statistics (hospitalization, diff --git a/src/HospitalModel.H b/src/disease/HospitalModel.H similarity index 99% rename from src/HospitalModel.H rename to src/disease/HospitalModel.H index 22ed9998..17023904 100644 --- a/src/HospitalModel.H +++ b/src/disease/HospitalModel.H @@ -8,7 +8,7 @@ #include "AgentDefinitions.H" #include "DiseaseParm.H" #include "InteractionModel.H" -#include "Utils.H" +#include "RuntimeParams.H" using namespace amrex; diff --git a/src/Utils.H b/src/init/RuntimeParams.H similarity index 98% rename from src/Utils.H rename to src/init/RuntimeParams.H index fbaaef3d..5a71c065 100644 --- a/src/Utils.H +++ b/src/init/RuntimeParams.H @@ -1,9 +1,9 @@ -/*! @file Utils.H +/*! @file RuntimeParams.H \brief Defines the #ExaEpi::Utils namespace */ -#ifndef UTILS_H_ -#define UTILS_H_ +#ifndef RUNTIME_PARAMS_H_ +#define RUNTIME_PARAMS_H_ #include #include diff --git a/src/Utils.cpp b/src/init/RuntimeParams.cpp similarity index 98% rename from src/Utils.cpp rename to src/init/RuntimeParams.cpp index ee389584..eff1311b 100644 --- a/src/Utils.cpp +++ b/src/init/RuntimeParams.cpp @@ -1,4 +1,4 @@ -/*! @file Utils.cpp +/*! @file RuntimeParams.cpp \brief Contains function implementations for the #ExaEpi::Utils namespace */ @@ -11,7 +11,7 @@ #include #include "DemographicData.H" -#include "Utils.H" +#include "RuntimeParams.H" #include #include diff --git a/src/CensusData.H b/src/init/census/CensusData.H similarity index 99% rename from src/CensusData.H rename to src/init/census/CensusData.H index 98bc4bf4..fd5ab7c1 100644 --- a/src/CensusData.H +++ b/src/init/census/CensusData.H @@ -13,7 +13,7 @@ #include "AgentContainer.H" #include "CaseData.H" #include "DemographicData.H" -#include "Utils.H" +#include "RuntimeParams.H" /*! \brief A class encapsulating all data relevant to the ICType Census */ struct CensusData { diff --git a/src/CensusData.cpp b/src/init/census/CensusData.cpp similarity index 100% rename from src/CensusData.cpp rename to src/init/census/CensusData.cpp diff --git a/src/DemographicData.H b/src/init/census/DemographicData.H similarity index 100% rename from src/DemographicData.H rename to src/init/census/DemographicData.H diff --git a/src/DemographicData.cpp b/src/init/census/DemographicData.cpp similarity index 100% rename from src/DemographicData.cpp rename to src/init/census/DemographicData.cpp diff --git a/src/CaseData.H b/src/init/infections/CaseData.H similarity index 100% rename from src/CaseData.H rename to src/init/infections/CaseData.H diff --git a/src/CaseData.cpp b/src/init/infections/CaseData.cpp similarity index 100% rename from src/CaseData.cpp rename to src/init/infections/CaseData.cpp diff --git a/src/InitializeInfections.H b/src/init/infections/InitializeInfections.H similarity index 96% rename from src/InitializeInfections.H rename to src/init/infections/InitializeInfections.H index f64b553c..899f476e 100644 --- a/src/InitializeInfections.H +++ b/src/init/infections/InitializeInfections.H @@ -13,7 +13,7 @@ #include "AgentContainer.H" #include "CaseData.H" #include "DemographicData.H" -#include "Utils.H" +#include "RuntimeParams.H" void setInitialCasesFromFile(AgentContainer& pc, CaseData& cases, const std::string& name, int d_idx, const Vector& FIPS_codes, const Vector& unit_community_start, iMultiFab& comm_mf, diff --git a/src/InitializeInfections.cpp b/src/init/infections/InitializeInfections.cpp similarity index 100% rename from src/InitializeInfections.cpp rename to src/init/infections/InitializeInfections.cpp diff --git a/src/UrbanPopAgentStruct.H b/src/init/urbanpop/UrbanPopAgentStruct.H similarity index 100% rename from src/UrbanPopAgentStruct.H rename to src/init/urbanpop/UrbanPopAgentStruct.H diff --git a/src/UrbanPopData.H b/src/init/urbanpop/UrbanPopData.H similarity index 98% rename from src/UrbanPopData.H rename to src/init/urbanpop/UrbanPopData.H index 1ed3b201..338c81da 100644 --- a/src/UrbanPopData.H +++ b/src/init/urbanpop/UrbanPopData.H @@ -12,7 +12,7 @@ #include "CaseData.H" #include "UrbanPopAgentStruct.H" -#include "Utils.H" +#include "RuntimeParams.H" struct AgentExtras { amrex::IntVect home_xy; diff --git a/src/UrbanPopData.cpp b/src/init/urbanpop/UrbanPopData.cpp similarity index 100% rename from src/UrbanPopData.cpp rename to src/init/urbanpop/UrbanPopData.cpp diff --git a/src/InteractionModAirTravel.H b/src/interactions/InteractionModAirTravel.H similarity index 100% rename from src/InteractionModAirTravel.H rename to src/interactions/InteractionModAirTravel.H diff --git a/src/InteractionModHome.H b/src/interactions/InteractionModHome.H similarity index 100% rename from src/InteractionModHome.H rename to src/interactions/InteractionModHome.H diff --git a/src/InteractionModHomeNborhood.H b/src/interactions/InteractionModHomeNborhood.H similarity index 100% rename from src/InteractionModHomeNborhood.H rename to src/interactions/InteractionModHomeNborhood.H diff --git a/src/InteractionModSchool.H b/src/interactions/InteractionModSchool.H similarity index 100% rename from src/InteractionModSchool.H rename to src/interactions/InteractionModSchool.H diff --git a/src/InteractionModWork.H b/src/interactions/InteractionModWork.H similarity index 100% rename from src/InteractionModWork.H rename to src/interactions/InteractionModWork.H diff --git a/src/InteractionModWorkNborhood.H b/src/interactions/InteractionModWorkNborhood.H similarity index 100% rename from src/InteractionModWorkNborhood.H rename to src/interactions/InteractionModWorkNborhood.H diff --git a/src/InteractionModel.H b/src/interactions/InteractionModel.H similarity index 98% rename from src/InteractionModel.H rename to src/interactions/InteractionModel.H index a6f8a231..9045ca31 100644 --- a/src/InteractionModel.H +++ b/src/interactions/InteractionModel.H @@ -42,10 +42,10 @@ template (bool _fast_bin) : fast_bin(_fast_bin) {} + InteractionModel(bool _fast_bin) : fast_bin(_fast_bin) {} /*! \brief default destructor */ - virtual ~InteractionModel() = default; + virtual ~InteractionModel() = default; /*! \brief Interact agents for a model */ virtual void interactAgents(PCType&, MultiFab&) = 0; diff --git a/src/InteractionModelLibrary.H b/src/interactions/InteractionModelLibrary.H similarity index 100% rename from src/InteractionModelLibrary.H rename to src/interactions/InteractionModelLibrary.H diff --git a/src/IO.H b/src/io/IO.H similarity index 100% rename from src/IO.H rename to src/io/IO.H diff --git a/src/IO.cpp b/src/io/IO.cpp similarity index 100% rename from src/IO.cpp rename to src/io/IO.cpp diff --git a/src/main.cpp b/src/main.cpp index 3b8a7bde..2037784b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,8 +16,8 @@ #include "DemographicData.H" #include "IO.H" #include "InitializeInfections.H" +#include "RuntimeParams.H" #include "UrbanPopData.H" -#include "Utils.H" #include "version.h" diff --git a/src/AirTravelFlow.H b/src/travel/AirTravelFlow.H similarity index 100% rename from src/AirTravelFlow.H rename to src/travel/AirTravelFlow.H diff --git a/src/AirTravelFlow.cpp b/src/travel/AirTravelFlow.cpp similarity index 100% rename from src/AirTravelFlow.cpp rename to src/travel/AirTravelFlow.cpp