Inheritence diagram for xlifepp::DoubleIntgBilinearForm:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="xlifepp::BasicBilinearForm" tooltip="xlifepp::BasicBilinearForm"]
"1" [label="xlifepp::DoubleIntgBilinearForm" tooltip="xlifepp::DoubleIntgBilinearForm" fillcolor="#BFBFBF"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}
Collaboration diagram for xlifepp::DoubleIntgBilinearForm:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"28" [label="xlifepp::Collection< string_t >" tooltip="xlifepp::Collection< string_t >"]
"21" [label="xlifepp::Matrix< real_t >" tooltip="xlifepp::Matrix< real_t >"]
"25" [label="xlifepp::Vector< real_t >" tooltip="xlifepp::Vector< real_t >"]
"36" [label="xlifepp::Vector< xlifepp::Vector< real_t > >" tooltip="xlifepp::Vector< xlifepp::Vector< real_t > >"]
"41" [label="std::list< std::pair< number_t, real_t > >" tooltip="std::list< std::pair< number_t, real_t > >"]
"17" [label="std::map< number_t, std::vector< number_t > >" tooltip="std::map< number_t, std::vector< number_t > >"]
"15" [label="std::map< number_t, xlifepp::Geometry * >" tooltip="std::map< number_t, xlifepp::Geometry * >"]
"40" [label="std::map< string_t, number_t >" tooltip="std::map< string_t, number_t >"]
"59" [label="std::map< string_t, std::pair< ValueType, StrucType > >" tooltip="std::map< string_t, std::pair< ValueType, StrucType > >"]
"56" [label="std::map< string_t, structPair >" tooltip="std::map< string_t, structPair >"]
"61" [label="std::map< xlifepp::GeomElement *, std::set< number_t > >" tooltip="std::map< xlifepp::GeomElement *, std::set< number_t > >"]
"42" [label="std::list< T >" tooltip="std::list< T >"]
"16" [label="std::map< K, T >" tooltip="std::map< K, T >"]
"12" [label="std::vector< T >" tooltip="std::vector< T >"]
"31" [label="std::vector< T >" tooltip="std::vector< T >"]
"24" [label="std::vector< K >" tooltip="std::vector< K >"]
"67" [label="std::vector< OpkuvValPair >" tooltip="std::vector< OpkuvValPair >"]
"11" [label="std::vector< RealPair >" tooltip="std::vector< RealPair >"]
"65" [label="std::vector< complex_t >" tooltip="std::vector< complex_t >"]
"47" [label="std::vector< const xlifepp::GeomDomain * >" tooltip="std::vector< const xlifepp::GeomDomain * >"]
"27" [label="std::vector< const xlifepp::Transformation * >" tooltip="std::vector< const xlifepp::Transformation * >"]
"32" [label="std::vector< number_t >" tooltip="std::vector< number_t >"]
"22" [label="std::vector< real_t >" tooltip="std::vector< real_t >"]
"46" [label="std::vector< std::vector< GeoNumPair > >" tooltip="std::vector< std::vector< GeoNumPair > >"]
"18" [label="std::vector< std::vector< int_t > >" tooltip="std::vector< std::vector< int_t > >"]
"29" [label="std::vector< string_t >" tooltip="std::vector< string_t >"]
"53" [label="std::vector< xlifepp::DifferentialOperator * >" tooltip="std::vector< xlifepp::DifferentialOperator * >"]
"45" [label="std::vector< xlifepp::GeomDomain * >" tooltip="std::vector< xlifepp::GeomDomain * >"]
"44" [label="std::vector< xlifepp::GeomElement * >" tooltip="std::vector< xlifepp::GeomElement * >"]
"70" [label="std::vector< xlifepp::IntgMeth >" tooltip="std::vector< xlifepp::IntgMeth >"]
"39" [label="std::vector< xlifepp::Parameter * >" tooltip="std::vector< xlifepp::Parameter * >"]
"14" [label="std::vector< xlifepp::Point >" tooltip="std::vector< xlifepp::Point >"]
"48" [label="std::vector< xlifepp::Space * >" tooltip="std::vector< xlifepp::Space * >"]
"33" [label="std::vector< xlifepp::Transformation * >" tooltip="std::vector< xlifepp::Transformation * >"]
"49" [label="std::vector< xlifepp::Unknown * >" tooltip="std::vector< xlifepp::Unknown * >"]
"37" [label="std::vector< xlifepp::Vector< real_t > >" tooltip="std::vector< xlifepp::Vector< real_t > >"]
"2" [label="xlifepp::BasicBilinearForm" tooltip="xlifepp::BasicBilinearForm"]
"10" [label="xlifepp::BoundingBox" tooltip="xlifepp::BoundingBox"]
"30" [label="xlifepp::Collection< T >" tooltip="xlifepp::Collection< T >"]
"52" [label="xlifepp::DifferentialOperator" tooltip="xlifepp::DifferentialOperator"]
"7" [label="xlifepp::DomainInfo" tooltip="xlifepp::DomainInfo"]
"1" [label="xlifepp::DoubleIntgBilinearForm" tooltip="xlifepp::DoubleIntgBilinearForm" fillcolor="#BFBFBF"]
"60" [label="xlifepp::Extension" tooltip="xlifepp::Extension"]
"19" [label="xlifepp::ExtrusionData" tooltip="xlifepp::ExtrusionData"]
"58" [label="xlifepp::Function" tooltip="xlifepp::Function"]
"43" [label="xlifepp::GeoNode" tooltip="xlifepp::GeoNode"]
"6" [label="xlifepp::GeomDomain" tooltip="xlifepp::GeomDomain"]
"9" [label="xlifepp::Geometry" tooltip="xlifepp::Geometry"]
"68" [label="xlifepp::IntegrationMethod" tooltip="xlifepp::IntegrationMethod"]
"69" [label="xlifepp::IntegrationMethods" tooltip="xlifepp::IntegrationMethods"]
"63" [label="xlifepp::Kernel" tooltip="xlifepp::Kernel"]
"64" [label="xlifepp::KernelExpansion" tooltip="xlifepp::KernelExpansion"]
"50" [label="xlifepp::KernelOperatorOnUnknowns" tooltip="xlifepp::KernelOperatorOnUnknowns"]
"66" [label="xlifepp::LcKernelOperatorOnUnknowns" tooltip="xlifepp::LcKernelOperatorOnUnknowns"]
"23" [label="xlifepp::Matrix< K >" tooltip="xlifepp::Matrix< K >"]
"8" [label="xlifepp::Mesh" tooltip="xlifepp::Mesh"]
"13" [label="xlifepp::MinimalBox" tooltip="xlifepp::MinimalBox"]
"54" [label="xlifepp::Operand" tooltip="xlifepp::Operand"]
"57" [label="xlifepp::OperatorOnFunction" tooltip="xlifepp::OperatorOnFunction"]
"62" [label="xlifepp::OperatorOnKernel" tooltip="xlifepp::OperatorOnKernel"]
"51" [label="xlifepp::OperatorOnUnknown" tooltip="xlifepp::OperatorOnUnknown"]
"38" [label="xlifepp::Parameters" tooltip="xlifepp::Parameters"]
"35" [label="xlifepp::Parametrization" tooltip="xlifepp::Parametrization"]
"34" [label="xlifepp::Point" tooltip="xlifepp::Point"]
"4" [label="xlifepp::Space" tooltip="xlifepp::Space"]
"5" [label="xlifepp::SpaceInfo" tooltip="xlifepp::SpaceInfo"]
"20" [label="xlifepp::Transformation" tooltip="xlifepp::Transformation"]
"3" [label="xlifepp::Unknown" tooltip="xlifepp::Unknown"]
"55" [label="xlifepp::Value" tooltip="xlifepp::Value"]
"26" [label="xlifepp::Vector< K >" tooltip="xlifepp::Vector< K >"]
"28" -> "29" [dir=forward tooltip="public-inheritance"]
"28" -> "30" [dir=forward tooltip="template-instance"]
"21" -> "22" [dir=forward tooltip="public-inheritance"]
"21" -> "23" [dir=forward tooltip="template-instance"]
"25" -> "22" [dir=forward tooltip="public-inheritance"]
"25" -> "26" [dir=forward tooltip="template-instance"]
"36" -> "37" [dir=forward tooltip="public-inheritance"]
"36" -> "26" [dir=forward tooltip="template-instance"]
"41" -> "42" [dir=forward tooltip="template-instance"]
"17" -> "16" [dir=forward tooltip="template-instance"]
"15" -> "16" [dir=forward tooltip="template-instance"]
"40" -> "16" [dir=forward tooltip="template-instance"]
"59" -> "16" [dir=forward tooltip="template-instance"]
"56" -> "16" [dir=forward tooltip="template-instance"]
"61" -> "16" [dir=forward tooltip="template-instance"]
"24" -> "12" [dir=forward tooltip="template-instance"]
"67" -> "12" [dir=forward tooltip="template-instance"]
"11" -> "12" [dir=forward tooltip="template-instance"]
"65" -> "12" [dir=forward tooltip="template-instance"]
"47" -> "12" [dir=forward tooltip="template-instance"]
"27" -> "12" [dir=forward tooltip="template-instance"]
"32" -> "12" [dir=forward tooltip="template-instance"]
"22" -> "12" [dir=forward tooltip="template-instance"]
"46" -> "12" [dir=forward tooltip="template-instance"]
"18" -> "12" [dir=forward tooltip="template-instance"]
"29" -> "12" [dir=forward tooltip="template-instance"]
"53" -> "12" [dir=forward tooltip="template-instance"]
"45" -> "12" [dir=forward tooltip="template-instance"]
"44" -> "12" [dir=forward tooltip="template-instance"]
"70" -> "12" [dir=forward tooltip="template-instance"]
"39" -> "12" [dir=forward tooltip="template-instance"]
"14" -> "12" [dir=forward tooltip="template-instance"]
"48" -> "12" [dir=forward tooltip="template-instance"]
"33" -> "12" [dir=forward tooltip="template-instance"]
"49" -> "12" [dir=forward tooltip="template-instance"]
"37" -> "12" [dir=forward tooltip="template-instance"]
"2" -> "3" [dir=forward tooltip="usage"]
"2" -> "6" [dir=forward tooltip="usage"]
"10" -> "11" [dir=forward tooltip="usage"]
"30" -> "31" [dir=forward tooltip="public-inheritance"]
"52" -> "53" [dir=forward tooltip="usage"]
"7" -> "8" [dir=forward tooltip="usage"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
"1" -> "50" [dir=forward tooltip="usage"]
"1" -> "66" [dir=forward tooltip="usage"]
"1" -> "68" [dir=forward tooltip="usage"]
"1" -> "69" [dir=forward tooltip="usage"]
"60" -> "6" [dir=forward tooltip="usage"]
"60" -> "61" [dir=forward tooltip="usage"]
"19" -> "20" [dir=forward tooltip="usage"]
"19" -> "28" [dir=forward tooltip="usage"]
"19" -> "32" [dir=forward tooltip="usage"]
"19" -> "22" [dir=forward tooltip="usage"]
"19" -> "25" [dir=forward tooltip="usage"]
"19" -> "33" [dir=forward tooltip="usage"]
"19" -> "34" [dir=forward tooltip="usage"]
"58" -> "38" [dir=forward tooltip="usage"]
"58" -> "58" [dir=forward tooltip="usage"]
"58" -> "34" [dir=forward tooltip="usage"]
"58" -> "59" [dir=forward tooltip="usage"]
"43" -> "43" [dir=forward tooltip="usage"]
"43" -> "9" [dir=forward tooltip="usage"]
"6" -> "7" [dir=forward tooltip="usage"]
"6" -> "6" [dir=forward tooltip="usage"]
"6" -> "9" [dir=forward tooltip="usage"]
"6" -> "47" [dir=forward tooltip="usage"]
"9" -> "10" [dir=forward tooltip="usage"]
"9" -> "13" [dir=forward tooltip="usage"]
"9" -> "15" [dir=forward tooltip="usage"]
"9" -> "17" [dir=forward tooltip="usage"]
"9" -> "18" [dir=forward tooltip="usage"]
"9" -> "19" [dir=forward tooltip="usage"]
"9" -> "35" [dir=forward tooltip="usage"]
"9" -> "9" [dir=forward tooltip="usage"]
"9" -> "43" [dir=forward tooltip="usage"]
"69" -> "70" [dir=forward tooltip="usage"]
"63" -> "58" [dir=forward tooltip="usage"]
"63" -> "63" [dir=forward tooltip="usage"]
"63" -> "64" [dir=forward tooltip="usage"]
"63" -> "38" [dir=forward tooltip="usage"]
"63" -> "34" [dir=forward tooltip="usage"]
"64" -> "58" [dir=forward tooltip="usage"]
"50" -> "51" [dir=forward tooltip="usage"]
"50" -> "62" [dir=forward tooltip="usage"]
"66" -> "67" [dir=forward tooltip="public-inheritance"]
"23" -> "24" [dir=forward tooltip="public-inheritance"]
"8" -> "9" [dir=forward tooltip="usage"]
"8" -> "14" [dir=forward tooltip="usage"]
"8" -> "44" [dir=forward tooltip="usage"]
"8" -> "45" [dir=forward tooltip="usage"]
"8" -> "32" [dir=forward tooltip="usage"]
"8" -> "46" [dir=forward tooltip="usage"]
"8" -> "8" [dir=forward tooltip="usage"]
"13" -> "14" [dir=forward tooltip="usage"]
"54" -> "55" [dir=forward tooltip="usage"]
"54" -> "57" [dir=forward tooltip="usage"]
"54" -> "62" [dir=forward tooltip="usage"]
"57" -> "58" [dir=forward tooltip="usage"]
"57" -> "52" [dir=forward tooltip="usage"]
"57" -> "60" [dir=forward tooltip="usage"]
"62" -> "63" [dir=forward tooltip="usage"]
"62" -> "52" [dir=forward tooltip="usage"]
"62" -> "60" [dir=forward tooltip="usage"]
"51" -> "3" [dir=forward tooltip="usage"]
"51" -> "52" [dir=forward tooltip="usage"]
"51" -> "54" [dir=forward tooltip="usage"]
"51" -> "65" [dir=forward tooltip="usage"]
"51" -> "6" [dir=forward tooltip="usage"]
"38" -> "39" [dir=forward tooltip="usage"]
"38" -> "40" [dir=forward tooltip="usage"]
"35" -> "9" [dir=forward tooltip="usage"]
"35" -> "25" [dir=forward tooltip="usage"]
"35" -> "36" [dir=forward tooltip="usage"]
"35" -> "8" [dir=forward tooltip="usage"]
"35" -> "38" [dir=forward tooltip="usage"]
"35" -> "41" [dir=forward tooltip="usage"]
"34" -> "22" [dir=forward tooltip="public-inheritance"]
"4" -> "4" [dir=forward tooltip="usage"]
"4" -> "5" [dir=forward tooltip="usage"]
"4" -> "48" [dir=forward tooltip="usage"]
"5" -> "6" [dir=forward tooltip="usage"]
"20" -> "21" [dir=forward tooltip="usage"]
"20" -> "25" [dir=forward tooltip="usage"]
"20" -> "27" [dir=forward tooltip="usage"]
"3" -> "4" [dir=forward tooltip="usage"]
"3" -> "3" [dir=forward tooltip="usage"]
"3" -> "49" [dir=forward tooltip="usage"]
"55" -> "56" [dir=forward tooltip="usage"]
"26" -> "24" [dir=forward tooltip="public-inheritance"]
}
describes a bilinear form based on a double integral
intg_domain_v intg_domain_u opu(y) aopu opker(x,y) aopv opv(x) dy dx
with opu, opv: operator on u and v aopu, aopv: algebraic operation (*,|,%,^) opker: operator on a kernel function
note: when kernel = 1 the pointer to kernel function in opker is ker_p=0 ! Be cautious with order of domain, first if for v-domain, second for u-domain
Actually, two ways to handle some integration methods: by pointer to an IntegrationMethod object, so only one integration method (old way, should disappear in futur) by an IntegrationMethods object that handles some IntegrationMethod (new way)
Public Functions
DoubleIntgBilinearForm ( const DoubleIntgBilinearForm & dibf )
copy constructor
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const KernelOperatorOnUnknowns & kopus , const IntegrationMethod & im , SymType st )
basic constructor
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const KernelOperatorOnUnknowns & kopus , const IntegrationMethods & ims , SymType st )
basic constructor
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const KernelOperatorOnUnknowns & kopus , QuadRule qr1 , number_t qo1 , QuadRule qr2 , number_t qo2 , SymType st )
basic constructor
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const LcKernelOperatorOnUnknowns & lckopus , const IntegrationMethod & im , SymType st )
basic constructor
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const LcKernelOperatorOnUnknowns & lckopus , const IntegrationMethods & ims , SymType st )
basic constructor
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const LcKernelOperatorOnUnknowns & lckopus , QuadRule qr1 , number_t qo1 , QuadRule qr2 , number_t qo2 , SymType st )
basic constructor
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const OperatorOnUnknown & opu , AlgebraicOperator aop , const OperatorOnUnknown & opv , const IntegrationMethod & im , SymType st )
constructor from unknown operators (no kernel)
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const OperatorOnUnknown & opu , AlgebraicOperator aop , const OperatorOnUnknown & opv , const IntegrationMethods & ims , SymType st )
constructor from unknown operators (no kernel)
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const OperatorOnUnknown & opu , AlgebraicOperator aop , const OperatorOnUnknown & opv , QuadRule qr1 , number_t qo1 , QuadRule qr2 , number_t qo2 , SymType st )
constructor from unknown operators (no kernel)
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const OperatorOnUnknown & opu , AlgebraicOperator aopu , const Kernel & ker , AlgebraicOperator aopv , const OperatorOnUnknown & opv , const IntegrationMethod & im , SymType st )
constructor from unknown operators and kernel
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const OperatorOnUnknown & opu , AlgebraicOperator aopu , const Kernel & ker , AlgebraicOperator aopv , const OperatorOnUnknown & opv , const IntegrationMethods & ims , SymType st )
constructor from unknown operators and kernel
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const OperatorOnUnknown & opu , AlgebraicOperator aopu , const Kernel & ker , AlgebraicOperator aopv , const OperatorOnUnknown & opv , QuadRule qr1 , number_t qo1 , QuadRule qr2 , number_t qo2 , SymType st )
constructor from unknown operators and kernel//accessors
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const OperatorOnUnknown & opu , AlgebraicOperator aopu , const OperatorOnKernel & opker , AlgebraicOperator aopv , const OperatorOnUnknown & opv , const IntegrationMethod & im , SymType st )
constructor from unknown operators and operator on kernel
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const OperatorOnUnknown & opu , AlgebraicOperator aopu , const OperatorOnKernel & opker , AlgebraicOperator aopv , const OperatorOnUnknown & opv , const IntegrationMethods & ims , SymType st )
constructor from unknown operators and operator on kernel
DoubleIntgBilinearForm ( const GeomDomain & domu , const GeomDomain & domv , const OperatorOnUnknown & opu , AlgebraicOperator aopu , const OperatorOnKernel & opker , AlgebraicOperator aopv , const OperatorOnUnknown & opv , QuadRule qr1 , number_t qo1 , QuadRule qr2 , number_t qo2 , SymType st )
constructor from unknown operators and operator on kernel
~DoubleIntgBilinearForm ( )
destructor
inline AlgebraicOperator algopu ( ) const
return the algebraic operator on u
inline AlgebraicOperator algopv ( ) const
return the algebraic operator on v
virtual string_t asString ( ) const
interpret as string for print purpose
void checkCollinoIM ( const IntegrationMethod * )
check that CollinoIM is available for the double integral
virtual BasicBilinearForm * clone ( ) const
clone of the linear form
inline DomainPair domains ( ) const
return the pair of domain pointers
inline const GeomDomain * domainx ( ) const
return the pointer to the x domain, say v-domain
inline const GeomDomain * domainy ( ) const
return the pointer to the y domain, say u-domain
inline const IntegrationMethod * intgMethod ( ) const
return the pointer to the integration method
inline const KernelOperatorOnUnknowns & kopus ( ) const
return KernelOperatorOnUnknowns reference (const)
inline const KernelOperatorOnUnknowns * kopusp ( ) const
return KernelOperatorOnUnknowns pointer (const)
inline const KernelOperatorOnUnknowns & kopuv ( ) const
return KernelOperatorOnUnknowns reference
inline const LcKernelOperatorOnUnknowns & lckopus ( ) const
return KernelOperatorOnUnknowns reference (const)
inline const LcKernelOperatorOnUnknowns * lckopusp ( ) const
return KernelOperatorOnUnknowns pointer (const)
DoubleIntgBilinearForm & operator = ( const DoubleIntgBilinearForm & dibf )
assign operator
inline const OperatorOnKernel & opker ( ) const
return the pointer to the operator on kernel
inline const OperatorOnUnknown & opu ( ) const
return the pointer to the operator on unknown
inline const OperatorOnUnknown & opv ( ) const
return the pointer to the operator on unknown
inline virtual void print ( PrintStream & ps ) const
print utility
virtual void print ( std :: ostream & os ) const
print utility
void setComputationType ( )
set computation type (_IEComputation,_IEExtComputation,IEHMatrixComputation, ..)
void setHMIntegrationMethods ( )
check and update quadrature pointers of IntegrationsMethods when a HMatrixIM
void setIntegrationMethod ( const GeomDomain & domu , const GeomDomain & domv , const KernelOperatorOnUnknowns & kopus , QuadRule qr1 , number_t qo1 , QuadRule qr2 , number_t qo2 )
set IntegrationMethod for quadrature product rule
void setIntegrationMethods ( )
check and update quadrature pointers of IntegrationsMethods
check and set quadrature pointers of IntegrationsMethods if they are not set
if intgMethods is empty if kernel is singular (Kernel::singularType !=_notSingular) add if possible
a well suited singular quadrature method applied to adjacent elements (dist=0)
some regular quadrature products applied to non adjacent elements (one for 0<dist<=1, one for 1<dist<=2 and one for dist>2) if kernel is regular (Kernel::singularType ==_notSingular) add
a regular quadrature products if intgMethods contains only a singular quadrature if kernel is regular stop on error if kernel is singular, check if singular quadrature is consistent if not stop on error else add some regular quadrature products applied to non adjacent elements (one for 0<dist<=1, one for 1<dist<=2 and one for dist>2) if intgMethods contains only a regular quadrature if kernel is regular check if it is consistent if kernel is singular add a well suited singular quadrature method applied to adjacent elements (dist=0) if intgMethods are more than one integration method if kernel is singular, check if there is only one consistent singular quadrature for dist=0, if not stop on error if there is no regular quadrature, add some if kernel is regular, check that all are regular quadratures
At the end of the process, produce an intgMethods vector consistent with the Kernel In a second step, update pointers of quadrature if required
virtual SymType setSymType ( ) const
return the value type of the bilinear form
find symmetry property (_noSymmetry , _symmetric, _skewSymmetric, _selfAdjoint) of bilinear form, used to set symmetry parameter Here only simple cases.
return symmetry property (_noSymmetry, _symmetric, _skewSymmetric, _selfAdjoint, _skewAdjoint)
In more complex cases, the user may enforce symmetry by specifying sym argument in constructors of bilinear form To be improved…
virtual void setUnknowns ( const Unknown & u , const Unknown & v )
set (change) the unknowns
inline virtual LinearFormType type ( ) const
return the type of the linear form
virtual ValueType valueType ( ) const
return the value type of the bilinear form
Friends
inline friend std :: ostream & operator << ( std :: ostream & os , const DoubleIntgBilinearForm & dibf )
print operator