WARPXM v1.10.0
Loading...
Searching...
No Matches
wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution Class Reference

Class that calculates the analytic solution to the Riemann Problem for the Euler Equations. More...

#include <euler1d_riemann_problem_analytic_solution.h>

Inheritance diagram for wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution:
WmApplication wxm::app_base

Detailed Description

Class that calculates the analytic solution to the Riemann Problem for the Euler Equations.

This is an implementation of the solution described in sections 14.11 and 14.12 of "Finite Volume Methods for Hyperbolic Problems" by Randall J. Leveque, 2002.

Public Member Functions

 Euler1D_Riemann_Problem_Analytic_Solution ()
 
 ~Euler1D_Riemann_Problem_Analytic_Solution () override
 
void setup (const WxCryptSet &wxc) override
 Determine all states and wave speeds given initial pritimive variable left and right conditions for the Riemann Problem.
 
const std::vector< int > & getOutputVariableIndexes (int flag) const override
 
void evaluate_function (const real *q, const real *aux, const solverVariables_t *pSV, real *result) const override
 Redefinition of fluxes from parent.
 
- Public Member Functions inherited from WmApplication
 WmApplication ()
 
virtual ~WmApplication ()=default
 
virtual void setup (const WxCryptSet &wxc)
 
virtual const std::vector< int > & getAuxiliaryVariableIndexes (int flag=WMAPPLICATIONFLAG_NONE) const
 
virtual const std::vector< int > & getCrossVariableIndexes (int flag=WMAPPLICATIONFLAG_NONE) const
 
const std::vector< std::string > & getBoundaryNames () const
 
bool isOnBoundary (const std::string &boundaryName) const
 
bool has (int flag) const
 
virtual real numerical_flux (const real *q_l, const real *q_r, const real *aux_l, const real *aux_r, const solverVariables_t *pFV, real *numericalFlux) const
 
virtual real internal_flux (const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const
 
virtual real source (const real *q, const real *aux, const elementGeometry_t *pEG, real *source) const
 
virtual void bc_q (const real *q_in, const real *aux_in, const real *aux_out, const solverVariables_t *pFV, real *q_out) const
 Boundary Condition Application which sets the boundary condition on ghost nodes.
 
virtual real bcNumericalFlux (const real *q_l, const real *q_r, const real *aux_l, const real *aux_r, const solverVariables_t *pFV, real *numericalFlux) const
 
virtual void conserved_to_primitive (const real *q, const real *aux, real *w) const
 
virtual void primitive_to_conserved (const real *w, const real *aux, real *q) const
 
virtual void evaluate_function (const real *q, const real *aux, const solverVariables_t *pSV, real *result) const
 
virtual void bc_q_kinetic (const real *q_in, const real *aux_in, const solverVariables_t *pFV, real *q_out) const
 
std::shared_ptr< std::string > app_name ()
 
- Public Member Functions inherited from wxm::app_base
virtual const std::vector< int > & getInputVariableIndexes (int flag=0) const
 
virtual const std::vector< int > & getOutputVariableIndexes (int flag=0) const
 

Protected Attributes

real _gas_gamma
 
real _xc
 
std::vector< real_w_left
 
std::vector< real_w_right
 
std::vector< real_q_left
 
std::vector< real_q_right
 
std::vector< real_wave_speeds
 
std::vector< std::vector< real > > _q_states
 
std::vector< std::vector< real > > _w_states
 
std::vector< int > _variables
 
- Protected Attributes inherited from WmApplication
std::string _app_name
 
WxLogStream _debStrm
 
std::vector< int > _allowedFlags
 
std::vector< std::string > _onBoundaries
 

Additional Inherited Members

- Public Types inherited from WmApplication
typedef Application_Variable WmApplication_Variable
 
typedef std::map< std::string, std::string > replaceMap_t
 
- Static Public Attributes inherited from wxm::app_base
static std::vector< int > empty
 
- Protected Member Functions inherited from wxm::app_base
virtual ~app_base ()=default
 

Constructor & Destructor Documentation

◆ Euler1D_Riemann_Problem_Analytic_Solution()

wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::Euler1D_Riemann_Problem_Analytic_Solution ( )

◆ ~Euler1D_Riemann_Problem_Analytic_Solution()

wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::~Euler1D_Riemann_Problem_Analytic_Solution ( )
override

Member Function Documentation

◆ evaluate_function()

void wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::evaluate_function ( const real q,
const real aux,
const solverVariables_t pSV,
real result 
) const
overridevirtual

Redefinition of fluxes from parent.

Given 1d position x and time, determine analytic solution of Euler conserved variables.

Parameters
q(input, unused)
aux(auxiliary vars, unused)
pSVsolverVariables_t pointer contains position x and time
result(output vars, writing to this)

Reimplemented from WmApplication.

◆ getOutputVariableIndexes()

const std::vector< int > & wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::getOutputVariableIndexes ( int  flag) const
inlineoverridevirtual

Reimplemented from wxm::app_base.

◆ setup()

void wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::setup ( const WxCryptSet wxc)
overridevirtual

Determine all states and wave speeds given initial pritimive variable left and right conditions for the Riemann Problem.

This is an implementation of the solution described in sections 14.11 and 14.12 of "Finite Volume Methods for Hyperbolic Problems" by Randall J. Leveque, 2002.

Note: Input and Aux vars are not used as the analytic solution is directly calculated.

Parameters
WxCryptSetwxc which should contain GAS_GAMMA, "LeftPrimitiveState", RightPrimitiveState", and "Fluid" variables that are being calculated as ouput.

Reimplemented from WmApplication.

Member Data Documentation

◆ _gas_gamma

real wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::_gas_gamma
protected

◆ _q_left

std::vector<real> wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::_q_left
protected

◆ _q_right

std::vector<real> wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::_q_right
protected

◆ _q_states

std::vector<std::vector<real> > wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::_q_states
protected

◆ _variables

std::vector<int> wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::_variables
protected

◆ _w_left

std::vector<real> wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::_w_left
protected

◆ _w_right

std::vector<real> wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::_w_right
protected

◆ _w_states

std::vector<std::vector<real> > wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::_w_states
protected

◆ _wave_speeds

std::vector<real> wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::_wave_speeds
protected

◆ _xc

real wxm::apps::five_moment::Euler1D_Riemann_Problem_Analytic_Solution::_xc
protected

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