OGS
|
Definition at line 30 of file TESProcess.h.
#include <TESProcess.h>
Public Member Functions | |
TESProcess (std::string name, MeshLib::Mesh &mesh, std::unique_ptr< AbstractJacobianAssembler > &&jacobian_assembler, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const integration_order, std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > &&process_variables, SecondaryVariableCollection &&secondary_variables, BaseLib::ConfigTree const &config) | |
void | preTimestepConcreteProcess (std::vector< GlobalVector * > const &x, const double t, const double delta_t, const int process_id) override |
void | preIterationConcreteProcess (const unsigned iter, GlobalVector const &x) override |
NumLib::IterationResult | postIterationConcreteProcess (GlobalVector const &x) override |
bool | isLinear () const override |
Public Member Functions inherited from ProcessLib::Process | |
Process (std::string name_, MeshLib::Mesh &mesh, std::unique_ptr< AbstractJacobianAssembler > &&jacobian_assembler, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const integration_order, std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > &&process_variables, SecondaryVariableCollection &&secondary_variables, const bool use_monolithic_scheme=true) | |
void | preTimestep (std::vector< GlobalVector * > const &x, const double t, const double delta_t, const int process_id) |
Preprocessing before starting assembly for new timestep. | |
void | postTimestep (std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, const double t, const double delta_t, int const process_id) |
Postprocessing after a complete timestep. | |
void | postNonLinearSolver (std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, const double t, double const dt, int const process_id) |
void | preIteration (const unsigned iter, GlobalVector const &x) final |
void | computeSecondaryVariable (double const t, double const dt, std::vector< GlobalVector * > const &x, GlobalVector const &x_prev, int const process_id) |
compute secondary variables for the coupled equations or for output. | |
NumLib::IterationResult | postIteration (GlobalVector const &x) final |
void | initialize (std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media) |
void | setInitialConditions (std::vector< GlobalVector * > &process_solutions, std::vector< GlobalVector * > const &process_solutions_prev, double const t, int const process_id) |
MathLib::MatrixSpecifications | getMatrixSpecifications (const int process_id) const override |
void | updateDeactivatedSubdomains (double const time, const int process_id) |
virtual bool | isMonolithicSchemeUsed () const |
virtual void | extrapolateIntegrationPointValuesToNodes (const double, std::vector< GlobalVector * > const &, std::vector< GlobalVector * > &) |
void | preAssemble (const double t, double const dt, GlobalVector const &x) final |
void | assemble (const double t, double const dt, std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, int const process_id, GlobalMatrix &M, GlobalMatrix &K, GlobalVector &b) final |
void | assembleWithJacobian (const double t, double const dt, std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, int const process_id, GlobalVector &b, GlobalMatrix &Jac) final |
void | preOutput (const double t, double const dt, std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, int const process_id) |
std::vector< NumLib::IndexValueVector< GlobalIndexType > > const * | getKnownSolutions (double const t, GlobalVector const &x, int const process_id) const final |
virtual NumLib::LocalToGlobalIndexMap const & | getDOFTable (const int) const |
MeshLib::Mesh & | getMesh () const |
std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > const & | getProcessVariables () const |
std::vector< std::reference_wrapper< ProcessVariable > > const & | getProcessVariables (const int process_id) const |
std::vector< std::size_t > const & | getActiveElementIDs () const |
SecondaryVariableCollection const & | getSecondaryVariables () const |
std::vector< std::unique_ptr< MeshLib::IntegrationPointWriter > > const & | getIntegrationPointWriters () const |
virtual Eigen::Vector3d | getFlux (std::size_t, MathLib::Point3d const &, double const, std::vector< GlobalVector * > const &) const |
virtual void | solveReactionEquation (std::vector< GlobalVector * > &, std::vector< GlobalVector * > const &, double const, double const, NumLib::EquationSystem &, int const) |
bool | requiresNormalization () const override |
Public Member Functions inherited from ProcessLib::SubmeshAssemblySupport | |
virtual std::vector< std::vector< std::string > > | initializeAssemblyOnSubmeshes (std::vector< std::reference_wrapper< MeshLib::Mesh > > const &meshes) |
virtual | ~SubmeshAssemblySupport ()=default |
Private Member Functions | |
void | initializeConcreteProcess (NumLib::LocalToGlobalIndexMap const &dof_table, MeshLib::Mesh const &mesh, unsigned const integration_order) override |
Process specific initialization called by initialize(). | |
void | assembleConcreteProcess (const double t, double const dt, std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, int const process_id, GlobalMatrix &M, GlobalMatrix &K, GlobalVector &b) override |
void | initializeSecondaryVariables () |
void | assembleWithJacobianConcreteProcess (const double t, double const dt, std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, int const process_id, GlobalVector &b, GlobalMatrix &Jac) override |
GlobalVector const & | computeVapourPartialPressure (const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::unique_ptr< GlobalVector > &result_cache) |
GlobalVector const & | computeRelativeHumidity (const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::unique_ptr< GlobalVector > &result_cache) |
GlobalVector const & | computeEquilibriumLoading (const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::unique_ptr< GlobalVector > &result_cache) |
Private Attributes | |
std::vector< std::unique_ptr< TESLocalAssemblerInterface > > | _local_assemblers |
AssemblyParams | _assembly_params |
std::unique_ptr< GlobalVector > | _x_previous_timestep |
ProcessLib::TES::TESProcess::TESProcess | ( | std::string | name, |
MeshLib::Mesh & | mesh, | ||
std::unique_ptr< AbstractJacobianAssembler > && | jacobian_assembler, | ||
std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & | parameters, | ||
unsigned const | integration_order, | ||
std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > && | process_variables, | ||
SecondaryVariableCollection && | secondary_variables, | ||
BaseLib::ConfigTree const & | config ) |
Definition at line 20 of file TESProcess.cpp.
References _assembly_params, ProcessLib::TES::AssemblyParams::cpG, ProcessLib::TES::AssemblyParams::cpS, DBUG(), ProcessLib::TES::AssemblyParams::diffusion_coefficient_component, ProcessLib::TES::AssemblyParams::fluid_specific_heat_source, BaseLib::ConfigTree::getConfigParameterOptional(), BaseLib::ConfigTree::getConfigSubtree(), MeshLib::Mesh::getDimension(), INFO(), ProcessLib::TES::AssemblyParams::initial_solid_density, Adsorption::Reaction::newInstance(), ProcessLib::TES::AssemblyParams::output_element_matrices, ProcessLib::TES::AssemblyParams::poro, ProcessLib::TES::AssemblyParams::react_sys, ProcessLib::TES::AssemblyParams::rho_SR_dry, ProcessLib::TES::AssemblyParams::solid_heat_cond, ProcessLib::TES::AssemblyParams::solid_perm_tensor, ProcessLib::TES::AssemblyParams::solid_specific_heat_source, ProcessLib::TES::AssemblyParams::tortuosity, ProcessLib::TES::AssemblyParams::trafo_p, ProcessLib::TES::AssemblyParams::trafo_T, and ProcessLib::TES::AssemblyParams::trafo_x.
|
overrideprivatevirtual |
Implements ProcessLib::Process.
Definition at line 206 of file TESProcess.cpp.
References ProcessLib::Process::_global_assembler, _local_assemblers, ProcessLib::Process::_local_to_global_index_map, ProcessLib::VectorMatrixAssembler::assemble(), DBUG(), NumLib::SerialExecutor::executeSelectedMemberDereferenced(), and ProcessLib::Process::getActiveElementIDs().
|
overrideprivatevirtual |
Implements ProcessLib::Process.
Definition at line 223 of file TESProcess.cpp.
References ProcessLib::Process::_global_assembler, _local_assemblers, ProcessLib::Process::_local_to_global_index_map, ProcessLib::VectorMatrixAssembler::assembleWithJacobian(), NumLib::SerialExecutor::executeSelectedMemberDereferenced(), and ProcessLib::Process::getActiveElementIDs().
|
private |
Definition at line 386 of file TESProcess.cpp.
References _assembly_params, ProcessLib::Process::_local_to_global_index_map, ProcessLib::Process::_mesh, ProcessLib::TES::COMPONENT_ID_MASS_FRACTION, ProcessLib::TES::COMPONENT_ID_PRESSURE, ProcessLib::TES::COMPONENT_ID_TEMPERATURE, Adsorption::AdsorptionReaction::getMolarFraction(), NumLib::getNodalValue(), MeshLib::Mesh::getNumberOfNodes(), ProcessLib::Process::getSingleComponentDOFTable(), ProcessLib::TES::AssemblyParams::M_inert, ProcessLib::TES::AssemblyParams::M_react, and ProcessLib::TES::AssemblyParams::react_sys.
Referenced by initializeSecondaryVariables().
|
private |
Definition at line 346 of file TESProcess.cpp.
References _assembly_params, ProcessLib::Process::_local_to_global_index_map, ProcessLib::Process::_mesh, ProcessLib::TES::COMPONENT_ID_MASS_FRACTION, ProcessLib::TES::COMPONENT_ID_PRESSURE, ProcessLib::TES::COMPONENT_ID_TEMPERATURE, Adsorption::AdsorptionReaction::getEquilibriumVapourPressure(), Adsorption::AdsorptionReaction::getMolarFraction(), NumLib::getNodalValue(), MeshLib::Mesh::getNumberOfNodes(), ProcessLib::Process::getSingleComponentDOFTable(), ProcessLib::TES::AssemblyParams::M_inert, and ProcessLib::TES::AssemblyParams::M_react.
Referenced by initializeSecondaryVariables().
|
private |
Definition at line 311 of file TESProcess.cpp.
References _assembly_params, ProcessLib::Process::_local_to_global_index_map, ProcessLib::Process::_mesh, ProcessLib::TES::COMPONENT_ID_MASS_FRACTION, ProcessLib::TES::COMPONENT_ID_PRESSURE, Adsorption::AdsorptionReaction::getMolarFraction(), NumLib::getNodalValue(), MeshLib::Mesh::getNumberOfNodes(), ProcessLib::Process::getSingleComponentDOFTable(), ProcessLib::TES::AssemblyParams::M_inert, and ProcessLib::TES::AssemblyParams::M_react.
Referenced by initializeSecondaryVariables().
|
overrideprivatevirtual |
Process specific initialization called by initialize().
Implements ProcessLib::Process.
Definition at line 140 of file TESProcess.cpp.
References _assembly_params, _local_assemblers, ProcessLib::createLocalAssemblers(), MeshLib::Mesh::getDimension(), MeshLib::Mesh::getElements(), initializeSecondaryVariables(), and MeshLib::Mesh::isAxiallySymmetric().
|
private |
Definition at line 152 of file TESProcess.cpp.
References _local_assemblers, ProcessLib::Process::_mesh, ProcessLib::Process::_secondary_variables, ProcessLib::SecondaryVariableCollection::addSecondaryVariable(), computeEquilibriumLoading(), computeRelativeHumidity(), computeVapourPartialPressure(), MeshLib::Mesh::getDimension(), ProcessLib::Process::getExtrapolator(), ProcessLib::TES::TESLocalAssemblerInterface::getIntPtDarcyVelocity(), ProcessLib::TES::TESLocalAssemblerInterface::getIntPtLoading(), ProcessLib::TES::TESLocalAssemblerInterface::getIntPtReactionDampingFactor(), ProcessLib::TES::TESLocalAssemblerInterface::getIntPtReactionRate(), ProcessLib::TES::TESLocalAssemblerInterface::getIntPtSolidDensity(), and ProcessLib::makeExtrapolator().
Referenced by initializeConcreteProcess().
|
inlineoverride |
Definition at line 53 of file TESProcess.h.
|
overridevirtual |
Reimplemented from ProcessLib::Process.
Definition at line 261 of file TESProcess.cpp.
References _assembly_params, _local_assemblers, ProcessLib::Process::_local_to_global_index_map, _x_previous_timestep, ProcessLib::TrafoScale::constrained, DBUG(), NumLib::SerialExecutor::executeDereferenced(), MathLib::EigenVector::get(), NumLib::getRowColumnIndices(), ProcessLib::TES::AssemblyParams::iteration_in_current_timestep, ProcessLib::TES::AssemblyParams::number_of_try_of_iteration, NumLib::REPEAT_ITERATION, MathLib::LinAlg::setLocalAccessibleVector(), NumLib::SUCCESS, ProcessLib::TES::AssemblyParams::timestep, and ProcessLib::TES::AssemblyParams::total_iteration.
|
overridevirtual |
Reimplemented from ProcessLib::Process.
Definition at line 253 of file TESProcess.cpp.
References _assembly_params, ProcessLib::TES::AssemblyParams::iteration_in_current_timestep, ProcessLib::TES::AssemblyParams::number_of_try_of_iteration, and ProcessLib::TES::AssemblyParams::total_iteration.
|
overridevirtual |
Reimplemented from ProcessLib::Process.
Definition at line 238 of file TESProcess.cpp.
References _assembly_params, _x_previous_timestep, ProcessLib::TES::AssemblyParams::current_time, DBUG(), ProcessLib::TES::AssemblyParams::delta_t, and ProcessLib::TES::AssemblyParams::timestep.
|
private |
Definition at line 93 of file TESProcess.h.
Referenced by TESProcess(), computeEquilibriumLoading(), computeRelativeHumidity(), computeVapourPartialPressure(), initializeConcreteProcess(), postIterationConcreteProcess(), preIterationConcreteProcess(), and preTimestepConcreteProcess().
|
private |
Definition at line 91 of file TESProcess.h.
Referenced by assembleConcreteProcess(), assembleWithJacobianConcreteProcess(), initializeConcreteProcess(), initializeSecondaryVariables(), and postIterationConcreteProcess().
|
private |
Definition at line 96 of file TESProcess.h.
Referenced by postIterationConcreteProcess(), and preTimestepConcreteProcess().