OGS
ThermalTwoPhaseFlowWithPPProcess.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
10
11namespace MeshLib
12{
13class Element;
14class Mesh;
15template <typename PROP_VAL_TYPE>
16class PropertyVector;
17} // namespace MeshLib
18
19namespace ProcessLib
20{
22{
35
37{
38public:
40 std::string name,
41 MeshLib::Mesh& mesh,
42 std::unique_ptr<AbstractJacobianAssembler>&& jacobian_assembler,
43 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const&
44 parameters,
45 unsigned const integration_order,
46 std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&&
47 process_variables,
49 SecondaryVariableCollection&& secondary_variables);
50
51 bool isLinear() const override { return false; }
52
53private:
55 NumLib::LocalToGlobalIndexMap const& dof_table,
56 MeshLib::Mesh const& mesh, unsigned const integration_order) override;
57
58 void assembleConcreteProcess(const double t, double const dt,
59 std::vector<GlobalVector*> const& x,
60 std::vector<GlobalVector*> const& x_prev,
61 int const process_id, GlobalMatrix& M,
62 GlobalMatrix& K, GlobalVector& b) override;
63
65 const double t, double const dt, std::vector<GlobalVector*> const& x,
66 std::vector<GlobalVector*> const& x_prev, int const process_id,
67 GlobalVector& b, GlobalMatrix& Jac) override;
68
69 void preTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
70 const double t, const double delta_t,
71 const int process_id) override;
72
74
75 std::vector<
76 std::unique_ptr<ThermalTwoPhaseFlowWithPPLocalAssemblerInterface>>
78
80};
81
82} // namespace ThermalTwoPhaseFlowWithPP
83} // namespace ProcessLib
MathLib::EigenMatrix GlobalMatrix
MathLib::EigenVector GlobalVector
std::string const name
Definition Process.h:361
Process(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, const bool use_monolithic_scheme=true)
Definition Process.cpp:37
Handles configuration of several secondary variables from the project file.
std::vector< std::unique_ptr< ThermalTwoPhaseFlowWithPPLocalAssemblerInterface > > _local_assemblers
void initializeConcreteProcess(NumLib::LocalToGlobalIndexMap const &dof_table, MeshLib::Mesh const &mesh, unsigned const integration_order) override
Process specific initialization called by initialize().
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
void preTimestepConcreteProcess(std::vector< GlobalVector * > const &x, const double t, const double delta_t, const int process_id) override
ThermalTwoPhaseFlowWithPPProcess(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, ThermalTwoPhaseFlowWithPPProcessData &&process_data, SecondaryVariableCollection &&secondary_variables)
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
Writes global matrices to disk for debugging purposes.