OGS
ProcessData.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <string>
7
13#include "Process.h"
14
15namespace ProcessLib
16{
18{
20 std::unique_ptr<NumLib::TimeStepAlgorithm>&& timestep_algorithm_,
21 NumLib::NonlinearSolverTag const nonlinear_solver_tag_,
22 NumLib::NonlinearSolverBase& nonlinear_solver_,
23 std::unique_ptr<NumLib::ConvergenceCriterion>&& conv_crit_,
24 std::unique_ptr<NumLib::TimeDiscretization>&& time_disc_,
25 int const process_id_, std::string&& process_name_, Process& process_)
26 : timestep_algorithm(std::move(timestep_algorithm_)),
29 nonlinear_solver_tag(nonlinear_solver_tag_),
30 nonlinear_solver(nonlinear_solver_),
32 conv_crit(std::move(conv_crit_)),
33 time_disc(std::move(time_disc_)),
34 process_id(process_id_),
35 process_name(std::move(process_name_)),
36 process(process_)
37 {
38 }
39
40 ProcessData(ProcessData&& pd) = delete;
41 ProcessData& operator=(ProcessData const& pd) = delete;
43
44 std::unique_ptr<NumLib::TimeStepAlgorithm> timestep_algorithm;
47
53 std::unique_ptr<NumLib::ConvergenceCriterion> conv_crit;
54
55 std::unique_ptr<NumLib::TimeDiscretization> time_disc;
57 std::unique_ptr<NumLib::EquationSystem> tdisc_ode_sys;
58
59 int const process_id;
60 std::string const process_name;
61
63};
64
65void setEquationSystem(ProcessData const& process_data);
66
67} // namespace ProcessLib
Time step object.
Definition TimeStep.h:24
NonlinearSolverTag
Tag used to specify which nonlinear solver will be used.
Definition Types.h:13
void setEquationSystem(ProcessData const &process_data)
Status of the non-linear solver.
ProcessData(ProcessData &&pd)=delete
NumLib::TimeStep timestep_current
Definition ProcessData.h:46
ProcessData & operator=(ProcessData &&pd)=delete
std::unique_ptr< NumLib::TimeDiscretization > time_disc
Definition ProcessData.h:55
ProcessData & operator=(ProcessData const &pd)=delete
ProcessData(std::unique_ptr< NumLib::TimeStepAlgorithm > &&timestep_algorithm_, NumLib::NonlinearSolverTag const nonlinear_solver_tag_, NumLib::NonlinearSolverBase &nonlinear_solver_, std::unique_ptr< NumLib::ConvergenceCriterion > &&conv_crit_, std::unique_ptr< NumLib::TimeDiscretization > &&time_disc_, int const process_id_, std::string &&process_name_, Process &process_)
Definition ProcessData.h:19
std::unique_ptr< NumLib::ConvergenceCriterion > conv_crit
Definition ProcessData.h:53
NumLib::NonlinearSolverStatus nonlinear_solver_status
Definition ProcessData.h:52
std::string const process_name
Definition ProcessData.h:60
NumLib::NonlinearSolverBase & nonlinear_solver
Definition ProcessData.h:51
NumLib::TimeStep timestep_previous
Definition ProcessData.h:45
std::unique_ptr< NumLib::TimeStepAlgorithm > timestep_algorithm
Definition ProcessData.h:44
std::unique_ptr< NumLib::EquationSystem > tdisc_ode_sys
type-erased time-discretized ODE system
Definition ProcessData.h:57
NumLib::NonlinearSolverTag const nonlinear_solver_tag
Definition ProcessData.h:50