|  | OGS
    | 
Under the assumptions of the drift-flux model in a geothermal well with a constant cross-sectional area, the transient geo-fluid flow in a two-phase one-component geothermal well can be quantified using one-dimensional formulations of mass, momentum, and energy balance.
Definition at line 31 of file WellboreSimulatorProcess.h.
#include <WellboreSimulatorProcess.h>
| Public Member Functions | |
| WellboreSimulatorProcess (std::string name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::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, WellboreSimulatorProcessData &&process_data, SecondaryVariableCollection &&secondary_variables) | |
| ODESystem interface | |
| 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 | 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 | computeSecondaryVariableConcrete (double const t, double const dt, std::vector< GlobalVector * > const &x, GlobalVector const &x_dot, int const process_id) override | 
| void | postTimestepConcreteProcess (std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_dot, const double t, const double dt, int const process_id) override | 
| Private Attributes | |
| WellboreSimulatorProcessData | _process_data | 
| std::vector< std::unique_ptr< WellboreSimulatorLocalAssemblerInterface > > | _local_assemblers | 
| ProcessLib::WellboreSimulator::WellboreSimulatorProcess::WellboreSimulatorProcess | ( | std::string | name, | 
| MeshLib::Mesh & | mesh, | ||
| std::unique_ptr< ProcessLib::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, | ||
| WellboreSimulatorProcessData && | process_data, | ||
| SecondaryVariableCollection && | secondary_variables ) | 
Definition at line 25 of file WellboreSimulatorProcess.cpp.
| 
 | overrideprivatevirtual | 
Implements ProcessLib::Process.
Definition at line 88 of file WellboreSimulatorProcess.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 106 of file WellboreSimulatorProcess.cpp.
References ProcessLib::Process::_global_assembler, _local_assemblers, ProcessLib::Process::_local_to_global_index_map, ProcessLib::VectorMatrixAssembler::assembleWithJacobian(), DBUG(), NumLib::SerialExecutor::executeSelectedMemberDereferenced(), and ProcessLib::Process::getActiveElementIDs().
| 
 | overrideprivatevirtual | 
Reimplemented from ProcessLib::Process.
Definition at line 124 of file WellboreSimulatorProcess.cpp.
References _local_assemblers, ProcessLib::Process::_local_to_global_index_map, ProcessLib::LocalAssemblerInterface::computeSecondaryVariable(), NumLib::SerialExecutor::executeSelectedMemberOnDereferenced(), and ProcessLib::Process::getActiveElementIDs().
| 
 | overrideprivatevirtual | 
Process specific initialization called by initialize().
Implements ProcessLib::Process.
Definition at line 42 of file WellboreSimulatorProcess.cpp.
References _local_assemblers, _process_data, ProcessLib::Process::_secondary_variables, ProcessLib::SecondaryVariableCollection::addSecondaryVariable(), MeshLib::Cell, ProcessLib::createLocalAssemblers(), MeshLib::Mesh::getElements(), ProcessLib::Process::getExtrapolator(), ProcessLib::WellboreSimulator::WellboreSimulatorLocalAssemblerInterface::getIntPtDryness(), ProcessLib::WellboreSimulator::WellboreSimulatorLocalAssemblerInterface::getIntPtLiquidMassFlowRate(), ProcessLib::WellboreSimulator::WellboreSimulatorLocalAssemblerInterface::getIntPtTemperature(), ProcessLib::WellboreSimulator::WellboreSimulatorLocalAssemblerInterface::getIntPtVaporMassFlowRate(), ProcessLib::WellboreSimulator::WellboreSimulatorLocalAssemblerInterface::getIntPtVaporVolumeFraction(), MeshLib::getOrCreateMeshProperty(), MeshLib::Mesh::isAxiallySymmetric(), ProcessLib::makeExtrapolator(), ProcessLib::WellboreSimulator::WellboreSimulatorProcessData::mesh_prop_density, and ProcessLib::Process::name.
| 
 | inlineoverride | 
Definition at line 49 of file WellboreSimulatorProcess.h.
| 
 | overrideprivatevirtual | 
Reimplemented from ProcessLib::Process.
Definition at line 141 of file WellboreSimulatorProcess.cpp.
References _local_assemblers, ProcessLib::Process::_local_to_global_index_map, NumLib::SerialExecutor::executeSelectedMemberOnDereferenced(), ProcessLib::Process::getActiveElementIDs(), and ProcessLib::LocalAssemblerInterface::postTimestep().
| 
 | private | 
Definition at line 72 of file WellboreSimulatorProcess.h.
Referenced by assembleConcreteProcess(), assembleWithJacobianConcreteProcess(), computeSecondaryVariableConcrete(), initializeConcreteProcess(), and postTimestepConcreteProcess().
| 
 | private | 
Definition at line 69 of file WellboreSimulatorProcess.h.
Referenced by initializeConcreteProcess().