data: add fgcs dolomite benchmarks that skips unreactive cells

This commit is contained in:
Max Lübke 2025-12-09 21:26:15 +01:00
parent c986262bce
commit 26fcecb2bb
51 changed files with 169 additions and 2 deletions

BIN
data/dolo_fgcs_3_interp_skip/iter_0000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_00001.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_00020.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_00050.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_00100.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_00200.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_00300.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_00400.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_00500.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_00600.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_00700.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_00800.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_00900.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_01000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_02000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_03000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_04000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_05000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_06000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_07000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_08000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_09000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/iter_10000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_interp_skip/timings.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_0000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_00001.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_00020.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_00050.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_00100.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_00200.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_00300.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_00400.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_00500.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_00600.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_00700.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_00800.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_00900.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_01000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_02000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_03000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_04000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_05000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_06000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_07000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_08000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_09000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/iter_10000.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
data/dolo_fgcs_3_skip/timings.qs2 (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -6,7 +6,13 @@
namespace poet {
enum DHT_PROP_TYPES { DHT_TYPE_DEFAULT, DHT_TYPE_CHARGE, DHT_TYPE_TOTAL };
enum CHEMISTRY_OUT_SOURCE { CHEM_PQC, CHEM_DHT, CHEM_INTERP, CHEM_AISURR };
enum CHEMISTRY_OUT_SOURCE {
CHEM_PQC,
CHEM_DHT,
CHEM_INTERP,
CHEM_AISURR,
CHEM_SKIP
};
struct WorkPackage {
std::size_t size;

View File

@ -128,7 +128,7 @@ void DHT_Wrapper::fillDHT(const WorkPackage &work_package) {
dht_results.locations.resize(length);
dht_results.filledDHT = std::vector<bool>(length, false);
for (int i = 0; i < length; i++) {
// If true grid cell was simulated, needs to be inserted into dht
// If true, grid cell was simulated, needs to be inserted into dht
if (work_package.mapping[i] != CHEM_PQC) {
continue;
}

View File

@ -131,6 +131,9 @@ void poet::ChemistryModule::WorkerDoWork(MPI_Status &probe_status,
int count = double_count;
std::vector<double> mpi_buffer(count);
constexpr int CL_INDEX = 7;
constexpr double CL_THRESHOLD = 1e-10;
/* receive */
MPI_Recv(mpi_buffer.data(), count, MPI_DOUBLE, 0, LOOP_WORK, this->group_comm,
MPI_STATUS_IGNORE);
@ -162,6 +165,15 @@ void poet::ChemistryModule::WorkerDoWork(MPI_Status &probe_status,
mpi_buffer.begin() + this->prop_count * (wp_i + 1));
}
/* skip simulation of cells cells where Cl concentration is below threshold */
for (std::size_t wp_i = 0; wp_i < s_curr_wp.size; wp_i++) {
if (s_curr_wp.input[wp_i][CL_INDEX] < CL_THRESHOLD) {
s_curr_wp.mapping[wp_i] = CHEM_SKIP;
s_curr_wp.output[wp_i] = s_curr_wp.input[wp_i];
}
}
// std::cout << this->comm_rank << ":" << counter++ << std::endl;
if (dht_enabled || interp_enabled) {
dht->prepareKeys(s_curr_wp.input, dt);
@ -319,6 +331,11 @@ void poet::ChemistryModule::WorkerRunWorkPackage(WorkPackage &work_package,
to_ignore.push_back(wp_id);
}
}
if (to_ignore.size() == work_package.size) {
return;
}
this->pqc_runner->run(inout_chem, dTimestep, to_ignore);
for (std::size_t wp_id = 0; wp_id < work_package.size; wp_id++) {