AquiferConstantFlux: use Scalar type

This commit is contained in:
Arne Morten Kvarving 2024-02-21 08:20:25 +01:00
parent f9f568d5ea
commit 687695882c

View File

@ -43,9 +43,10 @@ public:
using ElementMapper = GetPropType<TypeTag, Properties::ElementMapper>;
using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
using BlackoilIndices = GetPropType<TypeTag, Properties::Indices>;
using Scalar = GetPropType<TypeTag, Properties::Scalar>;
static constexpr int numEq = BlackoilIndices::numEq;
using Eval = DenseAd::Evaluation<double, /*size=*/numEq>;
using Eval = DenseAd::Evaluation<Scalar, /*size=*/numEq>;
AquiferConstantFlux(const std::vector<Aquancon::AquancCell>& connections,
const Simulator& simulator,
@ -68,15 +69,15 @@ public:
virtual ~AquiferConstantFlux() = default;
void computeFaceAreaFraction(const std::vector<double>& total_face_area) override
void computeFaceAreaFraction(const std::vector<Scalar>& total_face_area) override
{
assert (total_face_area.size() >= static_cast<std::vector<double>::size_type>(this->aquiferID()));
assert (total_face_area.size() >= static_cast<typename std::vector<Scalar>::size_type>(this->aquiferID()));
this->area_fraction_ = this->totalFaceArea()
/ total_face_area[this->aquiferID() - 1];
}
double totalFaceArea() const override
Scalar totalFaceArea() const override
{
return this->total_face_area_;
}
@ -163,12 +164,12 @@ private:
SingleAquiferFlux aquifer_data_;
std::vector<Eval> connection_flux_{};
std::vector<int> cellToConnectionIdx_{};
double flux_rate_{};
double cumulative_flux_{};
double total_face_area_{0.0};
double area_fraction_{1.0};
Scalar flux_rate_{};
Scalar cumulative_flux_{};
Scalar total_face_area_{0.0};
Scalar area_fraction_{1.0};
double initializeConnections()
Scalar initializeConnections()
{
auto connected_face_area = 0.0;
@ -196,7 +197,7 @@ private:
return connected_face_area;
}
double computeFaceAreaFraction(const double connected_face_area) const
Scalar computeFaceAreaFraction(const Scalar connected_face_area) const
{
const auto tot_face_area = this->simulator_.vanguard()
.grid().comm().sum(connected_face_area);
@ -215,11 +216,11 @@ private:
return FluidSystem::waterCompIdx;
}
double totalFluxRate() const
Scalar totalFluxRate() const
{
return std::accumulate(this->connection_flux_.begin(),
this->connection_flux_.end(), 0.0,
[](const double rate, const auto& q)
[](const Scalar rate, const auto& q)
{
return rate + getValue(q);
});