moments.hh
Go to the documentation of this file.
12 // TODO Some more documentation what this class is about, <emph>i.e.</emph> <grad_n u_h> as Mean value or for neumannboundary etc
106 typename concepts::HashMap<concepts::ElementMatrix<F> >::const_iterator iter = hashM_.find(edgeKey);
113 //sets a weight if input Quad is first underlying quad of edge E to w = 1 if it is the second w = -1, else
115 typename concepts::HashMap<concepts::Sequence<UnderlyingElement> >::const_iterator iter = uelm_.find(edgeKey);
142 //map representing the moments via hashM[E] = mean(moments) on Edge E corresponding to the first underlying Element (e.g. Quad) K
202 //map representing the moments via hashM[E] = moments on Edge E corresponding to first UnderlyingElement (e.g. Quad) K
203 //to get moments for the second underlying element K', moments just have to be multiplicated with (-1)
213 //add routine for higher Moments, @pre Edge E is the k-th Edge of Quad K with Quad->p()={px,py}, and K is the first uelm of E.
217 const concepts::InnerResidual<F>& innerRes, const hp2D::ApproxMoments<F>& apprxMoments, concepts::HashMap<concepts::Vector<Real> >& rhs);
221 void solve_(const geometry::VtxToPatchMaps& patchMap, concepts::HashMap<concepts::Vector<Real> >& vec);
224 void precomputeInverse_(const geometry::VtxToPatchMaps& patchMap, concepts::HashMap<concepts::Vector<Real> >& rhs);
concepts::HashMap< concepts::DenseMatrix< Real > > ddInvM_
Definition: moments.hh:284
Definition: moments.hh:174
Real getWeight(uint quadKey, uint edgeKey) const
Definition: moments.hh:114
void addDirichlet(uint attrb)
Add homogeneous dirichlet data since integration rountines later need that information.
Definition: moments.hh:92
void solveNN_(concepts::Vector< Real > &patchRhs)
concepts::HashMap< concepts::ElementMatrix< F > > hashM_
Definition: moments.hh:143
Definition: parsedFormula.hh:94
concepts::HashMap< concepts::Array< Real > > innerCircM_
Definition: moments.hh:275
void solve_(const geometry::VtxToPatchMaps &patchMap, concepts::HashMap< concepts::Vector< Real > > &vec)
concepts::HashMap< concepts::Vector< F > > hashM_
Definition: moments.hh:204
void addNeumann(concepts::ParsedFormula< F > &frm, uint attrib)
Add Neumann data since integration rountines later need that information.
Definition: moments.hh:75
void buildRhs_(const geometry::VtxToPatchMaps &patchMap, const concepts::InnerResidual< F > &innerRes, const hp2D::ApproxMoments< F > &apprxMoments, concepts::HashMap< concepts::Vector< Real > > &rhs)
const concepts::SpaceOnCells< Real > & spc_
Definition: moments.hh:200
#define conceptsAssert(cond, exc)
Assert that a certain condition is fulfilled.
Definition: exceptions.hh:394
void addNeumann(concepts::ParsedFormula< F > &frm, concepts::Set< uint > &set)
Add Neumann data since integration rountines later need that information.
Definition: moments.hh:64
void computeID_()
concepts::Sequence< concepts::Set< uint > > nAttrbs_
Definition: moments.hh:162
void initMoments_(const geometry::VtxToPatchMaps &patchMap)
void solveDD_(concepts::Vector< Real > &patchRhs)
concepts::HashMap< concepts::DenseMatrix< Real > > nnInvM_
Definition: moments.hh:278
ApproxMoments(const concepts::SpaceOnCells< F > &spc, const concepts::Vector< F > &sol)
void precomputeDNInverse_(const concepts::Set< uint > &dSet)
void solveInner_(concepts::Vector< Real > &patchRhs)
EquilibratedMomentsAO(const concepts::SpaceOnCells< F > &spc, const geometry::VtxToPatchMaps &patchMap, const concepts::InnerResidual< F > &innerRes, const hp2D::ApproxMoments< F > &apprxMoments)
concepts::HashMap< concepts::DenseMatrix< Real > > dnInvM_
Definition: moments.hh:281
void computeN_()
void precomputeDDInverse_(const concepts::Set< uint > &dSet)
concepts::HashMap< concepts::Sequence< UnderlyingElement > > uelm_
Definition: moments.hh:151
concepts::Sequence< concepts::ParsedFormula< F > > frms_
Definition: moments.hh:160
void solveDN_(concepts::Vector< Real > &patchRhs)
Definition: moments.hh:48
const hp2D::ApproxMoments< F > & apprxMoments_
Definition: moments.hh:209
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
concepts::ElementAndFacette< hp2D::Element< F > > UnderlyingElement
Definition: moments.hh:178
Sequence with operations, output operator, and method of the particular element types.
Definition: sequence.hh:39
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Definition: hashMap.hh:19
const concepts::InnerResidual< F > & innerRes_
Definition: moments.hh:208
void precomputeNNInverse_(const concepts::Set< uint > &dSet)
void precomputeInnerInverse_(const concepts::Set< uint > &dSet)
concepts::ElementAndFacette< hp2D::Element< F > > UnderlyingElement
Definition: moments.hh:54
void precomputeInverse_(const geometry::VtxToPatchMaps &patchMap, concepts::HashMap< concepts::Vector< Real > > &rhs)
void addHigherMoments_(const uint K, const uint E, const uint k, const uint px, const uint py)
Class to build up maps form Vertexkeys to EdgePatches or ElementPatches.
Definition: patches.hh:486
void addDirichlet(concepts::Set< uint > &set)
Add homogeneous dirichlet data since integration rountines later need that information.
Definition: moments.hh:84
const concepts::ElementMatrix< F > & operator()(uint edgeKey) const
Definition: moments.hh:105
const concepts::Vector< F > & operator()(uint edgeKey) const
Definition: moments.hh:187
const concepts::HashMap< concepts::Sequence< UnderlyingElement > > & uelm_
Definition: moments.hh:287
virtual ~EquilibratedMomentsAO()
void computeMoments_(const geometry::VtxToPatchMaps &patchMap, const concepts::InnerResidual< F > &innerRes, const hp2D::ApproxMoments< F > &apprxMoments, concepts::HashMap< concepts::Vector< Real > > &sigma)
Container for an element and one facette (edge or face).
Definition: element.hh:113
void solveND_(concepts::Vector< Real > &patchRhs)
Definition: innerResidual.hh:54