diff --git a/include/maxwell_interface.h b/include/maxwell_interface.h index f5485d59b49ea33f544f9933f25d2be531b9dab1..2e7af8af5c06e062ac36944f1bf8dc5415840fc8 100644 --- a/include/maxwell_interface.h +++ b/include/maxwell_interface.h @@ -295,11 +295,11 @@ struct solver_state_gpu device_vector<double> Jy_src_gpu_buf; device_vector<double> Jz_src_gpu_buf; - field_gpu bndsrcs; - field_gpu bndsrcs_buf; + field_gpu bndsrcs; /* Not compressed */ + field_gpu bndsrcs_buf; /* Compressed */ - field bndsrcs_decomp_cpu; - pinned_field bndsrcs_cpu; + field bndsrcs_decomp_cpu; /* Not compressed */ + pinned_field bndsrcs_cpu; /* Compressed */ std::vector<size_t> bndsrcs_decomp_table_cpu; device_vector<size_t> bndsrcs_decomp_table; @@ -317,7 +317,7 @@ void export_fields_to_silo(const model&, const solver_state&, const parameter_lo void timestep(solver_state&, const parameter_loader&, time_integrator_type); void prepare_sources(const model&, maxwell::solver_state&, maxwell::parameter_loader&); void do_sources(const model&, maxwell::solver_state&, maxwell::parameter_loader&); -void swap(maxwell::solver_state&); +void swap(maxwell::solver_state&, const parameter_loader&); #ifdef ENABLE_GPU_SOLVER void init_from_model(const model&, solver_state_gpu&); @@ -327,7 +327,7 @@ void export_fields_to_silo(const model&, const solver_state_gpu&, const paramete void timestep(solver_state_gpu&, const parameter_loader&, time_integrator_type); void prepare_sources(const model&, maxwell::solver_state_gpu&, maxwell::parameter_loader&); void do_sources(const model&, maxwell::solver_state_gpu&, maxwell::parameter_loader&); -void swap(maxwell::solver_state_gpu&); +void swap(maxwell::solver_state_gpu&, const parameter_loader&); #endif /* ENABLE_GPU_SOLVER */ void init_boundary_conditions(const model&, const parameter_loader&, vecxd&); diff --git a/src/maxwell_cpu.cpp b/src/maxwell_cpu.cpp index 4adfdecb5bfe840d586f9a69d6f5cd6927f13edb..f826dbb290d819cc107880f637d37338f5d51518 100644 --- a/src/maxwell_cpu.cpp +++ b/src/maxwell_cpu.cpp @@ -585,7 +585,7 @@ prepare_sources(const model& mod, maxwell::solver_state& state, } void -swap(maxwell::solver_state& state) +swap(maxwell::solver_state& state, const parameter_loader&) { std::swap(state.emf_curr, state.emf_next); } diff --git a/src/maxwell_gpu.cpp b/src/maxwell_gpu.cpp index df2409056898526477370ed1c13c0373da9fa769..390cbbc31b3ed102dd1f3fb4399e52d5c0a1dc66 100644 --- a/src/maxwell_gpu.cpp +++ b/src/maxwell_gpu.cpp @@ -540,13 +540,13 @@ do_sources(const model& mod, maxwell::solver_state_gpu& state, } void -swap(solver_state_gpu& state) +swap(solver_state_gpu& state, const parameter_loader& mpl) { checkGPU( gpuDeviceSynchronize() ); - //auto be = mpl.boundary_sources_enabled(); - //auto ie = mpl.interface_sources_enabled() - //if ( be or ie ) + auto be = mpl.boundary_sources_enabled(); + auto ie = mpl.interface_sources_enabled(); + if ( be or ie ) decompress_bndsrc(state, state.bndsrcs_buf, state.bndsrcs); std::swap(state.Jx_src_gpu, state.Jx_src_gpu_buf); diff --git a/src/maxwell_solver.cpp b/src/maxwell_solver.cpp index 78c09f6c7d4164897e9e0513c29d42c8f1e35070..fcd32d4e217562a5676ae73679441ca7909f5da1 100644 --- a/src/maxwell_solver.cpp +++ b/src/maxwell_solver.cpp @@ -100,7 +100,7 @@ void test_it(const model& mod, State& state, maxwell::parameter_loader& mpl) if (i%silo_output_rate == 0) export_fields_to_silo(mod, state, mpl); - swap(state); + swap(state, mpl); if (i%cycle_print_rate == 0) {