OGS
WellboreSimulatorLocalAssemblerInterface.h
Go to the documentation of this file.
1
11#pragma once
12
17
18namespace ProcessLib
19{
20
21namespace WellboreSimulator
22{
23template <typename NodalRowVectorType, typename GlobalDimNodalMatrixType>
25{
26 IntegrationPointData(NodalRowVectorType N_,
27 GlobalDimNodalMatrixType dNdx_,
28 double const& integration_weight_)
29 : N(std::move(N_)),
30 dNdx(std::move(dNdx_)),
31 integration_weight(integration_weight_)
32 {
33 }
34
36
37 NodalRowVectorType const N;
38 GlobalDimNodalMatrixType const dNdx;
39 double const integration_weight;
40
41 double mix_density = std::numeric_limits<double>::quiet_NaN();
42 double mix_density_prev = std::numeric_limits<double>::quiet_NaN();
43 double temperature = std::numeric_limits<double>::quiet_NaN();
44 double dryness = std::numeric_limits<double>::quiet_NaN();
45 double vapor_volume_fraction = std::numeric_limits<double>::quiet_NaN();
46 double vapor_mass_flow_rate = std::numeric_limits<double>::quiet_NaN();
47 double liquid_mass_flow_rate = std::numeric_limits<double>::quiet_NaN();
48};
49
53{
54public:
56
57 virtual std::vector<double> const& getIntPtVaporMassFlowRate(
58 const double /*t*/,
59 std::vector<GlobalVector*> const& /*x*/,
60 std::vector<NumLib::LocalToGlobalIndexMap const*> const& /*dof_table*/,
61 std::vector<double>& cache) const = 0;
62
63 virtual std::vector<double> const& getIntPtLiquidMassFlowRate(
64 const double /*t*/,
65 std::vector<GlobalVector*> const& /*x*/,
66 std::vector<NumLib::LocalToGlobalIndexMap const*> const& /*dof_table*/,
67 std::vector<double>& cache) const = 0;
68
69 virtual std::vector<double> const& getIntPtTemperature(
70 const double /*t*/,
71 std::vector<GlobalVector*> const& /*x*/,
72 std::vector<NumLib::LocalToGlobalIndexMap const*> const& /*dof_table*/,
73 std::vector<double>& cache) const = 0;
74
75 virtual std::vector<double> const& getIntPtDryness(
76 const double /*t*/,
77 std::vector<GlobalVector*> const& /*x*/,
78 std::vector<NumLib::LocalToGlobalIndexMap const*> const& /*dof_table*/,
79 std::vector<double>& cache) const = 0;
80
81 virtual std::vector<double> const& getIntPtVaporVolumeFraction(
82 const double /*t*/,
83 std::vector<GlobalVector*> const& /*x*/,
84 std::vector<NumLib::LocalToGlobalIndexMap const*> const& /*dof_table*/,
85 std::vector<double>& cache) const = 0;
86};
87
88} // namespace WellboreSimulator
89} // namespace ProcessLib
virtual std::vector< double > const & getIntPtVaporMassFlowRate(const double, std::vector< GlobalVector * > const &, std::vector< NumLib::LocalToGlobalIndexMap const * > const &, std::vector< double > &cache) const =0
virtual std::vector< double > const & getIntPtLiquidMassFlowRate(const double, std::vector< GlobalVector * > const &, std::vector< NumLib::LocalToGlobalIndexMap const * > const &, std::vector< double > &cache) const =0
virtual std::vector< double > const & getIntPtTemperature(const double, std::vector< GlobalVector * > const &, std::vector< NumLib::LocalToGlobalIndexMap const * > const &, std::vector< double > &cache) const =0
virtual std::vector< double > const & getIntPtDryness(const double, std::vector< GlobalVector * > const &, std::vector< NumLib::LocalToGlobalIndexMap const * > const &, std::vector< double > &cache) const =0
virtual std::vector< double > const & getIntPtVaporVolumeFraction(const double, std::vector< GlobalVector * > const &, std::vector< NumLib::LocalToGlobalIndexMap const * > const &, std::vector< double > &cache) const =0
IntegrationPointData(NodalRowVectorType N_, GlobalDimNodalMatrixType dNdx_, double const &integration_weight_)