2 #ifndef DUNE_PDELAB_LAPLACEDIRICHLETCCFV_HH 3 #define DUNE_PDELAB_LAPLACEDIRICHLETCCFV_HH 4 #warning This file is deprecated and will be removed after the Dune-PDELab 2.4 release! Use the ConvectionDiffusionCCFV local operator from dune/pdelab/localoperator/convectiondiffusionccfv.hh instead! 6 #include<dune/common/exceptions.hh> 7 #include<dune/common/fvector.hh> 8 #include<dune/geometry/referenceelements.hh> 42 DUNE_DEPRECATED_MSG(
"Deprecated in Dune-PDELab 2.4, use the local operator ConvectionDiffusionCCFV instead!")
47 template<
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename R>
49 const LFSU& lfsu_s,
const X& x_s,
const LFSV& lfsv_s,
50 const LFSU& lfsu_n,
const X& x_n,
const LFSV& lfsv_n,
54 typedef typename LFSU::Traits::FiniteElementType::
55 Traits::LocalBasisType::Traits::DomainFieldType DF;
56 typedef typename LFSU::Traits::FiniteElementType::
57 Traits::LocalBasisType::Traits::RangeFieldType RF;
60 const Dune::FieldVector<DF,IG::dimension-1>&
61 face_local = Dune::ReferenceElements<DF,IG::dimension-1>::general(ig.geometry().type()).position(0,0);
64 RF face_volume = ig.geometry().integrationElement(face_local)
65 *Dune::ReferenceElements<DF,IG::dimension-1>::general(ig.geometry().type()).volume();
68 const Dune::FieldVector<DF,IG::dimension>&
69 inside_local = Dune::ReferenceElements<DF,IG::dimension>::general(ig.inside()->type()).position(0,0);
70 const Dune::FieldVector<DF,IG::dimension>&
71 outside_local = Dune::ReferenceElements<DF,IG::dimension>::general(ig.outside()->type()).position(0,0);
74 Dune::FieldVector<DF,IG::dimension>
75 inside_global = ig.inside()->geometry().global(inside_local);
76 Dune::FieldVector<DF,IG::dimension>
77 outside_global = ig.outside()->geometry().global(outside_local);
78 inside_global -= outside_global;
79 RF distance = inside_global.two_norm();
82 r_s.accumulate(lfsu_s,0,(x_s(lfsu_s,0)-x_n(lfsu_n,0))*face_volume/distance);
83 r_n.accumulate(lfsu_n,0,-(x_s(lfsu_s,0)-x_n(lfsu_n,0))*face_volume/distance);
88 template<
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename R>
90 const LFSU& lfsu_s,
const X& x_s,
const LFSV& lfsv_s,
94 typedef typename LFSU::Traits::FiniteElementType::
95 Traits::LocalBasisType::Traits::DomainFieldType DF;
96 typedef typename LFSU::Traits::FiniteElementType::
97 Traits::LocalBasisType::Traits::RangeFieldType RF;
100 const Dune::FieldVector<DF,IG::dimension-1>&
101 face_local = Dune::ReferenceElements<DF,IG::dimension-1>::general(ig.geometry().type()).position(0,0);
104 RF face_volume = ig.geometry().integrationElement(face_local)
105 *Dune::ReferenceElements<DF,IG::dimension-1>::general(ig.geometry().type()).volume();
108 const Dune::FieldVector<DF,IG::dimension>&
109 inside_local = Dune::ReferenceElements<DF,IG::dimension>::general(ig.inside()->type()).position(0,0);
112 Dune::FieldVector<DF,IG::dimension>
113 inside_global = ig.inside()->geometry().global(inside_local);
114 Dune::FieldVector<DF,IG::dimension>
115 outside_global = ig.geometry().global(face_local);
116 inside_global -= outside_global;
117 RF distance = inside_global.two_norm();
120 typename G::Traits::DomainType x = ig.geometryInInside().global(face_local);
121 typename G::Traits::RangeType y;
122 g.evaluate(*(ig.inside()),x,y);
125 r_s.accumulate(lfsu_s,0,(x_s(lfsu_s,0)-y[0])*face_volume/distance);
sparsity pattern generator
Definition: pattern.hh:13
Implements linear and nonlinear versions of jacobian_apply_skeleton() based on alpha_skeleton() ...
Definition: numericaljacobianapply.hh:180
const IG & ig
Definition: constraints.hh:148
Implement jacobian_boundary() based on alpha_boundary()
Definition: numericaljacobian.hh:250
Definition: adaptivity.hh:27
sparsity pattern generator
Definition: pattern.hh:29
Implements linear and nonlinear versions of jacobian_apply_boundary() based on alpha_boundary() ...
Definition: numericaljacobianapply.hh:285
Definition: laplacedirichletccfv.hh:40
Default flags for all local operators.
Definition: flags.hh:18
void alpha_boundary(const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, R &r_s) const
Definition: laplacedirichletccfv.hh:89
Definition: laplacedirichletccfv.hh:25
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
Definition: laplacedirichletccfv.hh:48
Definition: laplacedirichletccfv.hh:36
Definition: laplacedirichletccfv.hh:35
Definition: laplacedirichletccfv.hh:39
Implement jacobian_skeleton() based on alpha_skeleton()
Definition: numericaljacobian.hh:156