Alsvinn  0.5.3
The fast FVM simulator with UQ support
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
alsfvm::equation::buckleyleverett::BuckleyLeverett Class Reference

#include <alsfvm/equation/buckleyleverett/BuckleyLeverett.hpp>

Public Types

typedef EquationParameters Parameters
 
typedef buckleyleverett::ConservedVariables ConservedVariables
 
typedef buckleyleverett::ExtraVariables ExtraVariables
 
typedef buckleyleverett::PrimitiveVariables PrimitiveVariables
 
typedef buckleyleverett::AllVariables AllVariables
 
typedef equation::buckleyleverett::Views< volume::Volume, memory::View< real > > Views
 
typedef equation::buckleyleverett::Views< const volume::Volume, const memory::View< const real > > ConstViews
 
typedef equation::buckleyleverett::ViewsExtra< volume::Volume, memory::View< real > > ViewsExtra
 
typedef equation::buckleyleverett::ViewsExtra< const volume::Volume, const memory::View< const real > > ConstViewsExtra
 

Public Member Functions

 BuckleyLeverett (const EquationParameters &parameters)
 
__device__ __host__ AllVariables fetchAllVariables (ConstViews &views, size_t index) const
 
__device__ __host__ ExtraVariables fetchExtraVariables (ConstViewsExtra &views, size_t index) const
 
__device__ __host__ void setExtraViewAt (ViewsExtra &output, size_t index, const ExtraVariables &input) const
 
template<size_t direction>
__device__ __host__ void computePointFlux (const AllVariables &u, ConservedVariables &F) const
 
__device__ __host__ ExtraVariables computeExtra (const ConservedVariables &u) const
 
__device__ __host__ ExtraVariables computeExtra (const PrimitiveVariables &primitiveVariables) const
 computes the extra variables from the primitive ones More...
 
__device__ __host__ ConservedVariables computeConserved (const PrimitiveVariables &primitiveVariables) const
 computes the conserved variables from the primitive ones More...
 
template<int direction>
__device__ __host__ real computeWaveSpeed (const ConservedVariables &u, const ExtraVariables &v) const
 
__device__ __host__ bool obeysConstraints (const ConservedVariables &u, const ExtraVariables &v) const
 
__device__ __host__ AllVariables makeAllVariables (real u) const
 
__device__ __host__ real getWeight (const ConstViews &in, size_t index) const
 
__device__ __host__ PrimitiveVariables computePrimitiveVariables (const ConservedVariables &conserved) const
 
__device__ __host__ rvec1 computeEntropyVariables (const ConservedVariables &conserved) const
 
__device__ __host__ rvec1 computeEntropyPotential (const ConservedVariables &conserved) const
 
template<int direction>
__device__ __host__ rvec1 computeEntropyVariablesMultipliedByEigenVectorMatrix (const ConservedVariables &conserved) const
 
template<int direction>
__device__ __host__ matrix1 computeEigenVectorMatrix (const ConservedVariables &conserved) const
 
template<int direction>
__device__ __host__ rvec1 computeEigenValues (const ConservedVariables &u) const
 

Static Public Member Functions

static std::string getName ()
 
__device__ static __host__ size_t getNumberOfConservedVariables ()
 
template<class T , class S >
__device__ static __host__ ConservedVariables fetchConservedVariables (buckleyleverett::Views< T, S > &views, size_t index)
 
__device__ static __host__ void setViewAt (Views &output, size_t index, const ConservedVariables &input)
 
__device__ static __host__ void addToViewAt (Views &output, size_t index, const ConservedVariables &input)
 

Static Public Attributes

static const std::vector< std::string > conservedVariables = { "u"}
 
static const std::vector< std::string > primitiveVariables = { "u" }
 
static const std::vector< std::string > extraVariables
 
static const size_t numberOfConservedVariables = 1
 
static const constexpr real entropyLowerBound = 0
 
static const constexpr real entropyUpperBound = 2
 

Member Typedef Documentation

◆ AllVariables

◆ ConservedVariables

◆ ConstViews

◆ ConstViewsExtra

◆ ExtraVariables

◆ Parameters

◆ PrimitiveVariables

◆ Views

◆ ViewsExtra

Constructor & Destructor Documentation

◆ BuckleyLeverett()

alsfvm::equation::buckleyleverett::BuckleyLeverett::BuckleyLeverett ( const EquationParameters parameters)
inline

Member Function Documentation

◆ addToViewAt()

__device__ static __host__ void alsfvm::equation::buckleyleverett::BuckleyLeverett::addToViewAt ( Views output,
size_t  index,
const ConservedVariables input 
)
inlinestatic

Adds the conserved variables to the view at the given index

Basically sets output[index] += input

◆ computeConserved()

__device__ __host__ ConservedVariables alsfvm::equation::buckleyleverett::BuckleyLeverett::computeConserved ( const PrimitiveVariables primitiveVariables) const
inline

computes the conserved variables from the primitive ones

Parameters
primitiveVariablesthe primtive variables
Returns
the computed all variables
Note
This implementation is not made for speed! Should only be used sparsely (eg. for initialization).

◆ computeEigenValues()

template<int direction>
__device__ __host__ rvec1 alsfvm::equation::buckleyleverett::BuckleyLeverett::computeEigenValues ( const ConservedVariables u) const
inline

◆ computeEigenVectorMatrix()

template<int direction>
__device__ __host__ matrix1 alsfvm::equation::buckleyleverett::BuckleyLeverett::computeEigenVectorMatrix ( const ConservedVariables conserved) const
inline

◆ computeEntropyPotential()

__device__ __host__ rvec1 alsfvm::equation::buckleyleverett::BuckleyLeverett::computeEntropyPotential ( const ConservedVariables conserved) const
inline

Computes the entropy potential $\psi(u)$ given by

\[\psi(u) = v(u)f(u) - Q(u)\]

where $Q(u)$ is defined through

\[Q'(u) = f'(u)E'(u)\]

◆ computeEntropyVariables()

__device__ __host__ rvec1 alsfvm::equation::buckleyleverett::BuckleyLeverett::computeEntropyVariables ( const ConservedVariables conserved) const
inline

Computes the entropy variable $v(u)$ given by

\[v(u) = \partial_u E(u)\]

corresponding to the entropy

\[E(u)-\log(b-u)-\log(u-a)\]

where $b$ is given as entropyUpperBound and $a$ is given as entropyLowerBound.

◆ computeEntropyVariablesMultipliedByEigenVectorMatrix()

template<int direction>
__device__ __host__ rvec1 alsfvm::equation::buckleyleverett::BuckleyLeverett::computeEntropyVariablesMultipliedByEigenVectorMatrix ( const ConservedVariables conserved) const
inline

◆ computeExtra() [1/2]

__device__ __host__ ExtraVariables alsfvm::equation::buckleyleverett::BuckleyLeverett::computeExtra ( const ConservedVariables u) const
inline

Empty function, buckleyleverett has no extra variables at the moment

◆ computeExtra() [2/2]

__device__ __host__ ExtraVariables alsfvm::equation::buckleyleverett::BuckleyLeverett::computeExtra ( const PrimitiveVariables primitiveVariables) const
inline

computes the extra variables from the primitive ones

Note
Empty function, buckleyleverett has no extra varaibles at the moment.

◆ computePointFlux()

template<size_t direction>
__device__ __host__ void alsfvm::equation::buckleyleverett::BuckleyLeverett::computePointFlux ( const AllVariables u,
ConservedVariables F 
) const
inline

Computes the point flux.

Here we view the buckleyleverett equation as the following hyperbolic system

\[u_t+\left(\frac{u^2}{2}\right)_x=0,\]

whence the function will return $u^2/2$

Parameters
[in]uthe variables to use
[out]Fthe resulting flux

◆ computePrimitiveVariables()

__device__ __host__ PrimitiveVariables alsfvm::equation::buckleyleverett::BuckleyLeverett::computePrimitiveVariables ( const ConservedVariables conserved) const
inline

◆ computeWaveSpeed()

template<int direction>
__device__ __host__ real alsfvm::equation::buckleyleverett::BuckleyLeverett::computeWaveSpeed ( const ConservedVariables u,
const ExtraVariables v 
) const
inline

Computes the wave speed in the given direction (absolute value of wave speed)

◆ fetchAllVariables()

__device__ __host__ AllVariables alsfvm::equation::buckleyleverett::BuckleyLeverett::fetchAllVariables ( ConstViews views,
size_t  index 
) const
inline

Fetches and computes the all variables from memory

◆ fetchConservedVariables()

template<class T , class S >
__device__ static __host__ ConservedVariables alsfvm::equation::buckleyleverett::BuckleyLeverett::fetchConservedVariables ( buckleyleverett::Views< T, S > &  views,
size_t  index 
)
inlinestatic

◆ fetchExtraVariables()

__device__ __host__ ExtraVariables alsfvm::equation::buckleyleverett::BuckleyLeverett::fetchExtraVariables ( ConstViewsExtra views,
size_t  index 
) const
inline

◆ getName()

static std::string alsfvm::equation::buckleyleverett::BuckleyLeverett::getName ( )
inlinestatic

Defaults to "buckleyleverett".

◆ getNumberOfConservedVariables()

__device__ static __host__ size_t alsfvm::equation::buckleyleverett::BuckleyLeverett::getNumberOfConservedVariables ( )
inlinestatic

◆ getWeight()

__device__ __host__ real alsfvm::equation::buckleyleverett::BuckleyLeverett::getWeight ( const ConstViews in,
size_t  index 
) const
inline

◆ makeAllVariables()

__device__ __host__ AllVariables alsfvm::equation::buckleyleverett::BuckleyLeverett::makeAllVariables ( real  u) const
inline

◆ obeysConstraints()

__device__ __host__ bool alsfvm::equation::buckleyleverett::BuckleyLeverett::obeysConstraints ( const ConservedVariables u,
const ExtraVariables v 
) const
inline

Checks to see if the variables obeys the constraint. In this case it checks that

\[\rho > 0\]

and

\[p\geq 0\]

Returns
true if the inequalities are fulfilled, false otherwise

◆ setExtraViewAt()

__device__ __host__ void alsfvm::equation::buckleyleverett::BuckleyLeverett::setExtraViewAt ( ViewsExtra output,
size_t  index,
const ExtraVariables input 
) const
inline

Writes the ExtraVariable struct back to memory

◆ setViewAt()

__device__ static __host__ void alsfvm::equation::buckleyleverett::BuckleyLeverett::setViewAt ( Views output,
size_t  index,
const ConservedVariables input 
)
inlinestatic

Writes the ConservedVariable struct back to memory

Member Data Documentation

◆ conservedVariables

const std::vector< std::string > alsfvm::equation::buckleyleverett::BuckleyLeverett::conservedVariables = { "u"}
static

List of all conserved variables used by buckleyleverett (u)

◆ entropyLowerBound

const constexpr real alsfvm::equation::buckleyleverett::BuckleyLeverett::entropyLowerBound = 0
static

Gives the lower bound for the parameter the entropy functions, corresponds to the "a" variable in the tecno variable for the buckleyleverett log entropy

◆ entropyUpperBound

const constexpr real alsfvm::equation::buckleyleverett::BuckleyLeverett::entropyUpperBound = 2
static

Gives the lower bound for the parameter the entropy functions, corresponds to the "b" variable in the tecno variable for the buckleyleverett log entropy

◆ extraVariables

const std::vector< std::string > alsfvm::equation::buckleyleverett::BuckleyLeverett::extraVariables
static

List of all extra variables used by buckleyleverett (none)

◆ numberOfConservedVariables

const size_t alsfvm::equation::buckleyleverett::BuckleyLeverett::numberOfConservedVariables = 1
static

Gives the number of conserved variables used (1)

◆ primitiveVariables

const std::vector< std::string > alsfvm::equation::buckleyleverett::BuckleyLeverett::primitiveVariables = { "u" }
static

List of all primtive variables used by buckleyleverett (u)


The documentation for this class was generated from the following files: