IFEM 90A354
GlbL2projector.h
Go to the documentation of this file.
1// $Id$
2//==============================================================================
12//==============================================================================
13
14#ifndef _GLB_L2_PROJECTOR_H
15#define _GLB_L2_PROJECTOR_H
16
17#include "LinAlgenums.h"
18#include "MatVec.h"
19
20class ASMbase;
21class IntegrandBase;
22class FunctionBase;
23class LinSolParams;
24class ProcessAdm;
25
26
27namespace GlbL2
28{
31 extern const ProcessAdm* Adm;
32}
33
34
40{
41public:
44 L2Integrand(const ASMbase& patch) : m_patch(patch) { myTime = 0.0; }
46 virtual ~L2Integrand() {}
47
51 virtual bool evaluate(Matrix& sField, const RealArray* gpar) const = 0;
52
54 virtual size_t dim() const = 0;
55
57 double getTimeLevel() const { return myTime; }
58
59protected:
61 double myTime;
62};
63
64
70{
71public:
75 L2ProbIntegrand(const ASMbase& patch, const IntegrandBase& itg);
76
80 bool evaluate(Matrix& sField, const RealArray* gpar) const override;
81
83 size_t dim() const override;
84
85private:
87};
88
89
95{
96public:
101 L2FuncIntegrand(const ASMbase& patch,
102 const FunctionBase& func,
103 double time = 0.0);
104
108 bool evaluate(Matrix& sField, const RealArray* gpar) const override;
109
111 size_t dim() const override;
112
113private:
115};
116
117#endif
std::vector< Real > RealArray
A real-valued array without algebraic operations.
Definition ImmersedBoundaries.h:32
Various enums for linear algebra scope.
Global algebraic operations on index 1-based matrices and vectors.
Base class for spline-based finite element (FE) assembly drivers.
Definition ASMbase.h:72
Base class for unary spatial functions of arbitrary result type.
Definition Function.h:147
Base class representing a system level integrated quantity.
Definition IntegrandBase.h:42
Evaluation class for functions.
Definition GlbL2projector.h:95
bool evaluate(Matrix &sField, const RealArray *gpar) const override
Evaluates the function in a set of points.
Definition GlbL2projector.C:141
const FunctionBase & m_func
Reference to function.
Definition GlbL2projector.h:114
size_t dim() const override
Returns number of function components.
Definition GlbL2projector.C:171
Abstract class for evaluating integrand or function.
Definition GlbL2projector.h:40
virtual size_t dim() const =0
Returns dimension of entity to evaluate.
double myTime
Current time or load parameter.
Definition GlbL2projector.h:61
double getTimeLevel() const
Returns current time/load parameter for 2ndary solution evaluation.
Definition GlbL2projector.h:57
virtual ~L2Integrand()
Empty destructor.
Definition GlbL2projector.h:46
L2Integrand(const ASMbase &patch)
The constructor initializes the patch reference.
Definition GlbL2projector.h:44
const ASMbase & m_patch
Reference to ASM holding geometry.
Definition GlbL2projector.h:60
virtual bool evaluate(Matrix &sField, const RealArray *gpar) const =0
Evaluates the entity in a set of points.
Evaluation class for secondary solutions of an integrand.
Definition GlbL2projector.h:70
bool evaluate(Matrix &sField, const RealArray *gpar) const override
Evaluates the secondary solutions in a set of points.
Definition GlbL2projector.C:121
size_t dim() const override
Returns number of secondary solutions.
Definition GlbL2projector.C:127
const IntegrandBase & m_itg
Reference to integrand.
Definition GlbL2projector.h:86
Class for linear solver parameters.
Definition LinSolParams.h:67
Class for administration of MPI processes in IFEM library.
Definition ProcessAdm.h:33
Global control parameters for L2-projection.
Definition GlbL2projector.C:35
LinSolParams * SolverParams
Linear solver parameters for the global L2-projection (version 1 only)
Definition GlbL2projector.C:39
const ProcessAdm * Adm
Process administrator for the global L2-projection (version 1 only)
Definition GlbL2projector.C:41
LinAlg::MatrixType MatrixType
Matrix type for global L2-projection (version 1 only)
Definition GlbL2projector.C:37
MatrixType
The available system matrix formats and associated solvers.
Definition LinAlgenums.h:22