11#include "include/Sfx_DefineTypes.h"
31 return std::make_pair(
FF1,
FF2);
42 std::tuple<short, float64, float64>
asFFTuple()
const
69 if(
auto [pos,succeed] =
70 m_fluxTensorMap.try_emplace(aFlux2Insert.m_cellIdx, aFlux2Insert.m_cellIdx, aFlux2Insert.FF1, aFlux2Insert.FF2); !succeed)
72 Sfx::Logger::instance()->OutputError(std::string{
"Couldn't insert flux tensor at index {} already in" }.data());
84 std::vector<float64> w_stdVec;
90 w_stdVec.push_back(mapElem.FF1);
94 w_stdVec.push_back(mapElem.FF2);
112 w_stdValAray[i++] = mapElem.FF1;
116 w_stdValAray[i++] = mapElem.FF2;
131 auto pos = std::ranges::find_if_not(w_FF12, [](
float64 aVal) {
return aVal != 0.; });
132 static_assert(!std::is_same_v<std::ranges::dangling,
decltype(pos)>);
133 if( pos!=w_FF12.end())
149 return std::ranges::any_of( w_FF12, [](
float64 aNumber) {
return std::isnan(aNumber); });
160 return std::optional<FluxTensor>{pos->second};
Definition DamBreakProb.h:15
double float64
Definition dbpp_LDeltaOperator.h:12
Flux tensor field (aggregate initialization).
Definition dbpp_FluxTensor.h:21
std::pair< float64, float64 > asFFPair() const
pair of flux componengt
Definition dbpp_FluxTensor.h:29
std::tuple< short, float64, float64 > asFFTuple() const
C++17 structured binding.
Definition dbpp_FluxTensor.h:42
float64 FF1
Definition dbpp_FluxTensor.h:23
float64 FF2
Definition dbpp_FluxTensor.h:24
bool isZeroValue() const
check zero value
Definition dbpp_FluxTensor.h:37
short m_cellIdx
Definition dbpp_FluxTensor.h:22
Map cell face and flux values.
Definition dbpp_FluxTensor.h:52
eFFcomp
Flux component.
Definition dbpp_FluxTensor.h:61
@ FF2
Definition dbpp_FluxTensor.h:61
@ FF1
Definition dbpp_FluxTensor.h:61
std::map< short, FluxTensor >::size_type sizeMapType
alias
Definition dbpp_FluxTensor.h:56
bool insert(FluxTensor &&aFlux2Insert)
Add a flux tensor.
Definition dbpp_FluxTensor.h:67
sizeMapType size() const noexcept
number of element
Definition dbpp_FluxTensor.h:168
std::optional< FluxTensor > operator[](short aIdx) const
element accessor
Definition dbpp_FluxTensor.h:156
std::map< short, FluxTensor > m_fluxTensorMap
Definition dbpp_FluxTensor.h:63
bool isNullValues(const eFFcomp &aFFcomp) const
check for null values
Definition dbpp_FluxTensor.h:126
std::valarray< float64 > asStdValArray(const eFFcomp &aFFcomp) const
flux component as valarray
Definition dbpp_FluxTensor.h:104
bool isEmpty() const noexcept
check for emptiness
Definition dbpp_FluxTensor.h:173
std::vector< float64 > asStdVector(const eFFcomp &aFFcomp) const
flux component as vector
Definition dbpp_FluxTensor.h:82
void clear() noexcept
resize
Definition dbpp_FluxTensor.h:177
bool hasNAN(const eFFcomp &aFFcomp) const
check for nan values
Definition dbpp_FluxTensor.h:144