PhyStar  v0.0.0 thu24
solver::fluidsol::FDMSecondCenteralDiff< Type > Struct Template Reference

#include <FDMDiff.hpp>

Inheritance diagram for solver::fluidsol::FDMSecondCenteralDiff< Type >:
Collaboration diagram for solver::fluidsol::FDMSecondCenteralDiff< Type >:

Public Member Functions

virtual void updateAllCoef ()
 
auto & updateCoefDW ()
 
auto & updateCoefDP ()
 
auto & updateCoefDDW ()
 
auto & updateCoefDDP ()
 
auto & updateCoefInterpW2P ()
 
auto & updateCoefInterpP2W ()
 
auto & updateCoefDW2P ()
 
auto & updateCoefDP2W ()
 
auto & updateCoefDDP2W ()
 
auto & updateCoefHelm ()
 
template<typename T >
void diffAtRw (T in[], T out[], Real alpha=1., Real beta=0.)
 
template<typename T >
void diffAtRp (T in[], T out[], Real alpha=1., Real beta=0.)
 
template<typename T >
void diff2AtRw (T in[], T out[], Real alpha=1., Real beta=0.)
 
template<typename T >
void diff2AtRp (T in[], T out[], Real alpha=1., Real beta=0.)
 
template<typename T >
void interpFromRwToRp (T in[], T out[], Real alpha=1., Real beta=0.)
 
template<typename T >
void interpFromRpToRw (T in[], T out[], Real alpha=1., Real beta=0.)
 
template<typename T >
void diffFromRpToRw (T in[], T out[], Real alpha=1., Real beta=0.)
 
template<typename T >
void diffFromRwToRp (T in[], T out[], Real alpha=1., Real beta=0.)
 
template<typename T0 , typename T1 >
void solveHelmholtzAtRp (T0 lam[], T1 rhs[], T1 out[], const boxffd::BoundaryType btype0=boxffd::BoundaryType::Neumann, const T0 bval0=0., const boxffd::BoundaryType btype1=boxffd::BoundaryType::Neumann, const T0 bval1=0.)
 Solve helmholtz equation f''+lam f=rhs. More...
 
template<typename T0 , typename T1 >
void explicitBoundaryAtRp (T0 in[], const boxffd::BoundaryType btype0=boxffd::BoundaryType::Neumann, const T1 bval0=0., const boxffd::BoundaryType btype1=boxffd::BoundaryType::Neumann, const T1 bval1=0.)
 
template<typename T0 , typename T1 >
void explicitBoundaryAtRw (T0 in[], const boxffd::BoundaryType btype0=boxffd::BoundaryType::Neumann, const T1 bval0=0., const boxffd::BoundaryType btype1=boxffd::BoundaryType::Neumann, const T1 bval1=0.)
 
- Public Member Functions inherited from solver::fluidsol::FDMDiffBase
auto & setMesh (const int num, const Real R[], FDMWPTag tag)
 
auto & setMeshFromRw (const int num, const Real R[])
 
auto & updateGhostMesh (int ghost)
 

Additional Inherited Members

- Public Attributes inherited from solver::fluidsol::FDMDiffBase
int nm
 
int gh = 1
 
blin::Array2r coef_dw
 
blin::Array2r coef_dp
 
blin::Array2r coef_dw2p
 
blin::Array2r coef_dp2w
 
blin::Array2r coef_ddw
 
blin::Array2r coef_ddp
 
blin::Array2r coef_interp_w2p
 
blin::Array2r coef_interp_p2w
 
blin::Array2r coef_ddw2p
 
blin::Array2r coef_ddp2w
 
blin::Array1r xw
 
blin::Array1r xp
 
blin::Array1r helm_u
 
blin::Array1r helm_l
 

Member Function Documentation

◆ diff2AtRp()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
template<typename T >
void solver::fluidsol::FDMSecondCenteralDiff< Type >::diff2AtRp ( in[],
out[],
Real  alpha = 1.,
Real  beta = 0. 
)
inline

◆ diff2AtRw()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
template<typename T >
void solver::fluidsol::FDMSecondCenteralDiff< Type >::diff2AtRw ( in[],
out[],
Real  alpha = 1.,
Real  beta = 0. 
)
inline

◆ diffAtRp()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
template<typename T >
void solver::fluidsol::FDMSecondCenteralDiff< Type >::diffAtRp ( in[],
out[],
Real  alpha = 1.,
Real  beta = 0. 
)
inline

◆ diffAtRw()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
template<typename T >
void solver::fluidsol::FDMSecondCenteralDiff< Type >::diffAtRw ( in[],
out[],
Real  alpha = 1.,
Real  beta = 0. 
)
inline

◆ diffFromRpToRw()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
template<typename T >
void solver::fluidsol::FDMSecondCenteralDiff< Type >::diffFromRpToRw ( in[],
out[],
Real  alpha = 1.,
Real  beta = 0. 
)
inline

◆ diffFromRwToRp()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
template<typename T >
void solver::fluidsol::FDMSecondCenteralDiff< Type >::diffFromRwToRp ( in[],
out[],
Real  alpha = 1.,
Real  beta = 0. 
)
inline

◆ explicitBoundaryAtRp()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
template<typename T0 , typename T1 >
void solver::fluidsol::FDMSecondCenteralDiff< Type >::explicitBoundaryAtRp ( T0  in[],
const boxffd::BoundaryType  btype0 = boxffd::BoundaryType::Neumann,
const T1  bval0 = 0.,
const boxffd::BoundaryType  btype1 = boxffd::BoundaryType::Neumann,
const T1  bval1 = 0. 
)
inline

◆ explicitBoundaryAtRw()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
template<typename T0 , typename T1 >
void solver::fluidsol::FDMSecondCenteralDiff< Type >::explicitBoundaryAtRw ( T0  in[],
const boxffd::BoundaryType  btype0 = boxffd::BoundaryType::Neumann,
const T1  bval0 = 0.,
const boxffd::BoundaryType  btype1 = boxffd::BoundaryType::Neumann,
const T1  bval1 = 0. 
)
inline

◆ interpFromRpToRw()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
template<typename T >
void solver::fluidsol::FDMSecondCenteralDiff< Type >::interpFromRpToRw ( in[],
out[],
Real  alpha = 1.,
Real  beta = 0. 
)
inline

◆ interpFromRwToRp()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
template<typename T >
void solver::fluidsol::FDMSecondCenteralDiff< Type >::interpFromRwToRp ( in[],
out[],
Real  alpha = 1.,
Real  beta = 0. 
)
inline

◆ solveHelmholtzAtRp()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
template<typename T0 , typename T1 >
void solver::fluidsol::FDMSecondCenteralDiff< Type >::solveHelmholtzAtRp ( T0  lam[],
T1  rhs[],
T1  out[],
const boxffd::BoundaryType  btype0 = boxffd::BoundaryType::Neumann,
const T0  bval0 = 0.,
const boxffd::BoundaryType  btype1 = boxffd::BoundaryType::Neumann,
const T0  bval1 = 0. 
)
inline

Solve helmholtz equation f''+lam f=rhs.

Template Parameters
T
T1
Parameters
lam
rhs
outf
btype0boundary type for lower boundary
bval0boundary value for lower boundary
btype1boundary type for upper boundary
bval1boudnary value for upper boundary
Returns
auto&

References solver::fluidsol::FDMDiffBase::coef_ddp, solver::fluidsol::boxffd::Dirichlet, solver::fluidsol::FDMSecondCenteralDiff< Type >::explicitBoundaryAtRp(), solver::fluidsol::FDMDiffBase::gh, solver::fluidsol::FDMDiffBase::helm_l, solver::fluidsol::FDMDiffBase::helm_u, solver::fluidsol::boxffd::Neumann, solver::fluidsol::FDMDiffBase::nm, and solver::fluidsol::FDMDiffBase::xp.

Here is the call graph for this function:

◆ updateAllCoef()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
virtual void solver::fluidsol::FDMSecondCenteralDiff< Type >::updateAllCoef ( )
inlinevirtual

Implements solver::fluidsol::FDMDiffBase.

References solver::fluidsol::FDMSecondCenteralDiff< Type >::updateCoefDW().

Here is the call graph for this function:

◆ updateCoefDDP()

◆ updateCoefDDP2W()

◆ updateCoefDDW()

◆ updateCoefDP()

◆ updateCoefDP2W()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
auto& solver::fluidsol::FDMSecondCenteralDiff< Type >::updateCoefDP2W ( )
inline

◆ updateCoefDW()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
auto& solver::fluidsol::FDMSecondCenteralDiff< Type >::updateCoefDW ( )
inline

◆ updateCoefDW2P()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
auto& solver::fluidsol::FDMSecondCenteralDiff< Type >::updateCoefDW2P ( )
inline

◆ updateCoefHelm()

template<FDMTAG_Type Type = FDMTAG_Type::Stretch>
auto& solver::fluidsol::FDMSecondCenteralDiff< Type >::updateCoefHelm ( )
inline

◆ updateCoefInterpP2W()

◆ updateCoefInterpW2P()


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