![]() |
OGS
|
Definition at line 38 of file WellboreSimulatorFEM.h.
#include <WellboreSimulatorFEM.h>
Public Types | |
using | ResidualVector = Eigen::Matrix<double, jacobian_residual_size, 1> |
using | JacobianMatrix |
using | UnknownVector = Eigen::Matrix<double, jacobian_residual_size, 1> |
Public Member Functions | |
WellboreSimulatorFEM (MeshLib::Element const &element, std::size_t const, NumLib::GenericIntegrationMethod const &integration_method, bool const is_axially_symmetric, WellboreSimulatorProcessData const &process_data) | |
void | assemble (double const t, double const dt, std::vector< double > const &local_x, std::vector< double > const &local_x_prev, std::vector< double > &local_M_data, std::vector< double > &local_K_data, std::vector< double > &local_b_data) override |
void | calculateResidual (double const alpha, double const vapor_water_density, double const liquid_water_density, double const v_mix, double const dryness, double const C_0, double const u_gu, ResidualVector &res) |
void | calculateJacobian (double const alpha, double const vapor_water_density, double const liquid_water_density, double const v_mix, double const dryness, double const C_0, double const u_gu, JacobianMatrix &Jac) |
Eigen::Map< const Eigen::RowVectorXd > | getShapeMatrix (const unsigned integration_point) const override |
Provides the shape matrix at the given integration point. | |
void | computeSecondaryVariableConcrete (double const, double const, Eigen::VectorXd const &, Eigen::VectorXd const &) override |
void | postTimestepConcrete (Eigen::VectorXd const &, Eigen::VectorXd const &, double const, double const, int const) override |
Public Member Functions inherited from ProcessLib::WellboreSimulator::WellboreSimulatorLocalAssemblerInterface | |
WellboreSimulatorLocalAssemblerInterface ()=default | |
Public Member Functions inherited from ProcessLib::LocalAssemblerInterface | |
virtual | ~LocalAssemblerInterface ()=default |
virtual void | setInitialConditions (std::size_t const mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, std::vector< GlobalVector * > const &x, double const t, int const process_id) |
virtual void | initialize (std::size_t const mesh_item_id, NumLib::LocalToGlobalIndexMap const &dof_table) |
virtual void | preAssemble (double const, double const, std::vector< double > const &) |
virtual void | assembleForStaggeredScheme (double const t, double const dt, Eigen::VectorXd const &local_x, Eigen::VectorXd const &local_x_prev, int const process_id, std::vector< double > &local_M_data, std::vector< double > &local_K_data, std::vector< double > &local_b_data) |
virtual void | assembleWithJacobian (double const t, double const dt, std::vector< double > const &local_x, std::vector< double > const &local_x_prev, std::vector< double > &local_b_data, std::vector< double > &local_Jac_data) |
virtual void | assembleWithJacobianForStaggeredScheme (double const t, double const dt, Eigen::VectorXd const &local_x, Eigen::VectorXd const &local_x_prev, int const process_id, std::vector< double > &local_b_data, std::vector< double > &local_Jac_data) |
virtual void | computeSecondaryVariable (std::size_t const mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, double const t, double const dt, std::vector< GlobalVector * > const &x, GlobalVector const &x_prev, int const process_id) |
virtual void | preTimestep (std::size_t const mesh_item_id, NumLib::LocalToGlobalIndexMap const &dof_table, GlobalVector const &x, double const t, double const delta_t) |
virtual void | postTimestep (std::size_t const mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, double const t, double const dt, int const process_id) |
void | postNonLinearSolver (std::size_t const mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, double const t, double const dt, int const process_id) |
virtual Eigen::Vector3d | getFlux (MathLib::Point3d const &, double const, std::vector< double > const &) const |
virtual Eigen::Vector3d | getFlux (MathLib::Point3d const &, double const, std::vector< std::vector< double > > const &) const |
Fits to staggered scheme. | |
virtual std::optional< VectorSegment > | getVectorDeformationSegment () const |
Public Member Functions inherited from NumLib::ExtrapolatableElement | |
virtual | ~ExtrapolatableElement ()=default |
Static Public Attributes | |
static int const | jacobian_residual_size = 1 |
Protected Types | |
using | IpData |
Protected Member Functions | |
virtual std::vector< double > const & | getIntPtVaporMassFlowRate (const double, std::vector< GlobalVector * > const &, std::vector< NumLib::LocalToGlobalIndexMap const * > const &, std::vector< double > &cache) const override |
virtual std::vector< double > const & | getIntPtLiquidMassFlowRate (const double, std::vector< GlobalVector * > const &, std::vector< NumLib::LocalToGlobalIndexMap const * > const &, std::vector< double > &cache) const override |
virtual std::vector< double > const & | getIntPtTemperature (const double, std::vector< GlobalVector * > const &, std::vector< NumLib::LocalToGlobalIndexMap const * > const &, std::vector< double > &cache) const override |
virtual std::vector< double > const & | getIntPtDryness (const double, std::vector< GlobalVector * > const &, std::vector< NumLib::LocalToGlobalIndexMap const * > const &, std::vector< double > &cache) const override |
virtual std::vector< double > const & | getIntPtVaporVolumeFraction (const double, std::vector< GlobalVector * > const &, std::vector< NumLib::LocalToGlobalIndexMap const * > const &, std::vector< double > &cache) const override |
Protected Attributes | |
MeshLib::Element const & | _element |
NumLib::GenericIntegrationMethod const & | _integration_method |
bool const | _is_axially_symmetric |
WellboreSimulatorProcessData const & | _process_data |
Eigen::Vector3d | _element_direction |
std::vector< IpData, Eigen::aligned_allocator< IpData > > | _ip_data |
Static Protected Attributes | |
static const int | pressure_index = 0 |
static const int | velocity_index = ShapeFunction::NPOINTS |
static const int | enthalpy_index = 2 * ShapeFunction::NPOINTS |
static const int | pressure_size = ShapeFunction::NPOINTS |
static const int | velocity_size = ShapeFunction::NPOINTS |
static const int | enthalpy_size = ShapeFunction::NPOINTS |
Private Types | |
using | ShapeMatricesType = ShapeMatrixPolicyType<ShapeFunction, GlobalDim> |
using | ShapeMatrices = typename ShapeMatricesType::ShapeMatrices |
using | LocalMatrixType |
using | LocalVectorType |
using | NodalVectorType = typename ShapeMatricesType::NodalVectorType |
using | NodalRowVectorType = typename ShapeMatricesType::NodalRowVectorType |
using | GlobalDimVectorType = typename ShapeMatricesType::GlobalDimVectorType |
using | GlobalDimNodalMatrixType |
using | GlobalDimMatrixType = typename ShapeMatricesType::GlobalDimMatrixType |
|
private |
Definition at line 56 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 54 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 53 of file WellboreSimulatorFEM.h.
|
protected |
Definition at line 274 of file WellboreSimulatorFEM.h.
using ProcessLib::WellboreSimulator::WellboreSimulatorFEM< ShapeFunction, GlobalDim >::JacobianMatrix |
Definition at line 138 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 43 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 46 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 51 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 50 of file WellboreSimulatorFEM.h.
using ProcessLib::WellboreSimulator::WellboreSimulatorFEM< ShapeFunction, GlobalDim >::ResidualVector = Eigen::Matrix<double, jacobian_residual_size, 1> |
Definition at line 137 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 41 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 40 of file WellboreSimulatorFEM.h.
using ProcessLib::WellboreSimulator::WellboreSimulatorFEM< ShapeFunction, GlobalDim >::UnknownVector = Eigen::Matrix<double, jacobian_residual_size, 1> |
Definition at line 141 of file WellboreSimulatorFEM.h.
|
inline |
Definition at line 59 of file WellboreSimulatorFEM.h.
References _element, _element_direction, _integration_method, _ip_data, _is_axially_symmetric, _process_data, MaterialPropertyLib::density, MaterialPropertyLib::VariableArray::enthalpy, MeshLib::Element::getNode(), NumLib::initShapeMatrices(), MaterialPropertyLib::VariableArray::liquid_phase_pressure, ParameterLib::SpatialPosition::setElementID(), MaterialPropertyLib::temperature, and MaterialPropertyLib::VariableArray::temperature.
|
overridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 28 of file WellboreSimulatorFEM-impl.h.
References _element, _element_direction, _integration_method, _ip_data, _process_data, calculateJacobian(), calculateResidual(), MathLib::createZeroedMatrix(), MathLib::createZeroedVector(), MaterialPropertyLib::density, MaterialPropertyLib::VariableArray::density, MaterialPropertyLib::enthalpy, MaterialPropertyLib::VariableArray::enthalpy, enthalpy_index, NumLib::interpolateCoordinates(), MaterialPropertyLib::VariableArray::liquid_phase_pressure, ProcessLib::WellboreSimulator::NUM_NODAL_DOF, PI, pressure_index, MaterialPropertyLib::saturation_density, MaterialPropertyLib::saturation_enthalpy, ParameterLib::SpatialPosition::setElementID(), NumLib::detail::shapeFunctionInterpolate(), NumLib::NewtonRaphson< LinearSolver, JacobianMatrixUpdate, ResidualUpdate, SolutionUpdate >::solve(), MaterialPropertyLib::temperature, MaterialPropertyLib::VariableArray::temperature, velocity_index, MaterialPropertyLib::viscosity, and WARN().
|
inline |
Definition at line 160 of file WellboreSimulatorFEM.h.
Referenced by assemble().
|
inline |
Definition at line 143 of file WellboreSimulatorFEM.h.
Referenced by assemble().
|
inlineoverridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 185 of file WellboreSimulatorFEM.h.
References _element, _integration_method, _ip_data, and _process_data.
|
inlineoverrideprotectedvirtual |
Implements ProcessLib::WellboreSimulator::WellboreSimulatorLocalAssemblerInterface.
Definition at line 247 of file WellboreSimulatorFEM.h.
References _ip_data, ProcessLib::WellboreSimulator::IntegrationPointData< NodalRowVectorType, GlobalDimNodalMatrixType >::dryness, and ProcessLib::getIntegrationPointScalarData().
|
inlineoverrideprotectedvirtual |
Implements ProcessLib::WellboreSimulator::WellboreSimulatorLocalAssemblerInterface.
Definition at line 227 of file WellboreSimulatorFEM.h.
References _ip_data, ProcessLib::getIntegrationPointScalarData(), and ProcessLib::WellboreSimulator::IntegrationPointData< NodalRowVectorType, GlobalDimNodalMatrixType >::liquid_mass_flow_rate.
|
inlineoverrideprotectedvirtual |
Implements ProcessLib::WellboreSimulator::WellboreSimulatorLocalAssemblerInterface.
Definition at line 237 of file WellboreSimulatorFEM.h.
References _ip_data, ProcessLib::getIntegrationPointScalarData(), and ProcessLib::WellboreSimulator::IntegrationPointData< NodalRowVectorType, GlobalDimNodalMatrixType >::temperature.
|
inlineoverrideprotectedvirtual |
Implements ProcessLib::WellboreSimulator::WellboreSimulatorLocalAssemblerInterface.
Definition at line 217 of file WellboreSimulatorFEM.h.
References _ip_data, ProcessLib::getIntegrationPointScalarData(), and ProcessLib::WellboreSimulator::IntegrationPointData< NodalRowVectorType, GlobalDimNodalMatrixType >::vapor_mass_flow_rate.
|
inlineoverrideprotectedvirtual |
Implements ProcessLib::WellboreSimulator::WellboreSimulatorLocalAssemblerInterface.
Definition at line 257 of file WellboreSimulatorFEM.h.
References _ip_data, ProcessLib::getIntegrationPointScalarData(), and ProcessLib::WellboreSimulator::IntegrationPointData< NodalRowVectorType, GlobalDimNodalMatrixType >::vapor_volume_fraction.
|
inlineoverridevirtual |
Provides the shape matrix at the given integration point.
Implements NumLib::ExtrapolatableElement.
Definition at line 176 of file WellboreSimulatorFEM.h.
References _ip_data.
|
inlineoverridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 202 of file WellboreSimulatorFEM.h.
References _integration_method, and _ip_data.
|
protected |
Definition at line 267 of file WellboreSimulatorFEM.h.
Referenced by WellboreSimulatorFEM(), assemble(), and computeSecondaryVariableConcrete().
|
protected |
Definition at line 272 of file WellboreSimulatorFEM.h.
Referenced by WellboreSimulatorFEM(), and assemble().
|
protected |
Definition at line 268 of file WellboreSimulatorFEM.h.
Referenced by WellboreSimulatorFEM(), assemble(), computeSecondaryVariableConcrete(), and postTimestepConcrete().
|
protected |
Definition at line 276 of file WellboreSimulatorFEM.h.
Referenced by WellboreSimulatorFEM(), assemble(), computeSecondaryVariableConcrete(), getIntPtDryness(), getIntPtLiquidMassFlowRate(), getIntPtTemperature(), getIntPtVaporMassFlowRate(), getIntPtVaporVolumeFraction(), getShapeMatrix(), and postTimestepConcrete().
|
protected |
Definition at line 269 of file WellboreSimulatorFEM.h.
Referenced by WellboreSimulatorFEM().
|
protected |
Definition at line 270 of file WellboreSimulatorFEM.h.
Referenced by WellboreSimulatorFEM(), assemble(), and computeSecondaryVariableConcrete().
|
staticprotected |
Definition at line 281 of file WellboreSimulatorFEM.h.
Referenced by assemble().
|
staticprotected |
Definition at line 285 of file WellboreSimulatorFEM.h.
|
static |
Definition at line 136 of file WellboreSimulatorFEM.h.
|
staticprotected |
Definition at line 279 of file WellboreSimulatorFEM.h.
Referenced by assemble().
|
staticprotected |
Definition at line 283 of file WellboreSimulatorFEM.h.
|
staticprotected |
Definition at line 280 of file WellboreSimulatorFEM.h.
Referenced by assemble().
|
staticprotected |
Definition at line 284 of file WellboreSimulatorFEM.h.