OGS
WellboreSimulatorLocalAssemblerInterface.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 ProcessLib
12{
13
14namespace WellboreSimulator
15{
16template <typename NodalRowVectorType, typename GlobalDimNodalMatrixType>
18{
19 IntegrationPointData(NodalRowVectorType N_,
20 GlobalDimNodalMatrixType dNdx_,
21 double const& integration_weight_)
22 : N(std::move(N_)),
23 dNdx(std::move(dNdx_)),
24 integration_weight(integration_weight_)
25 {
26 }
27
29
30 NodalRowVectorType const N;
31 GlobalDimNodalMatrixType const dNdx;
32 double const integration_weight;
33
34 double mix_density = std::numeric_limits<double>::quiet_NaN();
35 double mix_density_prev = std::numeric_limits<double>::quiet_NaN();
36 double temperature = std::numeric_limits<double>::quiet_NaN();
37 double dryness = std::numeric_limits<double>::quiet_NaN();
38 double vapor_volume_fraction = std::numeric_limits<double>::quiet_NaN();
39 double vapor_mass_flow_rate = std::numeric_limits<double>::quiet_NaN();
40 double liquid_mass_flow_rate = std::numeric_limits<double>::quiet_NaN();
41};
42
46{
47public:
49
50 virtual std::vector<double> const& getIntPtVaporMassFlowRate(
51 const double /*t*/,
52 std::vector<GlobalVector*> const& /*x*/,
53 std::vector<NumLib::LocalToGlobalIndexMap const*> const& /*dof_table*/,
54 std::vector<double>& cache) const = 0;
55
56 virtual std::vector<double> const& getIntPtLiquidMassFlowRate(
57 const double /*t*/,
58 std::vector<GlobalVector*> const& /*x*/,
59 std::vector<NumLib::LocalToGlobalIndexMap const*> const& /*dof_table*/,
60 std::vector<double>& cache) const = 0;
61
62 virtual std::vector<double> const& getIntPtTemperature(
63 const double /*t*/,
64 std::vector<GlobalVector*> const& /*x*/,
65 std::vector<NumLib::LocalToGlobalIndexMap const*> const& /*dof_table*/,
66 std::vector<double>& cache) const = 0;
67
68 virtual std::vector<double> const& getIntPtDryness(
69 const double /*t*/,
70 std::vector<GlobalVector*> const& /*x*/,
71 std::vector<NumLib::LocalToGlobalIndexMap const*> const& /*dof_table*/,
72 std::vector<double>& cache) const = 0;
73
74 virtual std::vector<double> const& getIntPtVaporVolumeFraction(
75 const double /*t*/,
76 std::vector<GlobalVector*> const& /*x*/,
77 std::vector<NumLib::LocalToGlobalIndexMap const*> const& /*dof_table*/,
78 std::vector<double>& cache) const = 0;
79};
80
81} // namespace WellboreSimulator
82} // 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_)