83 this, this->m_simulation_config.getBoolParameters(
"use_shape_file"),
84 this->m_simulation_config.getStringParameters(
"spatial_dimension"));
90 std::cerr <<
"[SimulationClassDefault]: Failed creating ShapeBase object from ShapeFactory "
93 static_cast<std::string
>(
94 "[SimulationClassDefault]: Failed creating ShapeBase object from ShapeFactory ")
95 +
static_cast<std::string
>(
e.what()));
97 catch (
const std::runtime_error&
e)
100 std::cerr <<
"[SimulationClassDefault]: Failed creating ShapeBase object from ShapeFactory "
102 throw std::runtime_error(
103 static_cast<std::string
>(
104 "[SimulationClassDefault]: Failed creating ShapeBase object from ShapeFactory ")
105 +
static_cast<std::string
>(
e.what()));
118 this->m_simulation_config.getStringParameters(
"spatial_dimension"));
124 std::cerr <<
"[SimulationClassDefault]: Failed creating GridBase object from GridFactory "
127 static_cast<std::string
>(
128 "[SimulationClassDefault]: Failed creating GridBase object from GridFactory ")
129 +
static_cast<std::string
>(
e.what()));
131 catch (
const std::runtime_error&
e)
134 std::cerr <<
"[SimulationClassDefault]: Failed creating GridBase object from GridFactory "
136 throw std::runtime_error(
137 static_cast<std::string
>(
138 "[SimulationClassDefault]: Failed creating GridBase object from GridFactory ")
139 +
static_cast<std::string
>(
e.what()));
149 * this->m_simulation_config.getIntParameters(
"numerical_layers");
153 std::cerr <<
"[SimulationClassDefault]: Failed creating GridBase object from GridFactory "
156 static_cast<std::string
>(
157 "[SimulationClassDefault]: Failed creating GridBase object from GridFactory ")
158 +
static_cast<std::string
>(
e.what()));
164 this->m_field_map.insert(
165 {m_dependent_variable_name,
167 this->m_simulation_config.getDoubleParameters(m_dependent_variable_initial_state),
168 this->m_simulation_config.getIntParameters(
"numerical_layers")
169 *
this->m_simulation_config.getIntParameters(
"number_of_facets"))});
173 std::cerr <<
"[SimulationClassDefault]: Failed to create main independent variable field "
174 "(usually temperature) "
176 throw BadInput(
static_cast<std::string
>(
"[SimulationClassDefault]: Failed to create main "
177 "independent variable field (usually temperature) ")
178 +
static_cast<std::string
>(
e.what()));
197 std::cerr <<
"[SimulationClassDefault]: Failed matrix build step " <<
e.what() <<
'\n';
199 static_cast<std::string
>(
"[SimulationClassDefault]: Failed matrix build step ")
200 +
static_cast<std::string
>(
e.what()));
202 catch (
const std::runtime_error&
e)
205 std::cerr <<
"[SimulationClassDefault]: Failed matrix build step at ElementManager "
207 throw std::runtime_error(
208 static_cast<std::string
>(
209 "[SimulationClassDefault]: Failed matrix build step at ElementManager ")
210 +
static_cast<std::string
>(
e.what()));
212 catch (
const std::invalid_argument&
e)
215 std::cerr <<
"[SimulationClassDefault]: Failed matrix build step at MatrixFactory "
217 throw std::runtime_error(
218 static_cast<std::string
>(
219 "[SimulationClassDefault]: Failed matrix build step at MatrixFactory ")
220 +
static_cast<std::string
>(
e.what()));
232 catch (
const std::runtime_error&
e)
234 std::cerr <<
"[SimulationClassDefault]: Failed at module or submodule creation step "
236 throw std::runtime_error(
237 static_cast<std::string
>(
238 "[SimulationClassDefault]: Failed at module or submodule creation step ")
239 +
static_cast<std::string
>(
e.what()));
244 snapshot_data.overwriteIniFiles(
this, m_all_modules, m_all_submodules);
246 catch (
const std::runtime_error&
e)
250 std::cerr <<
"[SimulationClassDefault]: Failed at loading snapshot ini values due do "
251 "unloaded module that was requested in snapshot "
253 throw std::runtime_error(
254 static_cast<std::string
>(
255 "[SimulationClassDefault]: Failed at loading snapshot ini values ")
256 +
static_cast<std::string
>(
e.what()));
262 std::cerr <<
"[SimulationClassDefault]: Failed at loading snapshot ini values " <<
e.what()
264 throw std::runtime_error(
265 static_cast<std::string
>(
266 "[SimulationClassDefault]: Failed at loading snapshot ini values ")
267 +
static_cast<std::string
>(
e.what()));
274 m_all_modules, this->m_simulation_config.getStringVectorParameters(
"managing_modules"));
279 <<
"[SimulationClassDefault]: Failed to resolve dependencies for selected modules "
281 throw std::runtime_error(
282 static_cast<std::string
>(
"[SimulationClassDefault]: (DependencyError) Failed to "
283 "resolve dependencies for selected modules ")
284 +
static_cast<std::string
>(
e.what()));
289 <<
"[SimulationClassDefault]: Warning - Failed to load managing modules from config: "
291 <<
"Falling back to loading all modules.\n";
298 std::cerr <<
"[SimulationClassDefault]: Failed to resolve dependencies for all modules "
300 throw std::runtime_error(
301 static_cast<std::string
>(
"[SimulationClassDefault]: (DependencyError) Failed to "
302 "resolve dependencies for all modules ")
303 +
static_cast<std::string
>(
e.what()));
314 std::cerr <<
"[SimulationClassDefault]: Failed at setting up the modules " <<
e.what()
316 throw std::runtime_error(
317 static_cast<std::string
>(
"[SimulationClassDefault]: Failed at setting up the modules ")
318 +
static_cast<std::string
>(
e.what()));
329 std::cerr <<
"[SimulationClassDefault]: Failed at loading snapshot field values "
331 throw std::runtime_error(
332 static_cast<std::string
>(
333 "[SimulationClassDefault]: Failed at loading snapshot field values ")
334 +
static_cast<std::string
>(
e.what()));
338 this->setInitChainStr();
344 std::shared_ptr<SolverInterface<T>>
solver;
352 std::cerr <<
"[SimulationClassDefault]: Failed at creating Solver " <<
e.what() <<
'\n';
353 throw std::runtime_error(
354 static_cast<std::string
>(
355 "[SimulationClassDefault]: (MatrixOutOfBoundsError) Failed at creating Solver ")
356 +
static_cast<std::string
>(
e.what()));
361 std::cerr <<
"[SimulationClassDefault]: Failed at creating Solver " <<
e.what() <<
'\n';
362 throw std::runtime_error(
363 static_cast<std::string
>(
"[SimulationClassDefault]: (StaticSparseMatrixAccessError) "
364 "Failed at creating Solver ")
365 +
static_cast<std::string
>(
e.what()));
376 timesteps =
static_cast<int>(this->m_simulation_config.getDoubleParameters(
"time_max")
377 / this->m_simulation_config.getDoubleParameters(
"time_delta"));
378 inner_iterations = this->m_simulation_config.getIntParameters(
"inner_iterations");
379 epsilon_abs = this->m_simulation_config.getDoubleParameters(
"epsilon_inner_iterations");
381 this->m_simulation_config.getDoubleParameters(
"relative_epsilon_inner_iterations");
382 delta_t = this->m_simulation_config.getDoubleParameters(
"time_delta");
386 std::cerr <<
"[SimulationClassDefault]" <<
e.what() <<
'\n';
387 throw BadInput(
static_cast<std::string
>(
"[SimulationClassDefault]")
388 +
static_cast<std::string
>(
e.what()));
391 while (this->time_step *
delta_t < this->m_simulation_config.getDoubleParameters(
"time_max"))
394 this->m_field_map[m_dependent_variable_name]};
396 this->m_field_map[m_dependent_variable_name]};
406 this->setPreTimeStepChainStr();
421 solver->solveMatrixSystem(m_dependent_variable_name);
424 this->setPostNonLinIterChainStr();
429 - this->m_field_map[m_dependent_variable_name]))
452 - this->m_field_map[m_dependent_variable_name])
461 else if (this->global_convergence_diff
463 (
this->m_field_map[m_dependent_variable_name]).max())
472 this->m_field_map[m_dependent_variable_name];
476 std::cerr <<
"[SimulationClassDefault]: Warning - Reached specified inner "
477 "iterations limit without fullfilling the "
478 "requested convergence criterion.\n";
483 this->setPostTimeStepChainStr();
486 delta_t = this->m_simulation_config.getDoubleParameters(
"time_delta");
492 this->setOutputChainStr();
496 if (this->world_size > 1)
499 this->m_simulation_config.getIntParameters(
"numerical_layers")
500 *
this->m_simulation_config.getIntParameters(
"global_number_of_facets"));
502 if (this->my_rank == 0)
504 std::cout <<
"Full temperature:\n";
507 std::cout <<
val <<
" ";
514 this->printField(m_dependent_variable_name);
517 this->printField(m_dependent_variable_name);