enum { doPatternVolume = true
}
enum { doPatternSkeleton = true
}
enum { doAlphaVolume = true
}
enum { doAlphaSkeleton = true
}
enum { doAlphaBoundary = true
}
enum { doLambdaVolume = true
}
enum { doLambdaSkeleton = false
}
enum { doLambdaBoundary = false
}
typedef TP::Traits::RangeFieldType RealType
enum { doSkipEntity
}
Whether to do selective assembly on the elements, i.e. whether or not skip_entity() should be called. More...
enum { doSkipIntersection
}
Whether to do selective assembly on the intersections, i.e. whether or not skip_intersection() should be called. More...
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...
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...
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...
enum { doSkeletonTwoSided
}
Whether to visit the skeleton methods from both sides. More...
enum { isLinear
}
Wheter the local operator describes a linear problem. More...
ConvectionDiffusionCCFV (TP ¶m_)
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
template<typename EG , typename LFSU , typename X , typename LFSV , typename Y >
void jacobian_apply_volume (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, Y &y) const
template<typename EG , typename LFSU , typename X , typename LFSV , typename M >
void jacobian_volume (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, M &mat) const
template<typename IG , typename LFSU , typename X , typename LFSV , typename R >
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
template<typename IG , typename LFSU , typename X , typename LFSV , typename Y >
void jacobian_apply_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, Y &y_s, Y &y_n) const
template<typename IG , typename LFSU , typename X , typename LFSV , typename M >
void jacobian_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, M &mat_ss, M &mat_sn, M &mat_ns, M &mat_nn) const
template<typename EG , typename LFSU , typename X , typename LFSV , typename R >
void alpha_volume_post_skeleton (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, R &r) const
template<typename IG , typename LFSU , typename X , typename LFSV , typename R >
void alpha_boundary (const IG &ig , const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, R &r_s) const
template<typename IG , typename LFSU , typename X , typename LFSV , typename M >
void jacobian_boundary (const IG &ig , const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, M &mat_ss) const
template<typename EG , typename LFSV , typename R >
void lambda_volume (const EG &eg, const LFSV &lfsv, R &r) const
void setTime (typename TP::Traits::RangeFieldType t)
set time in parameter class
void preStep (typename TP::Traits::RangeFieldType time, typename TP::Traits::RangeFieldType dt, int stages)
to be called once before each time step
void preStage (typename TP::Traits::RangeFieldType time, int r)
to be called once before each stage
void postStage ()
to be called once at the end of each stage
TP::Traits::RangeFieldType suggestTimestep (typename TP::Traits::RangeFieldType dt) const
to be called once before each stage
void jacobian_apply_boundary (const IG &ig , const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, Y &y_s) const
apply local jacobian of the boundaryterm
template<typename IG , typename LFSU , typename X , typename LFSV , typename Y >
void jacobian_apply_boundary (const IG &ig , const LFSU &lfsu_s, const X &x_s, const X &z_s, const LFSV &lfsv_s, Y &y_s) const
apply local jacobian of the boundaryterm
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
TP::Traits::RangeFieldType getTime () const
get current time
void postStep ()
to be called once at the end of each time step
int getStage () const
get current stage
template<typename TP>
class Dune::PDELab::ConvectionDiffusionCCFV< TP >
a local operator for solving the linear convection-diffusion equation with CCFV
Note:
Works only on a grid that is parallel to the coordinate axes.
This formulation is valid for velocity fields which are non-divergence free.
Assumes that the tensor is diagonal !
Outflow boundary conditions should only be set on the outflow boundary
Template Parameters
TP model of ConvectionDiffusionParameterInterface