![]() |
OGS
|
|
Definition at line 31 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 int | getNumberOfVectorElementsForDeformation () 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 49 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 47 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 46 of file WellboreSimulatorFEM.h.
|
protected |
Definition at line 267 of file WellboreSimulatorFEM.h.
| using ProcessLib::WellboreSimulator::WellboreSimulatorFEM< ShapeFunction, GlobalDim >::JacobianMatrix |
Definition at line 131 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 36 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 39 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 44 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 43 of file WellboreSimulatorFEM.h.
| using ProcessLib::WellboreSimulator::WellboreSimulatorFEM< ShapeFunction, GlobalDim >::ResidualVector = Eigen::Matrix<double, jacobian_residual_size, 1> |
Definition at line 130 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 34 of file WellboreSimulatorFEM.h.
|
private |
Definition at line 33 of file WellboreSimulatorFEM.h.
| using ProcessLib::WellboreSimulator::WellboreSimulatorFEM< ShapeFunction, GlobalDim >::UnknownVector = Eigen::Matrix<double, jacobian_residual_size, 1> |
Definition at line 134 of file WellboreSimulatorFEM.h.
|
inline |
Definition at line 52 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 21 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 153 of file WellboreSimulatorFEM.h.
Referenced by assemble().
|
inline |
Definition at line 136 of file WellboreSimulatorFEM.h.
Referenced by assemble().
|
inlineoverridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 178 of file WellboreSimulatorFEM.h.
References _element, _integration_method, _ip_data, and _process_data.
|
inlineoverrideprotectedvirtual |
Implements ProcessLib::WellboreSimulator::WellboreSimulatorLocalAssemblerInterface.
Definition at line 240 of file WellboreSimulatorFEM.h.
References _ip_data, ProcessLib::WellboreSimulator::IntegrationPointData< NodalRowVectorType, GlobalDimNodalMatrixType >::dryness, and ProcessLib::getIntegrationPointScalarData().
|
inlineoverrideprotectedvirtual |
Implements ProcessLib::WellboreSimulator::WellboreSimulatorLocalAssemblerInterface.
Definition at line 220 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 230 of file WellboreSimulatorFEM.h.
References _ip_data, ProcessLib::getIntegrationPointScalarData(), and ProcessLib::WellboreSimulator::IntegrationPointData< NodalRowVectorType, GlobalDimNodalMatrixType >::temperature.
|
inlineoverrideprotectedvirtual |
Implements ProcessLib::WellboreSimulator::WellboreSimulatorLocalAssemblerInterface.
Definition at line 210 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 250 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 169 of file WellboreSimulatorFEM.h.
References _ip_data.
|
inlineoverridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 195 of file WellboreSimulatorFEM.h.
References _integration_method, and _ip_data.
|
protected |
Definition at line 260 of file WellboreSimulatorFEM.h.
Referenced by WellboreSimulatorFEM(), assemble(), and computeSecondaryVariableConcrete().
|
protected |
Definition at line 265 of file WellboreSimulatorFEM.h.
Referenced by WellboreSimulatorFEM(), and assemble().
|
protected |
Definition at line 261 of file WellboreSimulatorFEM.h.
Referenced by WellboreSimulatorFEM(), assemble(), computeSecondaryVariableConcrete(), and postTimestepConcrete().
|
protected |
Definition at line 269 of file WellboreSimulatorFEM.h.
Referenced by WellboreSimulatorFEM(), assemble(), computeSecondaryVariableConcrete(), getIntPtDryness(), getIntPtLiquidMassFlowRate(), getIntPtTemperature(), getIntPtVaporMassFlowRate(), getIntPtVaporVolumeFraction(), getShapeMatrix(), and postTimestepConcrete().
|
protected |
Definition at line 262 of file WellboreSimulatorFEM.h.
Referenced by WellboreSimulatorFEM().
|
protected |
Definition at line 263 of file WellboreSimulatorFEM.h.
Referenced by WellboreSimulatorFEM(), assemble(), and computeSecondaryVariableConcrete().
|
staticprotected |
Definition at line 274 of file WellboreSimulatorFEM.h.
Referenced by assemble().
|
staticprotected |
Definition at line 278 of file WellboreSimulatorFEM.h.
|
static |
Definition at line 129 of file WellboreSimulatorFEM.h.
|
staticprotected |
Definition at line 272 of file WellboreSimulatorFEM.h.
Referenced by assemble().
|
staticprotected |
Definition at line 276 of file WellboreSimulatorFEM.h.
|
staticprotected |
Definition at line 273 of file WellboreSimulatorFEM.h.
Referenced by assemble().
|
staticprotected |
Definition at line 277 of file WellboreSimulatorFEM.h.