Class xlifepp::BasicBilinearForm#

class BasicBilinearForm#

describes the base class of bilinear form on a space.

It is an abstract class

Subclassed by xlifepp::DoubleIntgBilinearForm, xlifepp::IntgBilinearForm, xlifepp::MatrixBilinearForm, xlifepp::UserBilinearForm

Public Functions

inline BasicBilinearForm(const Unknown *up = nullptr, const GeomDomain *dup = nullptr, const Unknown *vp = nullptr, const GeomDomain *dvp = nullptr)#

basic and default constructor

inline virtual ~BasicBilinearForm()#

virtual destructor

DoubleIntgBilinearForm *asDoubleIntgForm()#

downcast as DoubleIntgBilinearForm*

const DoubleIntgBilinearForm *asDoubleIntgForm() const#

downcast as const DoubleIntgBilinearForm*

IntgBilinearForm *asIntgForm()#

downcast as IntgBilinearForm*

const IntgBilinearForm *asIntgForm() const#

downcast as const IntgBilinearForm*

virtual string_t asString() const = 0#

interpret as string for print purpose

UserBilinearForm *asUserForm()#

downcast as const UserBilinearForm*

const UserBilinearForm *asUserForm() const#

downcast as const UserBilinearForm*

void checkUnknowns() const#

check the Unknown/TestFunction status of u_p and v_p

virtual BasicBilinearForm *clone() const = 0#

clone of the bilinear form

inline ComputationType &computationType()#

return the computation type

inline ComputationType computationType() const#

return the computation type

inline const GeomDomain &dom_up() const#

return the unknown domain

inline const GeomDomain &dom_vp() const#

return the test function domain

inline const GeomDomain &extDom_u() const#

return the extended domain u as reference

inline const GeomDomain *&extDom_up()#

to write extended domain u pointer

inline const GeomDomain *extDom_up() const#

to access to extended domain u pointer

inline const GeomDomain &extDom_v() const#

return the extended domain v as reference

inline const GeomDomain *&extDom_vp()#

to write extended domain v pointer

inline const GeomDomain *extDom_vp() const#

to access to extended domain v pointer

inline virtual bool hasJump() const#

true if bilinear form has jump, mean operator

virtual void print(PrintStream &ps) const = 0#

print utility

virtual void print(std::ostream &os) const = 0#

print utility

virtual SymType setSymType() const = 0#

set symmetry property

inline virtual void setUnknowns(const Unknown &u, const Unknown &v)#

set (change) the unknowns

inline virtual std::vector<bfPair> split() const#

< split BasicBilinearForm involving particular operator (jump, mean)

Space *subSpace_up()#

return the u subspace of the bilinear form, construct it if does not exist

Space *subSpace_vp()#

return the v subspace of the bilinear form, construct it if does not exist

inline SymType &symType()#

access to symmetry property

inline SymType symType() const#

access to symmetry property (const)

virtual LinearFormType type() const = 0#

return the type of the bilinear form

inline const Unknown &up() const#

return the unknown

virtual ValueType valueType() const = 0#

return the value type of the bilinear form

inline const Unknown &vp() const#

return the test function

Public Members

bool isoGeometric#

if true, use isoGeometric computation requiring parametrization (default false)

StorageBuildType sbType#

storage build type (_undefBuild, _feBuild, _dgBuild, _diagBuild, _ecBuild, …)

mutable SymType symmetry#

symmetry of the bilinear form ((_noSymmetry , _symmetric, _skewSymmetric, _selfAdjoint, _skewAdjoint)