dune-pdelab
2.0.0
|
A local operator for solving the navier stokes equation using a DG discretization. More...
#include <dune/pdelab/localoperator/stokesdg.hh>
Public Types | |
typedef StokesBoundaryCondition | BC |
Boundary condition indicator type. More... | |
typedef PRM::Traits::RangeField | RF |
Common range field type. More... | |
typedef StokesDG< PRM, full_tensor > | StokesLocalOperator |
enum | { doPatternVolume = true } |
enum | { doPatternSkeleton = true } |
enum | { doSkeletonTwoSided = false } |
enum | { doAlphaVolume = true } |
enum | { doAlphaSkeleton = true } |
enum | { doAlphaBoundary = true } |
enum | { doLambdaVolume = true } |
enum | { doLambdaBoundary = true } |
typedef double | RealType |
Flags for the sparsity pattern | |
enum | { doPatternVolume } |
Whether to assemble the pattern on the elements, i.e. whether or not pattern_volume() should be called. More... | |
enum | { doPatternVolumePostSkeleton } |
Whether to assemble the pattern on the elements after the skeleton has been handled, i.e. whether or not pattern_volume_post_skeleton() should be called. More... | |
enum | { doPatternSkeleton } |
Whether to assemble the pattern on the interior intersections, i.e. whether or not pattern_skeleton() should be called. More... | |
enum | { doPatternBoundary } |
Whether to assemble the pattern on the boundary intersections, i.e. whether or not pattern_boundary() should be called. More... | |
Flags for the non-constant part of the residual and the jacobian | |
enum | { doAlphaVolume } |
Whether to call the local operator's alpha_volume(), jacobian_apply_volume() and jacobian_volume(). More... | |
enum | { doAlphaVolumePostSkeleton } |
Whether to call the local operator's alpha_volume_post_skeleton(), jacobian_apply_volume_post_skeleton() and jacobian_volume_post_skeleton(). More... | |
enum | { doAlphaSkeleton } |
Whether to call the local operator's alpha_skeleton(), jacobian_apply_skeleton() and jacobian_skeleton(). More... | |
enum | { doAlphaBoundary } |
Whether to call the local operator's alpha_boundary(), jacobian_apply_boundary() and jacobian_boundary(). More... | |
Flags for the constant part of the residual | |
enum | { doLambdaVolume } |
Whether to call the local operator's lambda_volume(). More... | |
enum | { doLambdaVolumePostSkeleton } |
Whether to call the local operator's lambda_volume_post_skeleton(). More... | |
enum | { doLambdaSkeleton } |
Whether to call the local operator's lambda_skeleton(). More... | |
enum | { doLambdaBoundary } |
Whether to call the local operator's lambda_boundary(). More... | |
Special flags | |
enum | { doSkeletonTwoSided } |
Whether to visit the skeleton methods from both sides. More... | |
Public Member Functions | |
NavierStokesDG (PRM &prm_, int superintegration_order_=0) | |
template<typename EG , typename LFSU , typename X , typename LFSV , typename LocalMatrix > | |
void | jacobian_volume (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, LocalMatrix &mat) const |
template<typename EG , typename LFSU , typename X , typename LFSV , typename R > | |
void | alpha_volume (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, R &r) const |
void | preStep (RealType time, RealType dt, int) |
template<typename EG , typename LFSV , typename R > | |
void | lambda_volume (const EG &eg, const LFSV &lfsv, R &r) const |
template<typename IG , typename LFSV , typename R > | |
void | lambda_boundary (const IG &ig, const LFSV &lfsv, R &r) const |
template<typename IG , typename LFSU , typename X , typename LFSV , typename LocalMatrix > | |
void | jacobian_skeleton (const IG &ig, const LFSU &lfsu_s, const X &, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &, const LFSV &lfsv_n, LocalMatrix &mat_ss, LocalMatrix &mat_sn, LocalMatrix &mat_ns, LocalMatrix &mat_nn) const |
template<typename IG , typename LFSU , typename X , typename LFSV , typename LocalMatrix > | |
void | jacobian_boundary (const IG &ig, const LFSU &lfsu, const X &x, const LFSV &lfsv, LocalMatrix &mat) const |
template<typename LFSU , typename LFSV , typename LocalPattern > | |
void | pattern_skeleton (const LFSU &lfsu_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const LFSV &lfsv_n, LocalPattern &pattern_sn, LocalPattern &pattern_ns) const |
template<typename LFSU , typename LFSV , typename LocalPattern > | |
void | pattern_volume (const LFSU &lfsu, const LFSV &lfsv, LocalPattern &pattern) const |
void | alpha_skeleton (const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const LFSV &lfsv_n, R &r_s, R &r_n) const |
compute ![]() | |
void | alpha_boundary (const IG &ig, const LFSU &lfsu, const X &x, const LFSV &lfsv, R &r) const |
compute ![]() | |
void | setTime (doublet_) |
set time for subsequent evaluation More... | |
double | getTime () const |
get current time More... | |
void | postStep () |
to be called once at the end of each time step More... | |
void | preStage (RealType time, int r) |
to be called once before each stage More... | |
int | getStage () const |
get current stage More... | |
void | postStage () |
to be called once at the end of each stage More... | |
RealType | suggestTimestep (RealType dt) const |
to be called after stage 1 More... | |
Protected Attributes | |
PRM & | prm |
int | superintegration_order |
Real | current_dt |
A local operator for solving the navier stokes equation using a DG discretization.
PRM | Parameter Class corresponding to the NavierStokesDGParameters interface |
full_tensor | Flag enabling the assembling of the full tensor for the viscous stress |
typedef StokesBoundaryCondition Dune::PDELab::NavierStokesDG< PRM, full_tensor >::BC |
Boundary condition indicator type.
|
inherited |
typedef PRM::Traits::RangeField Dune::PDELab::NavierStokesDG< PRM, full_tensor >::RF |
Common range field type.
typedef StokesDG<PRM,full_tensor> Dune::PDELab::NavierStokesDG< PRM, full_tensor >::StokesLocalOperator |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inline |
|
inlineinherited |
compute
References Dune::PDELab::LocalMatrix< T, W >::weightedAccumulationView().
|
inlineinherited |
|
inline |
|
inlineinherited |
get current stage
|
inlineinherited |
get current time
|
inlineinherited |
References Dune::PDELab::StokesDG< PRM, full_tensor >::current_dt, dim, Dune::PDELab::StokesDG< PRM, full_tensor >::prm, Dune::PDELab::StokesBoundaryCondition::SlipVelocity, Dune::PDELab::StokesDG< PRM, full_tensor >::superintegration_order, and Dune::PDELab::StokesBoundaryCondition::VelocityDirichlet.
|
inlineinherited |
|
inline |
|
inlineinherited |
References Dune::PDELab::StokesDG< PRM, full_tensor >::current_dt, dim, Dune::PDELab::StokesDG< PRM, full_tensor >::prm, Dune::PDELab::StokesBoundaryCondition::StressNeumann, Dune::PDELab::StokesDG< PRM, full_tensor >::superintegration_order, and Dune::PDELab::StokesBoundaryCondition::VelocityDirichlet.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
to be called once at the end of each stage
|
inlineinherited |
to be called once at the end of each time step
|
inlineinherited |
to be called once before each stage
time | Time of the stage |
r | Number of the stage, r ∈ [1, nstages] inclusive, where nstages is the number of stage in the step given in the previous call to preStep() |
|
inlineinherited |
|
inlineinherited |
set time for subsequent evaluation
This method set the time for subsequent calls to the alpha_*(), lambda_*(), jacobian_*() and jacobian_apply_*() methods.
|
inlineinherited |
to be called after stage 1
This may be called on the spatial local operator in the case of an explicit one step scheme. It is called after stage 1 has been assembled (so the time given to preStep() may not apply anymore in this case). All the alpha_*() and lambda_*() methods should have been called, so they are a good place to generate the information returned here.
|
protectedinherited |
Referenced by Dune::PDELab::StokesDG< PRM, full_tensor >::jacobian_boundary(), Dune::PDELab::StokesDG< PRM, full_tensor >::jacobian_skeleton(), Dune::PDELab::StokesDG< PRM, full_tensor >::jacobian_volume(), Dune::PDELab::StokesDG< PRM, full_tensor >::lambda_boundary(), and Dune::PDELab::StokesDG< PRM, full_tensor >::preStep().
|
protectedinherited |
Referenced by Dune::PDELab::NavierStokesDG< PRM, full_tensor >::alpha_volume(), Dune::PDELab::StokesDG< PRM, full_tensor >::jacobian_boundary(), Dune::PDELab::StokesDG< PRM, full_tensor >::jacobian_skeleton(), Dune::PDELab::StokesDG< PRM, full_tensor >::jacobian_volume(), Dune::PDELab::NavierStokesDG< PRM, full_tensor >::jacobian_volume(), Dune::PDELab::StokesDG< PRM, full_tensor >::lambda_boundary(), Dune::PDELab::StokesDG< PRM, full_tensor >::lambda_volume(), and Dune::PDELab::StokesDG< PRM, full_tensor >::preStep().
|
protectedinherited |
Referenced by Dune::PDELab::NavierStokesDG< PRM, full_tensor >::alpha_volume(), Dune::PDELab::StokesDG< PRM, full_tensor >::jacobian_boundary(), Dune::PDELab::StokesDG< PRM, full_tensor >::jacobian_skeleton(), Dune::PDELab::StokesDG< PRM, full_tensor >::jacobian_volume(), Dune::PDELab::NavierStokesDG< PRM, full_tensor >::jacobian_volume(), Dune::PDELab::StokesDG< PRM, full_tensor >::lambda_boundary(), and Dune::PDELab::StokesDG< PRM, full_tensor >::lambda_volume().