Namespace xlifepp#

namespace xlifepp

main namespace of XLiFE++ library

Typedefs

typedef EcType BcType
typedef void (*BFFunction)(BFComputationData &bfd)
typedef std::pair<BasicBilinearForm*, complex_t> bfPair

useful typedefs to MatrixBilinearForm class

typedef EssentialCondition BoundaryCondition
typedef EssentialConditions BoundaryConditions
typedef Disk Circle
typedef std::map<uvPair, SuBilinearForm>::const_iterator cit_mublc
typedef std::map<constUnknown*, SuLinearForm>::const_iterator cit_mulc
typedef std::map<uvPair, SuTermMatrix*>::const_iterator cit_mustm
typedef std::map<constUnknown*, SuTermVector*>::const_iterator cit_mustv
typedef std::vector<OpkuvValPair>::const_iterator cit_opkuvval
typedef std::vector<OpusValPair>::const_iterator cit_opusval
typedef std::vector<OpuValPair>::const_iterator cit_opuval
typedef std::vector<bfPair>::const_iterator cit_vbfp
typedef std::vector<lfPair>::const_iterator cit_vlfp
typedef std::vector<real_t>::const_iterator cit_vr
typedef std::vector<Unknown*>::const_iterator cit_vu
typedef real_t (*ColoringRule)(const GeomElement&, const std::vector<real_t>&)

alias of a function describing a GeomElement coloring rule

typedef complex_t Complex
typedef Vector<complex_t> Complexes
typedef Matrix<Matrix<Complex>> ComplexMatrices
typedef Matrix<Complex> ComplexMatrix
typedef Complexes ComplexVector
typedef Vector<Complexes> ComplexVectors
typedef dimen_t Dimen
typedef short unsigned int dimen_t

typedef for short unsigned int

typedef std::pair<dimen_t, dimen_t> dimPair

useful alias

typedef ClusterTree<FeDof> &DofCluster
typedef GeomDomain &Domain
typedef std::pair<const GeomDomain*, const GeomDomain*> DomainPair

useful typedef for domain objects

typedef PCollection<GeomDomain> Domains

collection of GeomDomain pointers

typedef map<number_t, ELTDEF> ELTDEFMAP
typedef std::pair<MeshElement*, number_t> EltNumPair

useful alias of a pair of MeshElement* and number_t

typedef EulerT<real_t> Euler
typedef Interpolation &FEInterpolation
typedef FilonIMT<complex_t> FilonIM
complex_t() funSC1_t (const complex_t &)
complex_t() funSC2_t (const complex_t &, const complex_t &)
complex_t() funSC_t (const Point &, Parameters &)
real_t() funSR1_t (const real_t &)
real_t() funSR2_t (const real_t &, const real_t &)
real_t() funSR_t (const Point &, Parameters &)
typedef std::pair<GeomElement*, number_t> GeoNumPair

useful typedef for GeomElement class

alias of a pair of GeomElement* and a number

typedef map<number_t, GMXL> GMSHMAP
typedef int_t Index
typedef std::vector<number_t> Indexing
typedef int_t Int

alias for basic type

typedef long long int_t

typedef for integer

typedef PCollection<Interpolation> Interpolations

collection of Interpolation pointers

typedef Collection<int_t> Ints

collection of Int

typedef std::map<uvPair, SuBilinearForm>::iterator it_mublc

useful typedefs to BilinearForm class

typedef std::map<constUnknown*, SuLinearForm>::iterator it_mulc

useful typedefs to LinearForm class

typedef std::map<uvPair, SuTermMatrix*>::iterator it_mustm

useful aliases for TermMatrix class

typedef std::map<constUnknown*, SuTermVector*>::iterator it_mustv
typedef std::vector<OpkuvValPair>::iterator it_opkuvval
typedef std::vector<OpusValPair>::iterator it_opusval
typedef std::vector<OpuValPair>::iterator it_opuval
typedef std::vector<bfPair>::iterator it_vbfp
typedef std::vector<lfPair>::iterator it_vlfp
typedef std::vector<real_t>::iterator it_vr
typedef std::vector<Unknown*>::iterator it_vu
typedef std::pair<SIDELTMAP::const_iterator, SIDELTMAP::const_iterator> ITPARENTS
complex_t() kerSC_t (const Point &, const Point &, Parameters &)
Parameters &typedef Parameters &typedef Parameters &typedef Parameters &typedef real_t() kerSR_t (const Point &, const Point &, Parameters &)
typedef std::pair<BasicLinearForm*, complex_t> lfPair

useful typedefs to SuLinearForm class

Parameters &typedef Parameters &typedef Parameters &typedef Matrix< complex_t > (funMC_t)(const Point &
Parameters &typedef Parameters &typedef Matrix< real_t > (funMR_t)(const Point &
typedef MeshGenerator MeshPattern
typedef map<number_t, pair<number_t, number_t>> Mn_Pnn
typedef map<number_t, set<number_t>> Mn_Sn
typedef MonomialT Monomial
typedef number_t Number
typedef size_t number_t

typedef for size_t

typedef Collection<number_t> Numbers

collection of Number

typedef std::pair<number_t, number_t> NumPair
typedef Ode45T<real_t> Ode45
typedef std::pair<xlifepp::KernelOperatorOnUnknowns*, xlifepp::complex_t> OpkuvValPair
typedef Parameters Options
typedef std::pair<OperatorOnUnknowns*, complex_t> OpusValPair
typedef std::pair<OperatorOnUnknown*, complex_t> OpuValPair
typedef std::pair<number_t, number_t> pairNN
typedef Vector<real_t> (*par_fun)(const Point&, Parameters&, DiffOpType)

alias of real vector function

typedef Collection<Points> PointMatrix

collection of Points

typedef Collection<Point> Points

collection of Point

typedef PolyNodeT PolyNode
typedef PolynomialT Polynomial
typedef PolynomialBasisT PolynomialBasis
typedef PolynomialsBasisT PolynomialsBasis
typedef real_t Real
typedef Matrix<Matrix<Real>> RealMatrices
typedef Matrix<Real> RealMatrix

alias for matrix type

typedef std::pair<real_t, real_t> RealPair
typedef Vector<real_t> Reals
typedef Reals RealVector

alias for vector type

typedef Vector<Reals> RealVectors
typedef RK4T<real_t> RK4
typedef std::multimap<std::vector<number_t>, pairNN> SIDELTMAP
typedef PCollection<Space> Spaces

collection of Space pointers

typedef Ball Sphere
typedef std::vector<std::pair<ShapeType, std::vector<number_t>>> splitvec_t
typedef string_t String
typedef Collection<string_t> Strings

collection of String

typedef std::pair<ValueType, StrucType> structPair
typedef Unknown TestFct

alias of Unknown

typedef PCollection<TestFunction> TestFunctions

collection of TestFunction pointers

typedef unsigned long long uint_t
typedef PCollection<Unknown> Unknowns

collection of Unknown pointers

typedef std::pair<const Unknown*, const Unknown*> uvPair
Parameters &typedef Vector< complex_t > (funVC_t)(const Point &
const Point Parameters &typedef const Point Parameters &typedef const Point Parameters &typedef const Point Parameters &typedef Parameters &typedef Parameters &typedef Parameters &typedef Parameters &typedef Parameters &typedef Vector< Matrix< complex_t > > (vfunMC_t)(const Vector< Point > &
const Point Parameters &typedef const Point Parameters &typedef const Point Parameters &typedef const Point Parameters &typedef Parameters &typedef Parameters &typedef Parameters &typedef Parameters &typedef Vector< Matrix< real_t > > (vfunMR_t)(const Vector< Point > &
const Point Parameters &typedef const Point Parameters &typedef const Point Parameters &typedef const Point Parameters &typedef Vector< real_t > (vfunSR_t)(const Vector< Point > &
const Point Parameters &typedef const Point Parameters &typedef const Point Parameters &typedef const Point Parameters &typedef Parameters &typedef Parameters &typedef Parameters &typedef Vector< Vector< complex_t > > (vfunVC_t)(const Vector< Point > &
const Point Parameters &typedef const Point Parameters &typedef const Point Parameters &typedef const Point Parameters &typedef Parameters &typedef Parameters &typedef Vector< Vector< real_t > > (vfunVR_t)(const Vector< Point > &
typedef real_t (*VectorColoringRule)(const GeomElement&, const std::vector<Vector<real_t>>&)

alias of a function describing a GeomElement coloring rule

typedef std::vector<std::pair<complex_t, VectorEntry*>> VpacVEp

Enums

enum AccessType

access type of storage

Values:

enumerator _noAccess
enumerator _sym
enumerator _row
enumerator _col
enumerator _dual
enum AdjacentStatus

Values:

enumerator _notAdjacent
enumerator _adjacentByElement
enumerator _adjacentBySide
enumerator _adjacentBySideOfSide
enumerator _adjacentByVertex
enum AlgebraicOperator

Values:

enumerator _product
enumerator _innerProduct
enumerator _crossProduct
enumerator _contractedProduct
enum Alignment

Values:

enumerator _centerAlignment
enumerator _leftAlignment
enumerator _rightAlignment
enum AngleUnitType

Values:

enumerator _deg
enumerator _rad
enum ArgType

Values:

enumerator _pointArg
enumerator _vectorOfPointArg
enum BoundaryCondionType

Helmholtz kernel in the strip ]-inf,+inf[x]0,h[ with either Dirichlet or Neumann boundary condition computed using modal expansion far from xs axis and accelerated image expansion close to the xs axis manage following parameters number_t bc: boundary type on both sides (0=Dirichlet,1=Neumann, …) real_t k: wave number real_t h: strip height (default 1) number_t N: maximum of terms in expansion (default 1000, must be greater than the number of propagative modes!) real_t l: abcissa separating image expansion and modal expansion (default h/10) real_t eps: threshold used to cut expansions , say |an|<eps, (default 1E-6)

Values:

enumerator _Dirichlet
enumerator _Neumann
enum CalType

type of calculation in Fock, Malyuzhinets function

Values:

enumerator _defaultCal
enumerator _filonCal
enumerator _trapezeCal
enumerator _approxCal
enumerator _interpCal
enumerator _laguerreCal
enumerator _adaptiveCal
enum CloseNodeRule

Values:

enumerator _fmmCloseNodeRule
enum ClusteringMethod

Values:

enumerator _regularBisection
enumerator _boundingBoxBisection
enumerator _cardinalityBisection
enumerator _uniformKdtree
enumerator _nonuniformKdtree
enum ComparisonOperator

ComparisonFunction class handling expresion t opc1 a1 ao t opc2 a2 ao … where opc1, opc2, … are one of =, !=, <, > , >=, <= ao is one of && or || (the same in expression) a1, a2, … are objects of same type, supporting comparison operator let cop be a ComparisonFunction object cof(t) return the bool value of t opc1 a opao t opc2 2

Values:

enumerator _noComparison
enumerator _isEqual
enumerator _isNotEqual
enumerator _isLess
enumerator _isGreater
enumerator _isLessEqual
enumerator _isGreaterEqual
enum ComputationInfo

Enum for reporting the status of a computation.

Values:

enumerator _success

Computation was successful.

enumerator _numericalIssue

The provided data did not satisfy the prerequisites.

enumerator _noConvergence

Iterative procedure did not converge.

enumerator _invalidInput

The inputs are invalid, or the algorithm has been improperly called.

When assertions are enabled, such errors trigger an assert.

enum ComputationType

type of computation

Values:

enumerator _undefComputation
enumerator _FEComputation
enumerator FEComputation
enumerator _IEComputation
enumerator IEComputation
enumerator _SPComputation
enumerator SPComputation
enumerator _FESPComputation
enumerator FESPComputation
enumerator _IESPComputation
enumerator IESPComputation
enumerator _FEextComputation
enumerator FEextComputation
enumerator _IEextComputation
enumerator IEextComputation
enumerator _IEHmatrixComputation
enumerator IEHmatrixComputation
enumerator _DGComputation
enumerator DGComputation
enum ComputeIntgFlag

Values:

enumerator _computeI1
enumerator _computeI2
enumerator _computeBoth
enum ConstCastStorage

Values:

enumerator _constCastSt
enum ContinuityOrder

continuity order C0 : only geometric continuity, C1 : continuity of the first derivative all along the Curve, C2 : continuity of the second derivative all along the Curve, C3 : continuity of the third derivative all along the Curve, G1 : tangency continuity all along the Curve, G2 : curvature continuity all along the Curve, Cinf: the order of continuity is infinite.

Values:

enumerator _notRegular
enumerator _regC0
enumerator _regC1
enumerator _regC2
enumerator _regC3
enumerator _regG1
enumerator _regG2
enumerator _regCinf
enum ConvAngleType

Values:

enumerator _noAngleConversion
enumerator _degToRad
enumerator _radToDeg
enum CrackType

type of crack

Values:

enumerator _noCrack
enumerator _openCrack
enumerator _closedCrack
enum Ctype

Values:

enumerator _rm
enumerator rm
enumerator _shem
enumerator shem
enum DataAccess

Values:

enumerator _copy
enumerator _view
enum DiffComputation

Values:

enumerator _IdComputation
enumerator _funComputation
enumerator _invComputation
enumerator _lengthComputation
enumerator _lengthsComputation
enumerator _curvatureComputation
enumerator _curvaturesComputation
enumerator _curabcComputation
enumerator _curabcsComputation
enumerator _normalComputation
enumerator _tangentComputation
enum DiffOpType

type fo differential operator

Values:

enumerator _id
enumerator _d0
enumerator _dt
enumerator _d1
enumerator _dx
enumerator _d2
enumerator _dy
enumerator _d3
enumerator _dz
enumerator _grad
enumerator _nabla
enumerator _div
enumerator _curl
enumerator _rot
enumerator _gradS
enumerator _nablaS
enumerator _divS
enumerator _curlS
enumerator _rotS
enumerator _scurlS
enumerator _srotS
enumerator _ntimes
enumerator _timesn
enumerator _ndot
enumerator _ncross
enumerator _ncrossncross
enumerator _ndotgrad
enumerator _ndiv
enumerator _ncrosscurl
enumerator _ncrossgrad
enumerator _ncrossntimes
enumerator _timesncrossn
enumerator _ntimesndot
enumerator _divG
enumerator _gradG
enumerator _nablaG
enumerator _curlG
enumerator _rotG
enumerator _epsilon
enumerator _epsilonG
enumerator _epsilonR
enumerator _voigtToM
enumerator _grad_x
enumerator _nabla_x
enumerator _grad_y
enumerator _nabla_y
enumerator _grad_xy
enumerator _nabla_xy
enumerator _div_x
enumerator _div_y
enumerator _div_xy
enumerator _curl_x
enumerator _rot_x
enumerator _curl_y
enumerator _rot_y
enumerator _curl_xy
enumerator _rot_xy
enumerator _ntimes_x
enumerator _timesn_x
enumerator _ndot_x
enumerator _ncross_x
enumerator _ncrossncross_x
enumerator _ncrossntimes_x
enumerator _timesncrossn_x
enumerator _ndotgrad_x
enumerator _ndiv_x
enumerator _ncrosscurl_x
enumerator _ntimes_y
enumerator _timesn_y
enumerator _ndot_y
enumerator _ncross_y
enumerator _ncrossncross_y
enumerator _ncrossntimes_y
enumerator _timesncrossn_y
enumerator _ndotgrad_y
enumerator _ndiv_y
enumerator _ncrosscurl_y
enumerator _ndotgrad_xy
enumerator _nxdotny_times
enumerator _nxcrossny_dot
enumerator _nycrossnx_dot
enumerator _nxcrossny_cross
enumerator _nycrossnx_cross
enumerator _nxcrossny_times
enumerator _nycrossnx_times
enumerator _dt2
enumerator _d11
enumerator _dxx
enumerator _d22
enumerator _dyy
enumerator _d33
enumerator _dzz
enumerator _d12
enumerator _dxy
enumerator _d21
enumerator _dyx
enumerator _d13
enumerator _dxz
enumerator _d31
enumerator _dzx
enumerator _d23
enumerator _dyz
enumerator _d32
enumerator _dzy
enumerator _lap
enumerator _lapG
enumerator _d2G
enumerator _dt3
enumerator _d111
enumerator _dxxx
enumerator _d222
enumerator _dyyy
enumerator _d333
enumerator _dzzz
enumerator _d112
enumerator _dxxy
enumerator _d113
enumerator _dxxz
enumerator _d122
enumerator _dxyy
enumerator _d123
enumerator _dxyz
enumerator _d133
enumerator _dxzz
enumerator _d223
enumerator _dyyz
enumerator _d233
enumerator _dyzz
enum DimensionType

space or mesh dimension

Values:

enumerator _undefDim
enumerator _1D
enumerator _2D
enumerator _3D
enumerator _nD
enum DofCompatibility

types of compatibility rule to applied to side dofs _noDofCompatibility : no rule to apply (case of Lagrange dofs) _signDofCompatibility: sign correction due to normal/tangent vector orientation (case of Hcurl, Hdiv element)

Values:

enumerator _noDofCompatibility
enumerator _signDofCompatibility
enum DofLocalization

Values:

enumerator _nowhere
enumerator _onVertex
enumerator _onEdge
enumerator _onFace
enumerator _onElement
enum DofType

DoF type.

Values:

enumerator _feDof
enumerator _spDof
enumerator _otherDof
enum DomainExtensionType

type of extension if an extended domain

Values:

enumerator _noExtension
enumerator _vertexExtension
enumerator _sideExtension
enumerator _ficticiousExtension
enum DomainType

type of domain

Values:

enumerator _undefDomain
enumerator _analyticDomain
enumerator _meshDomain
enumerator _compositeDomain
enumerator _pointsDomain
enum ECMethod

method to translate essential condition to constraints

Values:

enumerator _undefECMethod
enumerator _dofEC
enumerator _internalNodeEC
enumerator _momentEC
enum EcType

type of essential condition

Values:

enumerator _undefEcType
enumerator _DirichletEc
enumerator _transmissionEc
enumerator _crackEc
enumerator _periodicEc
enumerator _meanEc
enumerator _lfEc
enumerator _NeumannEc
enumerator _FourierEc
enum EigenComputationalMode

computational mode for eigen solvers

Values:

enumerator _davidson
enumerator _krylovSchur
enumerator _buckling
enumerator _cayley
enumerator _cshiftRe
enumerator _cshiftIm
enum EigenSolverMode

type of eigen problems

Values:

enumerator _eigenValueOnly

Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that only the eigenvalues are to be computed and not the eigenvectors.

enumerator _computeEigenVector

Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that both the eigenvalues and the eigenvectors are to be computed.

enumerator _eigVecMask
enumerator _Ax_lBx

Used in GeneralizedSelfAdjointEigenSolver to indicate that it should solve the generalized eigenproblem \( Ax = \lambda B x \).

enumerator _ABx_lx

Used in GeneralizedSelfAdjointEigenSolver to indicate that it should solve the generalized eigenproblem \( ABx = \lambda x \).

enumerator _BAx_lx

Used in GeneralizedSelfAdjointEigenSolver to indicate that it should solve the generalized eigenproblem \( BAx = \lambda x \).

enumerator _genEigMask
enum EigenSolverType

Eigen solvers.

Values:

enumerator _intern
enumerator _arpack
enum EigenSortKind

Possible choices to sort the eigenvalues.

Values:

enumerator _decr_module
enumerator _decr_realpart
enumerator _decr_imagpart
enumerator _incr_module
enumerator _incr_realpart
enumerator _incr_imagpart
enum EllipsoidParametrizationType

Values:

enumerator _thetaphi
enumerator _stereographic
enumerator _bistereographic
enum FactorizationType

factorization of matrices

Values:

enumerator _noFactorization
enumerator _lu
enumerator _ldlt
enumerator _ldlstar
enumerator _llt
enumerator _llstar
enumerator _qr
enumerator _ilu
enumerator _ildlt
enumerator _ildlstar
enumerator _illt
enumerator _illstar
enumerator _umfpack
enum FEMapType

types of map applied to shape functions of reference element standard map : J{-t} Lagrange FE contravariantPiolaMap: J*J{-t}/|J| div conforming FE covariantPiolaMap : J{-t}*J{-t} curl conforming FE MorleyMap : see Morley element ArgyrisMap : see Argyris element

Values:

enumerator _standardMap
enumerator _contravariantPiolaMap
enumerator _covariantPiolaMap
enumerator _MorleyMap
enumerator _ArgyrisMap
enum FESubType

finite element subfamily

Values:

enumerator _standard
enumerator standard
enumerator _GaussLobattoPoints
enumerator GaussLobattoPoints
enumerator _firstFamily
enumerator firstFamily
enumerator _secondFamily
enumerator secondFamily
enum FEType

finite element family

Values:

enumerator _Lagrange
enumerator Lagrange
enumerator _Hermite
enumerator Hermite
enumerator _CrouzeixRaviart
enumerator CrouzeixRaviart
enumerator _Nedelec
enumerator Nedelec
enumerator _RaviartThomas
enumerator RaviartThomas
enumerator _NedelecFace
enumerator NedelecFace
enumerator _NedelecEdge
enumerator NedelecEdge
enumerator _BuffaChristiansen
enumerator BuffaChristiansen
enumerator _Morley
enumerator Morley
enumerator _Argyris
enumerator Argyris
enum FieldPart

Values:

enumerator _totalField
enumerator _diffractedField
enumerator _wedgeField
enum FieldType

Values:

enumerator _noFieldType
enumerator _terminator
enumerator _lightOP
enumerator _lightFock
enumerator _shadowFock
enumerator _creeping
enumerator _focal
enum FuncFormType

type of function (C++ function or TermVector)

Values:

enumerator _analytical
enumerator _interpolated
enum FunctionPart

regular/singular part

Values:

enumerator _allFunction
enumerator allFunction
enumerator _regularPart
enumerator regularPart
enumerator _singularPart
enumerator singularPart
enum FunctType

type of functions (one Point variable, or two)

Values:

enumerator _function
enumerator _kernel
enum GaussianGenerator

Values:

enumerator _BoxMullerGenerator
enumerator _MarsagliaGenerator
enum GeodesicType

Values:

enumerator _geodesic
enumerator _parametrizedGeodesic
enumerator _meshedGeodesic
enumerator _analyticGeodesic
enumerator _geometricGeodesic
enumerator _compositeGeodesic
enum GeometricEndShape

used for RevTrunk class in lib geometry

Values:

enumerator _gesNone
enumerator gesNone
enumerator _gesFlat
enumerator gesFlat
enumerator _gesCone
enumerator gesCone
enumerator _gesEllipsoid
enumerator gesEllipsoid
enumerator _gesSphere
enumerator gesSphere
enum GeometryRelationType

enum to describe the relative position of 2 geometries

Values:

enumerator _inside
enumerator _contains
enumerator _intersects
enumerator _outside
enum GeoOperation

Values:

enumerator _noneGeOp
enumerator _plusGeOp
enumerator _minusGeOp
enumerator _commonGeOp
enumerator _loopGeOp
enumerator _extrusionGeOp
enum Gtype

Values:

enumerator dual
enumerator nodal
enum HMAdmissibilityRule

Values:

enumerator _noRule
enumerator _boxesRule
enum HMApproximationMethod

Enumerated list of available HMatrix approximation method.

Values:

enumerator _noHMApproximation
enumerator _svdCompression
enumerator _rsvdCompression
enumerator _r3svdCompression
enumerator _acaFull
enumerator _acaPartial
enumerator _acaPlus
enum HMatrixMethod

Values:

enumerator _standardHM
enumerator _denseHM
enum IntegrationMethodType

integration methods

Values:

enumerator _undefIM
enumerator _quadratureIM
enumerator _polynomialIM
enumerator _productIM
enumerator _LenoirSalles2dIM
enumerator LenoirSalles2d
enumerator _LenoirSalles3dIM
enumerator LenoirSalles3d
enumerator _LenoirSalles2dIR
enumerator _LenoirSalles3dIR
enumerator _SauterSchwabIM
enumerator SauterSchwab
enumerator _SauterSchwabSymIM
enumerator SauterSchwabSym
enumerator _DuffyIM
enumerator Duffy
enumerator _DuffySymIM
enumerator Duffy_sym
enumerator _HMatrixIM
enumerator H_Matrix
enumerator _CollinoIM
enumerator _FilonIM
enum InterpolationType

interpolation type :

  • P0, … P10, Q0, … Q10 stands for Lagrange FE interpolation

  • name nomenclature of edge/face element 2D (triangle) 3D (tetrahedron) FE face type (Hdiv) Raviart-Thomas(RT) Nedelec Face first family (NF1) Brezzi-Douglas-Marini(BDM) Nedelec Face second family(NF2) FE edge type (Hrot) Nedelec first family (N1) Nedelec Edge first family (NE1) Nedelec second family(N2) Nedelec Edge second family(NE2)

Note

according to the previous table, there is an equivalence between 2D and 3D shortname: for instance NF_1 in 2D is understood as RT_1 and RT_1 in 3D is understood as NF_1

Values:

enumerator _P0
enumerator P0
enumerator _P1
enumerator P1
enumerator _P2
enumerator P2
enumerator _P3
enumerator P3
enumerator _P4
enumerator P4
enumerator _P5
enumerator P5
enumerator _P6
enumerator P6
enumerator _P7
enumerator P7
enumerator _P8
enumerator P8
enumerator _P9
enumerator P9
enumerator _P10
enumerator P10
enumerator _P1BubbleP3
enumerator P1BubbleP3
enumerator _CR
enumerator CR
enumerator _Q0
enumerator Q0
enumerator _Q1
enumerator Q1
enumerator _Q2
enumerator Q2
enumerator _Q3
enumerator Q3
enumerator _Q4
enumerator Q4
enumerator _Q5
enumerator Q5
enumerator _Q6
enumerator Q6
enumerator _Q7
enumerator Q7
enumerator _Q8
enumerator Q8
enumerator _Q9
enumerator Q9
enumerator _Q10
enumerator Q10
enumerator _RT_1
enumerator RT_1
enumerator _NF1_1
enumerator NF1_1
enumerator _RT_2
enumerator RT_2
enumerator _NF1_2
enumerator NF1_2
enumerator _RT_3
enumerator RT_3
enumerator _NF1_3
enumerator NF1_3
enumerator _RT_4
enumerator RT_4
enumerator _NF1_4
enumerator NF1_4
enumerator _RT_5
enumerator RT_5
enumerator _NF1_5
enumerator NF1_5
enumerator _BDM_1
enumerator BDM_1
enumerator _NF2_1
enumerator NF2_1
enumerator _BDM_2
enumerator BDM_2
enumerator _NF2_2
enumerator NF2_2
enumerator _BDM_3
enumerator BDM_3
enumerator _NF2_3
enumerator NF2_3
enumerator _BDM_4
enumerator BDM_4
enumerator _NF2_4
enumerator NF2_4
enumerator _BDM_5
enumerator BDM_5
enumerator _NF2_5
enumerator NF2_5
enumerator _N1_1
enumerator N1_1
enumerator _NE1_1
enumerator NE1_1
enumerator _N1_2
enumerator N1_2
enumerator _NE1_2
enumerator NE1_2
enumerator _N1_3
enumerator N1_3
enumerator _NE1_3
enumerator NE1_3
enumerator _N1_4
enumerator N1_4
enumerator _NE1_4
enumerator NE1_4
enumerator _N1_5
enumerator N1_5
enumerator _NE1_5
enumerator NE1_5
enumerator _N2_1
enumerator N2_1
enumerator _NE2_1
enumerator NE2_1
enumerator _N2_2
enumerator N2_2
enumerator _NE2_2
enumerator NE2_2
enumerator _N2_3
enumerator N2_3
enumerator _NE2_3
enumerator NE2_3
enumerator _N2_4
enumerator N2_4
enumerator _NE2_4
enumerator NE2_4
enumerator _N2_5
enumerator N2_5
enumerator _NE2_5
enumerator NE2_5
enum IOFormat

I/O mesh format.

Values:

enumerator _undefFormat
enumerator _vtk
enumerator vtk
enumerator _vtu
enumerator vtu
enumerator _msh
enumerator msh
enumerator _geo
enumerator geo
enumerator _mel
enumerator mel
enumerator _ply
enumerator ply
enumerator _medit
enumerator medit
enumerator _matlab
enumerator matlab
enumerator _raw
enumerator raw
enumerator _xyzv
enumerator xyzv
enum Iptype

Values:

enumerator _grow
enumerator grow
enumerator _iprandom
enumerator iprandom
enum IterativeSolverType

Iterative solvers.

Values:

enumerator _noIterativeSolver
enumerator _cg
enumerator _cgs
enumerator _qmr
enumerator _bicg
enumerator _bicgstab
enumerator _gmres
enumerator _sor
enumerator _ssor
enum JumpType

type of jump

Values:

enumerator _nojump
enumerator _jump
enumerator _mean
enum KeepStatus

Values:

enumerator _keep
enumerator _nokeep
enum KernelType

Values:

enumerator _generalKernel
enumerator _tensorKernel
enum Language

multilingual messages

Values:

enumerator _en
enumerator en
enumerator english
enumerator _fr
enumerator fr
enumerator francais
enumerator _de
enumerator de
enumerator deutsch
enumerator _es
enumerator es
enumerator espanol
enumerator _nbLanguages
enum LinearFormType

type of linear form

Values:

enumerator _undefLf
enumerator _intg
enumerator _doubleIntg
enumerator _bilinearAsLinear
enumerator _linearCombination
enumerator _composedLf
enumerator _explicitLf
enumerator _userLf
enum MatrixApproximationType

Values:

enumerator _lowRankApproximation
enumerator _fmmApproximation
enum MatrixConditioning

Enumerated list of matrix properties regarding invertibility.

Values:

enumerator _well_conditioned_matrix
enumerator _bad_conditioned_matrix
enumerator _non_invertible_matrix
enum MatrixPart

part of matrices

Values:

enumerator _all
enumerator _lower
enumerator _upper
enum MemoryUnit

memory units

Values:

enumerator _byte
enumerator _kilobyte
enumerator _megabyte
enumerator _gigabyte
enumerator _terabyte
enum MeshGenerator

enum to select the mesh generator/algorithm

Values:

enumerator _defaultGenerator
enumerator _defaultPattern
enumerator _structured
enumerator structured
enumerator _subdiv
enumerator subdiv
enumerator _gmsh
enumerator gmsh
enumerator _unstructured
enumerator unstructured
enumerator _gmshOC
enumerator gmshOC
enumerator _fromParametrization
enumerator fromParametrization
enum MeshOption

enum to select the mesh generator/algorithm

Values:

enumerator _defaultMeshOption
enumerator _unstructuredMesh
enumerator unstructuredMesh
enumerator _structuredMesh
enumerator structuredMesh
enumerator _leftSplit
enumerator leftSplit
enumerator _rightSplit
enumerator rightSplit
enumerator _randomSplit
enumerator randomSplit
enumerator _alternateSplit
enumerator alternateSplit
enumerator _crossSplit
enumerator crossSplit
enum MsgEigenType

Enumerated list of available message types recognized by the eigensolvers.

These message types are also used with verboseLevel to print out warning (debugging) info.

Values:

enumerator _errorsEigen

Errors [ always printed ].

enumerator _warningsEigen

Internal warnings.

enumerator _iterationDetailsEigen

Approximate eigenvalues, errors.

enumerator _orthoDetailsEigen

Orthogonalization/orthonormalization details.

enumerator _finalSummaryEigen

Final computational summary.

enumerator _timingDetailsEigen

Timing details.

enumerator _statusTestDetailsEigen

Status test details.

enumerator _debugEigen

Debugging information.

enum MsgType

Message types enumeration.

Values:

enumerator _error
enumerator _warning
enumerator _info
enum Objtype

Objtype.

Values:

enumerator _cut
enumerator cut
enumerator _vol
enumerator vol
enum OCShapeType

Open Cascade shape.

Values:

enumerator _undefOCShape
enumerator _OCSolid
enumerator _solid
enumerator _OCShell
enumerator _shell
enumerator _OCFace
enumerator _face
enumerator _OCWire
enumerator _wire
enumerator _OCEdge
enumerator _edge
enumerator _OCVertex
enumerator _vertex
enum OrientationType

orientation type for a spacedim-1 domain

Values:

enumerator _undefOrientationType
enumerator _towardsInfinite
enumerator towardsInfinite
enumerator _outwardsInfinite
enumerator outwardsInfinite
enumerator _towardsDomain
enumerator towardsDomain
enumerator _outwardsDomain
enumerator outwardsDomain
enum ParameterKey

used for GeomParameter class in lib geometry

Values:

enumerator _pk_none
enumerator _pk_lang
enumerator _pk_verbose
enumerator _pk_nbThreads
enumerator _pk_trackingMode
enumerator _pk_pushpop
enumerator _pk_traceMemory
enumerator _pk_isLogged
enumerator _pk_varnames
enumerator _pk_vertices
enumerator _pk_faces
enumerator _pk_center
enumerator _pk_center1
enumerator _pk_center2
enumerator _pk_apogee
enumerator _pk_origin
enumerator _pk_apex
enumerator _pk_v1
enumerator _pk_v2
enumerator _pk_v3
enumerator _pk_v4
enumerator _pk_v5
enumerator _pk_v6
enumerator _pk_v7
enumerator _pk_v8
enumerator _pk_xmin
enumerator _pk_xmax
enumerator _pk_ymin
enumerator _pk_ymax
enumerator _pk_zmin
enumerator _pk_zmax
enumerator _pk_spline
enumerator _pk_spline_type
enumerator _pk_spline_subtype
enumerator _pk_degree
enumerator _pk_spline_BC
enumerator _pk_tension
enumerator _pk_spline_parametrization
enumerator _pk_weights
enumerator _pk_tangent_0
enumerator _pk_tangent_1
enumerator _pk_nbu
enumerator _pk_tmin
enumerator _pk_tmax
enumerator _pk_parametrization
enumerator _pk_partitioning
enumerator _pk_nbParts
enumerator _pk_shapePartition
enumerator _pk_partmesh
enumerator _pk_ncommon
enumerator _pk_ptype
enumerator _pk_objtype
enumerator _pk_ctype
enumerator _pk_iptype
enumerator _pk_rtype
enumerator _pk_savedoms
enumerator _pk_repsortie
enumerator _pk_length
enumerator _pk_xlength
enumerator _pk_ylength
enumerator _pk_zlength
enumerator _pk_radius
enumerator _pk_radius1
enumerator _pk_radius2
enumerator _pk_xradius
enumerator _pk_yradius
enumerator _pk_zradius
enumerator _pk_basis
enumerator _pk_scale
enumerator _pk_dir
enumerator _pk_axis
enumerator _pk_normal
enumerator _pk_end_shape
enumerator _pk_end1_shape
enumerator _pk_end2_shape
enumerator _pk_end_distance
enumerator _pk_end1_distance
enumerator _pk_end2_distance
enumerator _pk_nnodes
enumerator _pk_hsteps
enumerator _pk_base_names
enumerator _pk_domain_name
enumerator _pk_side_names
enumerator _pk_naming_domain
enumerator _pk_naming_section
enumerator _pk_naming_side
enumerator _pk_init_transformation
enumerator _pk_layers
enumerator _pk_nbsubdomains
enumerator _pk_nboctants
enumerator _pk_angle
enumerator _pk_angle1
enumerator _pk_angle2
enumerator _pk_type
enumerator _pk_shape
enumerator _pk_generator
enumerator _pk_pattern
enumerator _pk_split_direction
enumerator _pk_refinement_depth
enumerator _pk_dim
enumerator _pk_domain
enumerator _pk_extension_domain
enumerator _pk_extension_domain_u
enumerator _pk_extension_domain_v
enumerator _pk_FE_type
enumerator _pk_FE_subtype
enumerator _pk_Sobolev_type
enumerator _pk_order
enumerator _pk_interpolation
enumerator _pk_optimizeNumbering
enumerator _pk_notOptimizeNumbering
enumerator _pk_withLocateData
enumerator _pk_withoutLocateData
enumerator _pk_basis_dim
enumerator _pk_rank
enumerator _pk_method
enumerator _pk_quad
enumerator _pk_quad1
enumerator _pk_quad2
enumerator _pk_order1
enumerator _pk_order2
enumerator _pk_bound
enumerator _pk_isogeo
enumerator _pk_symmetry
enumerator _pk_computation
enumerator _pk_function_part
enumerator _pk_compute
enumerator _pk_notCompute
enumerator _pk_assembled
enumerator _pk_unassembled
enumerator _pk_storage
enumerator _pk_nodal
enumerator _pk_reduction
enumerator _pk_pseudoReductionMethod
enumerator _pk_realReductionMethod
enumerator _pk_penalizationReductionMethod
enumerator _pk_maxIt
enumerator _pk_krylovDim
enumerator _pk_solver
enumerator _pk_tolerance
enumerator _pk_convToStd
enumerator _pk_forceNonSym
enumerator _pk_ncv
enumerator _pk_nev
enumerator _pk_mode
enumerator _pk_sigma
enumerator _pk_sort
enumerator _pk_which
enumerator _pk_omega
enumerator _pk_name
enumerator _pk_format
enumerator _pk_data_name
enumerator _pk_aFilePerDomain
enumerator _pk_aUniqueFile
enumerator _pk_encodingFileName
enumerator _pk_noEncodingFileName
enumerator _pk_transformation
enumerator _pk_suffix
enum Partitioning

type of partitioning

Values:

enumerator _nonePartition
enumerator _linearPartition
enumerator _splinePartition
enum PolynomialSpace

Values:

enumerator _Pk
enumerator _PHk
enumerator _Qk
enumerator _Qks
enumerator _Rk
enumerator _SHk
enumerator _Dk
enumerator _DQk
enumerator _DQ2k
enumerator _DQ3k
enum PreconditionerType

preconditioner

Values:

enumerator _noPrec
enumerator _luPrec
enumerator _ldltPrec
enumerator _ldlstarPrec
enumerator _ssorPrec
enumerator _diagPrec
enumerator _productPrec
enumerator _iluPrec
enumerator _ildltPrec
enumerator _ildlstarPrec
enumerator _illtPrec
enumerator _userPrec
enum ProjectionType

Values:

enumerator _noProjection
enumerator _givenProjection
enumerator _dotnProjection
enumerator _crossnProjection
enum ProjectorType

type of space projectors

Values:

enumerator _noProjectorType
enumerator _userProjector
enumerator userProjector
enumerator _L2Projector
enumerator L2Projector
enumerator _H1Projector
enumerator H1Projector
enumerator _H10Projector
enumerator H10Projector
enum Ptype

Ptype.

Values:

enumerator _rec
enumerator rec
enumerator recursive
enumerator _kway
enumerator kway
enum QuadRule

quadrature rules

Values:

enumerator _defaultRule
enumerator defaultQuadrature
enumerator _GaussLegendreRule
enumerator GaussLegendre
enumerator _symmetricalGaussRule
enumerator symmetricalGauss
enumerator _GaussLobattoRule
enumerator GaussLobatto
enumerator _nodalRule
enumerator nodalQuadrature
enumerator _miscRule
enumerator miscQuadrature
enumerator _GrundmannMollerRule
enumerator GrundmannMoller
enumerator _doubleQuadrature
enumerator _evenGaussLegendreRule
enumerator _evenGaussLobattoRule
enum ReductionMethodType

reduction method to deal with essential conditions

Values:

enumerator _noReduction
enumerator _pseudoReduction
enumerator _realReduction
enumerator _penalizationReduction
enumerator _dualReduction
enum Rtype

Values:

enumerator _fm
enumerator fm
enumerator _greedy
enumerator greedy
enumerator _sep2sided
enumerator sep2sided
enumerator _sep1sided
enumerator sep1sided
enum SetOperationType

type of composition of domains

Values:

enumerator _union
enumerator _intersection
enum ShapesType

geometrical shapes

Values:

enumerator _noShapes
enumerator _fromFiles
enumerator _points
enumerator _segments
enumerator segments
enumerator _triangles
enumerator triangles
enumerator _quadrangles
enumerator quadrangles
enumerator _tetrahedra
enumerator tetrahedra
enumerator _hexahedra
enumerator hexahedra
enumerator _prisms
enumerator prisms
enumerator _pyramids
enumerator pyramids
enumerator _ellArcs
enumerator _circArcs
enumerator _parametrizedArcs
enumerator _polygons
enumerator _parallelograms
enumerator _rectangles
enumerator _squares
enumerator _ellipses
enumerator _disks
enumerator _ellipticSectors
enumerator _circularSectors
enumerator _ellipsoidSideParts
enumerator _sphereSideParts
enumerator _setsofpoints
enumerator _setsofelems
enumerator _trunkSideParts
enumerator _cylinderSideParts
enumerator _coneSideParts
enumerator _polyhedra
enumerator _parallelepipeds
enumerator _cuboids
enumerator _cubes
enumerator _ellipsoids
enumerator _balls
enumerator _trunks
enumerator _revTrunks
enumerator _cylinders
enumerator _revCylinders
enumerator _cones
enumerator _revCones
enumerator _composites
enumerator _loops
enumerator _extrusions
enum ShapeType

geometrical shapes

Values:

enumerator _noShape
enumerator _fromFile
enumerator _point
enumerator _segment
enumerator segment
enumerator _triangle
enumerator triangle
enumerator _quadrangle
enumerator quadrangle
enumerator _tetrahedron
enumerator tetrahedron
enumerator _hexahedron
enumerator hexahedron
enumerator _prism
enumerator prism
enumerator _pyramid
enumerator pyramid
enumerator _ellArc
enumerator _circArc
enumerator _splineArc
enumerator _parametrizedArc
enumerator _parametrizedSurface
enumerator _splineSurface
enumerator _polygon
enumerator _parallelogram
enumerator _rectangle
enumerator _square
enumerator _ellipse
enumerator _disk
enumerator _ellipticSector
enumerator _circularSector
enumerator _ellipsoidSidePart
enumerator _sphereSidePart
enumerator _setofpoints
enumerator _setofelems
enumerator _trunkSidePart
enumerator _cylinderSidePart
enumerator _coneSidePart
enumerator _polyhedron
enumerator _parallelepiped
enumerator _cuboid
enumerator _cube
enumerator _ellipsoid
enumerator _ball
enumerator _trunk
enumerator _revTrunk
enumerator _cylinder
enumerator _revCylinder
enumerator _cone
enumerator _revCone
enumerator _composite
enumerator _loop
enumerator _extrusion
enumerator _ocShape
enum SingularityType

Values:

enumerator _notsingular
enumerator _r_
enumerator _logr
enumerator _loglogr
enum SmartPointerNullType

Values:

enumerator _smPtrNull
enum SobolevType

Sobolev space.

Values:

enumerator _L2
enumerator L2
enumerator _H1
enumerator H1
enumerator _Hdiv
enumerator Hdiv
enumerator _Hcurl
enumerator Hcurl
enumerator _Hrot
enumerator Hrot
enumerator _H2
enumerator H2
enumerator _Hinf
enumerator Hinf
enumerator Linf
enum SorSolverType

SOR solver type.

Values:

enumerator _diagSorS
enumerator _upperSorS
enumerator _lowerSorS
enumerator _matrixVectorSorS
enum SpaceType

space type

Values:

enumerator _feSpace
enumerator _spSpace
enumerator _subSpace
enumerator _prodSpace
enum SpecialMatrix

enumeration for special matrices

Values:

enumerator _zeroMatrix
enumerator zeroMatrix
enumerator _idMatrix
enumerator idMatrix
enumerator _onesMatrix
enumerator onesMatrix
enumerator _hilbertMatrix
enumerator hilbertMatrix
enum SplineBC

spline boundary condition

Values:

enumerator _undefBC
enumerator _naturalBC
enumerator _clampedBC
enumerator _periodicBC
enum SplineParametrization

spline parametrization type

Values:

enumerator _undefParametrization
enumerator _xParametrization
enumerator _uniformParametrization
enumerator _chordalParametrization
enumerator _centripetalParametrization
enum SplineSubtype

subtype of spline

Values:

enumerator _noSplineSubtype
enumerator _SplineInterpolation
enumerator _SplineApproximation
enum SplineType

type of spline

Values:

enumerator _noSpline
enumerator _C2Spline
enumerator _CatmullRomSpline
enumerator _BSpline
enumerator _BezierSpline
enumerator _Nurbs
enum StorageAccessType

short names of storage and access

Values:

enumerator _csRow
enumerator csRow
enumerator _csCol
enumerator csCol
enumerator _csDual
enumerator csDual
enumerator _csSym
enumerator csSym
enumerator _denseRow
enumerator denseRow
enumerator _denseCol
enumerator denseCol
enumerator _denseDual
enumerator denseDual
enumerator _skylineSym
enumerator skylineSym
enumerator _skylineDual
enumerator skylineDual
enum StorageBuildType

storage build type

Values:

enumerator _undefBuild
enumerator _feBuild
enumerator _dgBuild
enumerator _diagBuild
enumerator _ecBuild
enumerator _globalBuild
enumerator _otherBuild
enum StorageType

storage of matrices

Values:

enumerator _noStorage
enumerator _dense
enumerator dense
enumerator _cs
enumerator cs
enumerator _skyline
enumerator skyline
enumerator _coo
enumerator coo
enumerator _hmatrix
enumerator hmatrix
enum StructuredMeshSplitRule

enum to select the mesh generator/algorithm

Values:

enumerator _noSplitRule
enumerator _left
enumerator left
enumerator _right
enumerator right
enumerator _random
enumerator random
enumerator _alternate
enumerator alternate
enumerator _cross
enumerator cross
enum StrucType

structure of matrices and vectors

Values:

enumerator _scalar
enumerator _vector
enumerator _matrix
enumerator _vectorofvector
enumerator _vectorofmatrix
enumerator _matrixofmatrix
enumerator _undefStrucType
enum SupportType

DoF support type.

Values:

enumerator _undefSupport
enumerator _pointSupport
enumerator _faceSupport
enumerator _edgeSupport
enumerator _elementSupport
enum SymbolicOperation

symbolic operations

Values:

enumerator _idop
enumerator _plus
enumerator _minus
enumerator _multiply
enumerator _divide
enumerator _power
enumerator _atan2
enumerator _equal
enumerator _different
enumerator _less
enumerator _lessequal
enumerator _greater
enumerator _greaterequal
enumerator _and
enumerator _or
enumerator _abs
enumerator _sign
enumerator _realPart
enumerator _imagPart
enumerator _sqrt
enumerator _squared
enumerator _sin
enumerator _cos
enumerator _tan
enumerator _asin
enumerator _acos
enumerator _atan
enumerator _sinh
enumerator _cosh
enumerator _tanh
enumerator _asinh
enumerator _acosh
enumerator _atanh
enumerator _exp
enumerator _log
enumerator _log10
enumerator _pow
enumerator _not
enumerator _conj
enumerator _adj
enumerator _tran
enumerator _inv
enum SymType

symmetry of matrices

Values:

enumerator _noSymmetry
enumerator noSymmetry
enumerator _symmetric
enumerator symmetric
enumerator _skewSymmetric
enumerator skewSymmetric
enumerator _selfAdjoint
enumerator selfAdjoint
enumerator _skewAdjoint
enumerator skewAdjoint
enumerator _diagonal
enumerator diagonal
enumerator _undefSymmetry
enumerator undefSymmetry
enum TermType

Values:

enumerator _termUndef
enumerator _termVector
enumerator _termMatrix
enumerator _sutermVector
enumerator _sutermMatrix
enum TestStatus

Enumerated type used to pass back information from a StatusTest.

Values:

enumerator _passed

The solver passed the test.

enumerator _failed

The solver failed the test.

enumerator _undefined

The test has not been evaluated on the solver.

enum Trans_uvw

Values:

enumerator _uvw
enumerator _puv
enumerator _puw
enumerator _pvw
enumerator _su
enumerator _sv
enumerator _sw
enum TransformType

geometrical transformations

Values:

enumerator _noTransform
enumerator _translation
enumerator _rotation2d
enumerator _rotation3d
enumerator _homothety
enumerator _scaling
enumerator _ptReflection
enumerator _reflection2d
enumerator _reflection3d
enumerator _composition
enumerator _explicitLinear
enum UmfPackComputationMode

Enum for computation mode of UmfPack.

Values:

enumerator _A

Computation Ax[]=b.

enumerator _At

Computation A’x=b.

enumerator _Aat

Computation A.’x=b.

enumerator _Pt_L

Computation P’Lx=b.

enumerator _L

Computation Lx=b.

enumerator _Lt_P

Computation L’Px=b.

enumerator _Lat_P

Computation L.’Px=b.

enumerator _Lt

Computation L’x=b.

enumerator _Lat

Computation L.’x=b.

enumerator _U_Qt

Computation UQ’x=b.

enumerator _U

Computation Ux=b.

enumerator _Q_Ut

Computation QU’x=b.

enumerator _Q_Uat

Computation QU.’x=b.

enumerator _Ut

Computation U’x=b.

enumerator _Uat

Computation U.’x=b.

enum UnitaryVector

type of unitary vector

Values:

enumerator _n
enumerator _nx
enumerator _ny
enumerator _nxdotny
enumerator _nxcrossny
enumerator _nycrossnx
enumerator _ncrossn
enumerator _tau
enumerator _taux
enumerator _tauy
enumerator _btau
enumerator _btaux
enumerator _btauy
enum UnknownType

type of unknown

Values:

enumerator _feUnknown
enumerator _spUnknown
enumerator _mixedUnknown
enum ValueType

types of values of matrices and vectors

Values:

enumerator _none
enumerator _integer
enumerator _bool
enumerator _real
enumerator _complex
enumerator _string
enumerator _pt
enumerator _pointer
enumerator _integerVector
enumerator _boolVector
enumerator _realVector
enumerator _complexVector
enumerator _stringVector
enumerator _ptVector
enumerator _integerMatrix
enumerator _boolMatrix
enumerator _realMatrix
enumerator _complexMatrix
enumerator _stringMatrix
enumerator _ptMatrix
enumerator _pointerGeomDomain
enumerator _pointerFunction
enumerator _pointerIntegrationMethod
enumerator _pointerIntegrationMethods
enumerator _pointerParametrization
enumerator _pointerSpline
enumerator _pointerTermVectors
enumerator _pointerTransformation
enumerator _enumComputationType
enumerator _enumCtype
enumerator _enumDimensionType
enumerator _enumEigenComputationalMode
enumerator _enumEigenSolverType
enumerator _enumEigenSortKind
enumerator _enumFESubType
enumerator _enumFEType
enumerator _enumFunctionPart
enumerator _enumGeometricEndShape
enumerator _enumGtype
enumerator _enumIntegrationMethodType
enumerator _enumInterpolationType
enumerator _enumIOFormat
enumerator _enumIptype
enumerator _enumIterativeSolverType
enumerator _enumLanguage
enumerator _enumMeshGenerator
enumerator _enumObjtype
enumerator _enumPartitioning
enumerator _enumPtype
enumerator _enumQuadRule
enumerator _enumReductionMethodType
enumerator _enumRtype
enumerator _enumShapeType
enumerator _enumSobolevType
enumerator _enumSplineBC
enumerator _enumSplineParametrization
enumerator _enumSplineSubtype
enumerator _enumSplineType
enumerator _enumStorageAccessType
enumerator _enumStructuredMeshSplitRule
enumerator _enumStorageType
enumerator _enumSymType
enumerator _enumTransformType
enum VarComparison

Values:

enumerator _index
enumerator _color
enum VariableName

variable symbolic name

Values:

enumerator _varUndef
enumerator _x
enumerator _x1
enumerator _y
enumerator _x2
enumerator _z
enumerator _x3
enumerator _t
enumerator _x4
enumerator _xy
enumerator _yx
enumerator _xx
enumerator _yy
enumerator _r
enumerator _theta
enumerator _phi

Functions

Parameter _nbIterations (0, "nbiterations")
Parameter _residue (0.,"residue")
template<typename K>
inline Matrix<real_t> abs(const Matrix<K> &mat)

abs of a matrix

template<typename K>
inline Matrix<Matrix<real_t>> abs(const Matrix<Matrix<K>> &mat)

abs of a matrix of matrices

template<typename K>
inline SparseMatrix<real_t> abs(const SparseMatrix<K> &mat)

abs of a matrix

inline SuTermVector abs(const SuTermVector &s)
inline SymbolicFunction &abs(const SymbolicFunction &f)
TermVector abs(const TermVector &tv)

extracts modulus

Vector<real_t> abs(const Vector<complex_t> &a)

abs of a complex vector

Vector<real_t> abs(const Vector<real_t> &a)

abs of a real vector

Vector<Vector<real_t>> abs(const Vector<Vector<complex_t>> &a)

abs of a vector of complex vectors

Vector<Vector<real_t>> abs(const Vector<Vector<real_t>> &a)

abs of a vector of real vectors

template<typename T1_iterator, typename R_iterator>
void absTpl(T1_iterator b1, T1_iterator e1, R_iterator Rb)

returns magnitude of vector entries: R[i] = abs(T1[i])

template<typename T, typename K>
void acaFull(const SuBilinearForm &subf, LowRankMatrix<T> &lrm, number_t rmax, real_t eps, const std::vector<number_t> &rowDofs, const std::vector<number_t> &colDofs, const std::vector<Element*> &rowElts, const std::vector<Element*> &colElts, IEcomputationParameters &ieparams, K &vt, const std::list<std::multimap<real_t, IntgMeth>> &intgMaps, const std::vector<KernelOperatorOnUnknowns*> &kopregs, const std::vector<KernelOperatorOnUnknowns*> &kopsings, const std::map<Element*, GeoNumPair> &sidelts_u, const std::map<Element*, GeoNumPair> &sidelts_v, bool noUpdatedNormal, bool same_interpolation, bool sym)

compute Low Rank Matrix using ACA full pivoting method algorithm from the phd thesis of Benoît Lizé

T: type of the matrix coefficient K: type of computation (real or complex)

subf: a single unknown bilinear form defined on a unique domains pair (assumed) vt: to pass as template the scalar type (real or complex) lrm: the LowRankMatrix to build rmax: maximum rank of low rank matrix (if 0, not used) eps: threshold of of low rank matrix: |A-Ar|< eps*|A| rowDofs, colDofs: row and col dofs involved rowElts, colElts: row/col elements supporting row/col dofs ieparams: useful informations on ie computation intgMaps: list of integration methods to be used (built outside) kopregs , kopsings: list of regular and singular kernels when required

Produce a low rank matrix of the form A*B’ with A of size m x k and B of size n x k, k the rank

template<typename T, typename K>
void acaPartial(const SuBilinearForm &subf, LowRankMatrix<T> &lrm, number_t rmax, real_t eps, const std::vector<number_t> &rowDofs, const std::vector<number_t> &colDofs, const std::vector<Element*> &rowElts, const std::vector<Element*> &colElts, const Space *rowSpace, const Space *colSpace, IEcomputationParameters &ieparams, K &vt, const std::list<std::multimap<real_t, IntgMeth>> &intgMaps, const std::vector<KernelOperatorOnUnknowns*> &kopregs, const std::vector<KernelOperatorOnUnknowns*> &kopsings, const std::map<Element*, GeoNumPair> &sidelts_u, const std::map<Element*, GeoNumPair> &sidelts_v, bool noUpdatedNormal, bool same_interpolation, bool sym)

compute Low Rank Matrix using ACA partial pivoting method algorithm from the phd thesis of Benoît Lizé

T: type of the matrix coefficient K: type of computation (real or complex)

subf: a single unknown bilinear form defined on a unique domains pair (assumed) vt: to pass as template the scalar type (real or complex) mat: the LowRankMatrix to build rowDofs, colDofs: row and col dofs involved (start at 0) rowElts, colElts: pointers to row/col element supporting row/col dofs rowSpace, colSpace: row/col spaces (required to get FeDof) ieparams: useful informations on ie computation intgMaps: list of integration methods to be used (built outside) kopregs , kopsings: list of regular and singular kernels when required

Produce a low rank matrix of the form A*I*B

template<typename T, typename K>
void acaPlus(const SuBilinearForm &subf, LowRankMatrix<T> &lrm, number_t rmax, real_t eps, const std::vector<number_t> &rowDofs, const std::vector<number_t> &colDofs, const std::vector<Element*> &rowElts, const std::vector<Element*> &colElts, const Space *rowSpace, const Space *colSpace, IEcomputationParameters &ieparams, K &vt, const std::list<std::multimap<real_t, IntgMeth>> &intgMaps, const std::vector<KernelOperatorOnUnknowns*> &kopregs, const std::vector<KernelOperatorOnUnknowns*> &kopsings, const std::map<Element*, GeoNumPair> &sidelts_u, const std::map<Element*, GeoNumPair> &sidelts_v, bool noUpdatedNormal, bool same_interpolation, bool sym)

compute Low Rank Matrix using ACA plus partial pivoting method algorithm from the phd thesis of Benoît Lizé

T: type of the matrix coefficient K: type of computation (real or complex)

subf: a single unknown bilinear form defined on a unique domains pair (assumed) vt: to pass as template the scalar type (real or complex) mat: the LowRankMatrix to build rowDofs, colDofs: row and col dofs involved (start at 0) rowElts, colElts: pointers to row/col element supporting row/col dofs rowSpace, colSpace: row/col spaces (required to get FeDof) ieparams: useful informations on ie computation intgMaps: list of integration methods to be used (built outside) kopregs , kopsings: list of regular and singular kernels when required

Produce a low rank matrix of the form A*I*B

complex_t acos(const complex_t &z)
inline SuTermVector acos(const SuTermVector &s)
inline SymbolicFunction &acos(const SymbolicFunction &f)
inline TermVector acos(const TermVector &s)
complex_t acosh(const complex_t &z)
real_t acosh(const real_t &r)
inline SuTermVector acosh(const SuTermVector &s)
inline SymbolicFunction &acosh(const SymbolicFunction &f)
inline TermVector acosh(const TermVector &s)
template<typename T>
T adaptiveTrapz(T (*f)(real_t), real_t a, real_t b, real_t eps = 1E-6)
template<typename T>
T adaptiveTrapz(T (*f)(real_t, Parameters&), Parameters &pars, real_t a, real_t b, real_t eps = 1E-6)
TermVector add(const TermVector&, const TermVector&)

create TermVector U+V evaluate dofs on a function: dof_i(f) for any scalar dofs related to scalar unknown u and domain

void addCanonicalAndCanonical(const Geometry &g1, const Geometry &g2, Geometry &g)
void addCompositeAndCanonical(const Geometry &g1, const Geometry &g2, Geometry &g)
void addCompositeAndComposite(const Geometry &g1, const Geometry &g2, Geometry &g)
void addCompositeAndLoop(const Geometry &g1, const Geometry &g2, Geometry &g)
void addElts(Node<GeomElement> *node, std::set<GeomElement*> &elts, const std::set<number_t> &vns, std::map<string_t, std::pair<GeomElement*, GeomElement*>> &sideIndex, std::set<number_t> vBoundaryIndex, std::map<string_t, GeomElement*> &cdomIndex, dimen_t d)
void addElts(std::set<GeomElement*> &elts, std::set<GeomElement*> &elts1, std::set<GeomElement*> &elts2, const std::set<number_t> &vSideCrack)
void addLoopAndCanonical(const Geometry &g1, const Geometry &g2, Geometry &g)
void addLoopAndLoop(const Geometry &g1, const Geometry &g2, Geometry &g)
void addMatrixMatrix(const LargeMatrix<complex_t> &matA, const LargeMatrix<real_t> &matB, LargeMatrix<complex_t> &matC)

Add two different type largeMatrix and store result into the third The two matrices must share the same storage.

The result matrix will point to the same storage after the summation

Parameters:
  • matA – complex matrix

  • matB – real matrix

  • matC – complex matrix which share the same storage.

void addMatrixMatrix(const LargeMatrix<real_t> &matA, const LargeMatrix<complex_t> &matB, LargeMatrix<complex_t> &matC)

Add two different type largeMatrix and store result into the third The two matrices must share the same storage.

The result matrix will point to the same storage after the summation

Parameters:
  • matA – real matrix

  • matB – complex matrix

  • matC – complex matrix which share the same storage.

template<typename T>
void addMatrixMatrix(const LargeMatrix<T> &matA, const LargeMatrix<T> &matB, LargeMatrix<T> &matC)
template<typename T>
LargeMatrix<T> addMatrixMatrix(const LargeMatrix<T> &matA, const LargeMatrix<T> &matB, T s = T(1))

A+s*B.

template<typename S>
LargeMatrix<S> *addMatrixMatrixSkyline(const LargeMatrix<S> &matA, const LargeMatrix<S> &matB)
template<typename T>
LargeMatrix<T> *addMatrixMatrixSkyline(const LargeMatrix<T> &matA, const LargeMatrix<T> &matB)
template<typename T>
void addScaledVector(SuTermVector &x, SuTermVector &v, const T &t)

special operation to accumulate t*v in x, assumed consistent unknown and same size

x+=v*t

template<typename T>
void addScaledVector(TermVector &x, TermVector &v, const T &t)

x+=t*v

void addScaledVector(VectorEntry&, VectorEntry&, const complex_t&)

x+=t*v (t complex)

void addScaledVector(VectorEntry&, VectorEntry&, const real_t&)

x+=t*v (t real)

void addVectorThenAssign(TermVector &tv1, const TermVector &tv2)

function used in solver

operation U+=t

template<typename K, typename KK>
void addVectorThenAssign(Vector<K> &v, const Vector<KK> &b)
void addVectorThenAssign(Vector<real_t> &v, const Vector<complex_t> &cA)

Add then assign complex_t to real_t In fact, this kind of function is forbidden but we implement it here as a trick to overcome the problem of instantiation in Solver.

inline complex_t adj(const complex_t&)
Matrix<complex_t> adj(const Matrix<complex_t> &cB)

adjoint of a complex matrix

adjoint complex matrix

Matrix<real_t> adj(const Matrix<real_t> &rB)

adjoint of a real matrix (transpose)

adjoint (transpose) real matrix

inline real_t adj(const real_t&)
template<typename T>
Value &adj(const T &v)
OperatorOnFunction &adj(Function&)

conjugate and transpose f

OperatorOnKernel &adj(Kernel&)

conjugate and transpose k

OperatorOnFunction &adj(OperatorOnFunction&)

conjugate and transpose opf

OperatorOnKernel &adj(OperatorOnKernel&)

conjugate and transpose opk

SymbolicTermMatrix &adj(SymbolicTermMatrix &S)
template<typename T> inline Function & adj (T(fun)(const Point &, const Point &, Parameters &))
template<typename T> inline Function & adj (T(fun)(const Point &, Parameters &))
template<typename T> inline Function & adj (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &))
template<typename T> inline Function & adj (T(fun)(const Vector< Point > &, Parameters &))
Value &adj(Value &v)

set to true or false the temporary conjugate/transpose flag

set to true or false the temporary transpose/conjugate flag

inline complex_t adjoint(const complex_t &c)
template<typename M_it, typename MM_it>
void adjoint(const dimen_t nbr, const dimen_t nbc, M_it it_m1b, MM_it it_m2b)
Matrix<complex_t> adjoint(const Matrix<complex_t> &cB)

adjoint of a complex matrix

adjoint complex matrix

Matrix<real_t> adjoint(const Matrix<real_t> &rB)

adjoint of a real matrix (transpose)

adjoint (transpose) real matrix

template<typename K>
MatrixEigenDense<K> adjoint(const MatrixEigenDense<K> &mat)
inline real_t adjoint(const real_t &r)
template<typename K>
SparseMatrix<K> adjoint(const SparseMatrix<K> &m)
template<typename K>
VectorEigenDense<K> adjointVec(const VectorEigenDense<K> &v)

Adjoint a vector.

Parameters:

v[in] source vector

Returns:

adjointed vector

void adjustScalarEntriesG(VectorEntry *&scalar_entries_p, std::vector<DofComponent> &cdofs, const std::vector<DofComponent> &newcdofs)

adjust the scalar entries to the cdofs numbering newcdofs when cdofs is included in newcdofs, new zeros are introduced (extension) when newcdofs is included in cdofs , coefficients are removed (restriction) else it is in a same time a restriction (removed cdofs) and an extension (omitted cdof) in any case, the coefficient may be permuted and cdofs = newcdofs at the end

tool to adjust VectorEntry

used by SuTermVector and TermVector

inline complex_t airy(const complex_t &z, DiffOpType d = _id)

Airy function: Ai(z) or Ai’(z)

inline complex_t airy(real_t x, DiffOpType d = _id)

Airy function: Ai(x) or Ai’(x)

void airyError(int err, const complex_t &z, const string_t &pr)
inline real_t airyR(const real_t &x)
inline real_t airyRp(const real_t &x)
inline real_t airyRpp(const real_t &x)
void alignTermMatrix(TermMatrix*&, TermMatrix*&, bool keepMatrix = true)

check if same dofs and align Termatrix’s if not the same dofs (internal tool)

check if A and B are defined on the same dofs, if not, align matrix to the largest set of dofs (union of A dofs and B dofs) use the sums A+0*diag(B) and B+0*diag(A) to produced matrices with same dofs if keepMatrix = true, create copy of A, B matrices on the memory stack if keepMatrix = false, A, B matrices are modified if not the same dofs NOTE: adding diagonal 0 induces storage change and may increase significatively the storage size !

template<class MAB_, class MAsB_>
MAsB_ *allocAsB(const MAB_ &matA, const MAB_ &matB, const complex_t sigma)
template<class K_, class MAsB_, class MB_>
MAsB_ *allocAsB(const MAsB_ &matA, const MB_ &matB, const K_ sigma)

Allocation of temporary matrix A - s B.

template<class K_, class MA_>
MA_ *allocAsI(const MA_ &matA, const K_ sigma)

Allocation of temporary matrix A - s Id.

void alternateRule(QuadRule, ShapeType, const string_t&)

display message before choosing an alternate rule

inline real_t angle(const std::vector<real_t> &u, const std::vector<real_t> &v, const std::vector<real_t> &n = std::vector<real_t>())

signed or unsigned angle u to v in [-pi,pi], n unit normal to u-v plane in 2D and 3D; |n|=1 and n^(u^v) = 0 are not checked ! sign of angle is related to n, if n is not given, n=u^v is chosen and thus angle is always >=0 (not signed) if u=0 or v=0 it returns 0

void appliedRhsCorrectorTo(VectorEntry *b, const std::vector<DofComponent> &cdofsb, MatrixEntry *rhsmat, const Constraints *cu, const Constraints *cv, const ReductionMethod &rm)

correct a right hand side b to take into account constraints recall that constraints on unknown are of the form Ue1 + CUr1 = f (C matrix e1 x r1) and constraints on test functions are of the form Ve2 + DVr2 = 0 (D matrix e2 x r2) where ei stands for eliminated indices and ri for reduced indices (e1=e2 and r1=r2 in most cases) in the matrix reduction process, a corrector matrix has been computed, say E matrix m x e1 the correction process consists in first step : b -= E * f_e1 (column combination) second step: b_r2 -= Dt * b_e2 (row combination) third step : b_e2 = f_e1 (deletion in case of real reduction) in simple cases (Dirichlet for instance), C=D=0 so the second step is not required

right hand side constraints correction

b : scalar vector to be corrected cdofsb: component dof of vector b rhsmap: pointer to correction matrix (C) cu, cv: pointer to u/v constraints system

void applyEssentialConditions(VectorEntry &v, const std::vector<DofComponent> &cdofs, const Constraints &cs)

apply essential condition to a VectorEntry (user tool) v : the SCALAR vector to be reduced cdofs: the component dofs of the vector v cs : the constraints to apply once reduced, the constraints reads Ve = f - C*Vr where Ve the ne eliminated components, Vr the nr reduced components and C a ne x nr matrix this function, first build the vector s = f - C*Vr and then set the eliminated components of v to s

apply constraints to a vector

int arConvergedEigenvalues()
std::string arEigInfos()

This function calls the previous ones, gather the informations in a string which is returned.

bool areNeighbors2D(const Point &p, const Point &q, real_t tol)

determines if a prism is valid

determines if 2D points are neighbors

bool areNeighbors3D(const Point &p, const Point &q, real_t tol)

determines if 3D points are neighbors

bool arePointsCoplanar(const Point &p1, const Point &p2, const Point &p3, const Point &p4, real_t tol)

test if 4 points are coplanar

bool arePointsCoplanar(const std::vector<Point> &p, real_t tol)

test if a set of points is coplanar

bool arGetAutoShift()
int arGetIter()
int arGetMaxit()
int arGetMode()
std::string arGetModeStr()
int arGetN()
int arGetNcv()
int arGetNev()
std::complex<double> arGetShift()
double arGetShiftImag()
double arGetTol()
std::string arGetWhich()
void Argyris2dMap(const std::vector<real_t> &rw, std::vector<real_t> &w, real_t j11, real_t j12, real_t j21, real_t j22, real_t t11, real_t t12, real_t t13, real_t t21, real_t t22, real_t t23, real_t t31, real_t t32, real_t t33, real_t a1, real_t a2, real_t a3, real_t b1, real_t b2, real_t b3, real_t c1, real_t c2, real_t c3, real_t d1, real_t d2, real_t d3, real_t n1x, real_t n1y, real_t n2x, real_t n2y, real_t n3x, real_t n3y)
std::string arInterfaceObj()
std::string arKindOfFactorization()
std::string arpackObj()
EigenElements arpackSolve(TermMatrix *A, TermMatrix *B, const std::vector<Parameter> &ps)

Main entry point for Arpack eigenvalue solver.

bool arParametersDefined()
template void array2Vector (const complex_t *source, std::vector< complex_t > &vec)
template<typename K_>
void array2Vector(const K_ *source, std::vector<K_> &vec)

Convert array of K_ to vector.

template void array2Vector (const real_t *source, std::vector< real_t > &vec)
complex_t ascendingSeriesOfE1(const complex_t &z)

ascending series in E1 formula (used for ‘small’ z)

complex_t asin(const complex_t &z)
inline SuTermVector asin(const SuTermVector &s)
inline SymbolicFunction &asin(const SymbolicFunction &f)
inline TermVector asin(const TermVector &s)
complex_t asinh(const complex_t &z)
real_t asinh(const real_t &r)
inline SuTermVector asinh(const SuTermVector &s)
inline SymbolicFunction &asinh(const SymbolicFunction &f)
inline TermVector asinh(const TermVector &s)
template<typename T, typename K>
void assemblyDG(LargeMatrix<T> &mat, std::vector<Matrix<K>> &matels, const K &coef, bool onlyM11, const std::vector<number_t> &adrs11, const std::vector<number_t> &adrs12, const std::vector<number_t> &adrs21, const std::vector<number_t> &adrs22, bool sym, const std::vector<number_t> &dofNum_u1, const std::vector<number_t> &dofNum_v1, number_t ncu1, number_t ncv1, const std::vector<number_t> &dofNum_u2, const std::vector<number_t> &dofNum_v2, number_t ncu2, number_t ncv2)
inline void assemblyMat(complex_t &mat, Matrix<complex_t>::iterator itM, number_t nbu)
inline void assemblyMat(complex_t &mat, Matrix<real_t>::iterator itM, number_t nbu)
template<typename K, typename IteratorM>
inline void assemblyMat(K &mat, IteratorM itM, number_t nbu)
inline void assemblyMat(Matrix<complex_t> &mat, Matrix<complex_t>::iterator itM, number_t nbu)
inline void assemblyMat(Matrix<complex_t> &mat, Matrix<real_t>::iterator itM, number_t nbu)
template<typename K, typename IteratorM>
inline void assemblyMat(Matrix<K> &mat, IteratorM itM, number_t nbu)
inline void assemblyMat(Matrix<real_t> &mat, Matrix<complex_t>::iterator itM, number_t nbu)
inline void assemblyMat(Matrix<real_t> &mat, Matrix<real_t>::iterator itM, number_t nbu)
inline void assemblyMat(real_t &mat, Matrix<complex_t>::iterator itM, number_t nbu)
inline void assemblyMat(real_t &mat, Matrix<real_t>::iterator itM, number_t nbu)
inline void assemblyMatNoCritical(complex_t &mat, Matrix<complex_t>::iterator itM, number_t nbu)
inline void assemblyMatNoCritical(complex_t &mat, Matrix<real_t>::iterator itM, number_t nbu)
template<typename K, typename IteratorM>
inline void assemblyMatNoCritical(K &mat, IteratorM itM, number_t nbu)
inline void assemblyMatNoCritical(Matrix<complex_t> &mat, Matrix<complex_t>::iterator itM, number_t nbu)
inline void assemblyMatNoCritical(Matrix<complex_t> &mat, Matrix<real_t>::iterator itM, number_t nbu)
template<typename K, typename IteratorM>
inline void assemblyMatNoCritical(Matrix<K> &mat, IteratorM itM, number_t nbu)
inline void assemblyMatNoCritical(Matrix<real_t> &mat, Matrix<complex_t>::iterator itM, number_t nbu)
inline void assemblyMatNoCritical(Matrix<real_t> &mat, Matrix<real_t>::iterator itM, number_t nbu)
inline void assemblyMatNoCritical(real_t &mat, Matrix<complex_t>::iterator itM, number_t nbu)
inline void assemblyMatNoCritical(real_t &mat, Matrix<real_t>::iterator itM, number_t nbu)
inline void assign(complex_t &x, const complex_t &y)
inline void assign(complex_t &x, const real_t &y)
inline void assign(real_t &x, const complex_t &y)
inline void assign(real_t &x, const real_t &y)

Assigns y to x for all combinations of a priori unknown types of x and y thus preventing from an invalid cast.

template<>
inline void assignVectorTo(complex_t &t, const complex_t &v)
template<>
inline void assignVectorTo(complex_t &t, const real_t &v)
template<>
inline void assignVectorTo(real_t &t, const real_t &v)
template<typename T, typename K>
inline void assignVectorTo(T &t, const K &v)

some fake functions to override template compilation problem of OperatorOnFunction::eval

template<>
inline void assignVectorTo(Vector<complex_t> &t, const Vector<complex_t> &v)
template<>
inline void assignVectorTo(Vector<complex_t> &t, const Vector<real_t> &v)
template<>
inline void assignVectorTo(Vector<real_t> &t, const Vector<real_t> &v)
string_t asString(GeoOperation op)

give a string representation of GeoOperation

string representation of GeoOperation

complex_t atan(const complex_t &z)
inline SuTermVector atan(const SuTermVector &s)
inline SymbolicFunction &atan(const SymbolicFunction &f)
inline TermVector atan(const TermVector &s)
inline SymbolicFunction &atan2(const real_t &r, const SymbolicFunction &f)
inline SymbolicFunction &atan2(const SymbolicFunction &f, const real_t &r)
inline SymbolicFunction &atan2(const SymbolicFunction &f1, const SymbolicFunction &f2)
complex_t atanh(const complex_t &z)
real_t atanh(const real_t &r)
inline SuTermVector atanh(const SuTermVector &s)
inline SymbolicFunction &atanh(const SymbolicFunction &f)
inline TermVector atanh(const TermVector &s)
void badDegreeRule(int degree, const string_t &name, ShapeType sh)

error message

void badNodeRule(int n_nodes, const string_t &name, ShapeType sh)

error message

string_t basename(const string_t &f)

return basename of a file name using last slash and last point as delimiters

string_t basenameWithExtension(const string_t &f)

return basename of a file name using last slash as delimiter

inline complex_t besselI(const complex_t &z, real_t N)

Modified Bessel function of the first kind and order N: I_N(z) (complex case)

template<>
inline real_t besselI(real_t x, real_t N)

Modified Bessel function of the first kind and real order N: I_N(x)

template<class T_>
real_t besselI(real_t x, T_ N)
inline complex_t besselI0(const complex_t &z)

Modified Bessel function of the first kind and order 0 : I_0(z) (complex case)

real_t besselI0(real_t x)

Modified Bessel function of the first kind and order 0 : I_0(x)

std::vector<real_t> besselI0N(real_t x, number_t n)

Modified Bessel functions of the first kind and order 0..N.

inline complex_t besselI1(const complex_t &z)

Modified Bessel function of the first kind and order 1 : I_1(z) (complex case)

real_t besselI1(real_t x)

Modified Bessel function of the first kind and order 1 : I_1(x)

inline complex_t besselJ(const complex_t &z, real_t N)

Bessel function of the first kind and order N: J_N(z) (complex case)

template<>
inline real_t besselJ(real_t x, real_t N)

Bessel function of the first kind and real order N: J_N(x)

template<class T_>
real_t besselJ(real_t x, T_ N)
inline complex_t besselJ0(const complex_t &z)

Bessel function of the first kind and order 0 : J_0(z) (complex case)

real_t besselJ0(real_t x)

Bessel function of the first kind and order 0 : J_0(x)

std::vector<real_t> besselJ0N(real_t x, number_t N)

Bessel functions of the first kind and order 0..N.

inline complex_t besselJ1(const complex_t &z)

Bessel function of the first kind and order 1 : J_1(z) (complex case)

real_t besselJ1(real_t x)

Bessel function of the first kind and order 1 : J_1(x)

void besselJY01Test(std::ostream &out)
inline complex_t besselK(const complex_t &z, real_t N)

Modified Bessel function of the second kind and order N: K_N(z) (complex case)

template<>
inline real_t besselK(real_t x, real_t N)

Modified Bessel function of the second kind and real order N: K_N(x)

template<class T_>
real_t besselK(real_t x, T_ N)
inline complex_t besselK0(const complex_t &z)

Modified Bessel function of the second kind and order 0 : K_0(z) (complex case)

real_t besselK0(real_t x)

Modified Bessel function of the second kind and order 0 : K_0(x)

std::vector<real_t> besselK0N(real_t x, number_t n)

Modified Bessel functions of the second kind and order 0..N.

inline complex_t besselK1(const complex_t &z)

Modified Bessel function of the second kind and order 1 : K_1(z) (complex case)

real_t besselK1(real_t x)

Modified Bessel function of the second kind and order 1 : K_1(x)

inline complex_t besselY(const complex_t &z, real_t N)

Bessel function of the second kind and order N: Y_N(z) (complex case)

template<>
inline real_t besselY(real_t x, real_t N)

Bessel function of the second kind and real order N: Y_N(x)

template<class T_>
real_t besselY(real_t x, T_ N)
inline complex_t besselY0(const complex_t &z)

Bessel function of the second kind and order 0 : Y_0(z) (complex case)

real_t besselY0(real_t x)

Bessel function of the second kind and order 0 : Y_0(x)

std::vector<real_t> besselY0N(real_t x, number_t N)

Bessel functions of the second kind and order 0..N.

real_t besselY0withoutSingularity(real_t x)
inline complex_t besselY1(const complex_t &z)

Bessel function of the second kind and order 0 : Y_1(z) (complex case)

real_t besselY1(real_t x)

Bessel function of the second kind and order 0 : Y_1(x)

real_t besselY1withoutSingularity(real_t x)
number_t binomialCoefficient(int n, int k)

ompute binomial coefficient C_n^k = n! / ( k! * (n-k)! )

compute binomial coefficient C_n^k = = n! / ( k! * (n-k)! )

void binomialCoefficients(std::vector<number_t> &row)

compute n-th row in Pascal’s triangle of binomial coefficients

compute n-th row of Pascal binomial coefficients where n = row.size()-1

  • k = 0 1 2 3 4 5

  • n = 1 | 1 1

  • n = 2 | 1 2 1 C^n_k = C^{n-1}_{k-1} + C^{n-1}_k , 0 <= k <= n

  • n = 3 | 1 3 3 1

  • n = 4 | 1 4 6 4 1

  • n = 5 | 1 5 10 10 5 1 - n = ………………….

void binomialCoefficientsScaled(std::vector<real_t> &row)

ompute n-th row in Pascal’s triangle of binomial coefficients scaled by 1/(n-1)!

compute n-th row of Pascal binomial coefficients scaled by (n-1)! where n = row.size()-1

inline complex_t biry(real_t x, DiffOpType d = _id)

Airy function: Bi(x) or Bi’(x)

inline number_t bitReverse(number_t x, int log2n)
void blanks(std::string&, int_t n)

add to or remove from end of string n blanks(keep always first char)

template<typename I>
bool blockAdmissible(ClusterNode<I>*, ClusterNode<I>*, HMAdmissibilityRule, real_t eta = 1.)

admissibility rule for a cluster node product

string_t booltoWord(bool)

convert bool to string true or false

inline Geometry &boundary(const Geometry &g)

definition of a geometry by restriction to boundary

BoundingBox boundingBox(const Element &elt)
BoundingBox boundingBox(const FeDof &fed)
BoundingBox boundingBox(const Point &p)
template<typename T>
BoundingBox boundingBox(const T&)
std::map<const Unknown*, Constraints*> buildConstraints(const EssentialConditions &ecs)

build Constraints set from EssentialConditions (list of essential conditions)

build Constraints from EssentialConditions

  • create Constraints object for each essential condition

  • merge constraints involving same unknown

  • if there exist a constraint coupling different unknowns merge all Constraints object in one Constraints object the output is a map of Constraints pointer indexed by unknown pointer; only one Constraints pointer in case of coupling conditions

void buildInterpolationData(InterpolationType interpType, number_t dim, FEType &typ, FESubType &sub, number_t &num, SobolevType &spa)

build interpolation data from InterpolationType

const Function *buildMap(const GeomDomain&, const GeomDomain&)

build map from dom1 to dom2 in simple cases

void buildNameAndSuffixTransformParams(std::vector<Parameter> &ps, string_t &name, string_t &suffix)
void buildParamSaveToFile(const Parameter &p, IOFormat &iof, bool &aFilePerDomain)

save mesh to file in format _msh, _melina ,_vtk or _vtu when withDomains is true, domain informations are also exported

input/output function

void buildParamSaveToFile(const Parameter &p, IOFormat &iof, string_t &dataName, bool &aFilePerDomain)

input/output function

void buildParamSaveToFile(const Parameter &p, StorageType &st, bool &encodingFileName)
void buildSolverParams(const std::vector<Parameter> &ps, real_t &tol, number_t &maxIt, real_t &omega, number_t &krylovDim, number_t &verboseLevel, string_t &name, IterativeSolverType &solverType)

main routine to manage parameters of solver constructors

MatrixStorage *buildStorage(const Space &rs, const Space &cs, StorageType st, AccessType at, StorageBuildType bt)

build a storage from a pair of Space

MatrixStorage *buildStorage(StorageType st, AccessType at, StorageBuildType bt, number_t dimr, number_t dimc, const std::vector<std::set<number_t>> &indices, const string_t &id = "")

build a storage from type, dimension and column indices (vector of sets)

MatrixStorage *buildStorage(StorageType st, AccessType at, StorageBuildType bt, number_t dimr, number_t dimc, const std::vector<std::vector<number_t>> &indices, const string_t &id = "")

build a storage from type, dimension and column indices (vector of vectors)

MatrixStorage *buildStorage(StorageType st, AccessType at, StorageBuildType bt, number_t dimr, number_t dimc, const string_t &id = "")

build a storage from type and dimension, no allocation of pointers (void matrix)

template<class T>
inline RefToValue<T> ByRef(T &t)

RefToValue creator.

real_t byteTo(number_t mem, MemoryUnit mu = _megabyte)

convert from byte to xxxbyte

string_t capitalize(const string_t &s)

convert “abCdeF” to “AbCdeF”

returns string_t with initial converted to uppercase

std::vector<complex_t> cardan(complex_t a, complex_t b, complex_t c, complex_t d)

computes roots of degree 3 polynomial (complex Cardan method)

std::vector<complex_t> cardan(real_t a, real_t b, real_t c, real_t d)

computes roots of degree 3 polynomial (real Cardan method)

complex_t cbrt(const complex_t &z)
real_t cbrt(const real_t &r)
template<typename Scalar>
complex_t cdiv(Scalar xr, Scalar xi, Scalar yr, Scalar yi)
void chebyshevPolynomials(real_t, std::vector<real_t>&)

Chebyshev polynomials (of the first kind) on [-1, 1] up to order n T_0(x) = 1, T_1(x) = x, T_n(x) = 2 x T_{n-1}(x) - T_{n-1}(x) , n > 1.

void checkBC(BcType &bcP, BcType &bcM, complex_t &thetaP, complex_t &thetaM)
template<class M_p>
void checkCond(M_p fact_p, string_t matName)
bool checkConsistancy(const OperatorOnUnknown&, AlgebraicOperator, const OperatorOnUnknown&)

check opu aop opv consistancy

void checkTermVectorInOperator(const TermVector &tv, const string_t &op)
void childNodes(Node<GeomElement> *curnode, const MeshDomain *momega, GeomElement *gelt, std::set<GeomElement*> &pickedElts)

test intersection of E1 with E2 with a tolerance (default is theEpsilon)

internal tool

void clear(Term &t1)

user aliases to term(s) cleaning

void clear(Term &t1, Term &t2)
void clear(Term &t1, Term &t2, Term &t3)
void clear(Term &t1, Term &t2, Term &t3, Term &t4)
void clear(Term &t1, Term &t2, Term &t3, Term &t4, Term &t5)
void clearProjectors(const Space &sp)

clear Projectors depending on a space (implemented in Projector.cpp)

void clearStorages(const Space &sp)

clear Storages depending on a space (implemented in Term.cpp)

void clearTerms(const Space &sp)

clear Terms depending on a space (implemented in Term.cpp)

void clearUnknowns(const Space &sp)

clear Unknowns depending on a space (implemented in Unknown.cpp)

void *cloneFunction(const void *p)
void *cloneGeomDomain(const void *p)
void *cloneIntegrationMethod(const void *p)
void *cloneIntegrationMethods(const void *p)
void *cloneParametrization(const void *p)
void *cloneSpline(const void *p)
void *cloneTermVectors(const void *p)
void *cloneTransformation(const void *p)
inline void closedCrack(Geometry &g1)

user shortcut to crack one geometry

inline void closedCrack(Geometry &g1, Geometry &g2)

user shortcut to crack 2 geometries

inline void closedCrack(Geometry &g1, Geometry &g2, Geometry &g3)

user shortcut to crack 3 geometries

inline void closedCrack(Geometry &g1, Geometry &g2, Geometry &g3, Geometry &g4)

user shortcut to crack 4 geometries

inline void closedCrack(Geometry &g1, Geometry &g2, Geometry &g3, Geometry &g4, Geometry &g5)

user shortcut to crack 5 geometries

inline void closedCrack(Geometry &g1, Geometry &g2, Geometry &g3, Geometry &g4, Geometry &g5, Geometry &g6)

user shortcut to crack 6 geometries

inline void closedCrack(Geometry &g1, Geometry &g2, Geometry &g3, Geometry &g4, Geometry &g5, Geometry &g6, Geometry &g7)

user shortcut to crack 7 geometries

inline void closeFile(FILE *data)
inline void closeFile(std::ifstream &data)
inline const complex_t &cmplx(const complex_t &x)
Matrix<complex_t> cmplx(const Matrix<real_t> &rB)

cast a real matrix to a complex matrix

template<typename K>
MatrixEigenDense<complex_t> cmplx(const MatrixEigenDense<K> &mat)
complex_t cmplx(const Parameter&)

cast to complex_t

inline complex_t cmplx(const real_t &x)

various useful definition to insure consistancy with other classes

Vector<complex_t> cmplx(const Vector<complex_t> &a)

cast a complex vector to a complex vector

Vector<complex_t> cmplx(const Vector<real_t> &a)

cast a real vector to a complex vector

Vector<Vector<complex_t>> cmplx(const Vector<Vector<real_t>> &a)

cast a real vector to a complex vector

cast a real vector vector to a complex vector vector

string_t coefAsString(bool isFirst, const complex_t &a)

string form of a complex coefficient in a linear combination

bool colAmd(number_t nbr, number_t nbc, const std::vector<number_t> &rowIndices, const std::vector<number_t> &colPointer, std::vector<number_t> &colPerm)
template<typename T>
LowRankMatrix<T> combine(const LowRankMatrix<T> &L1, const T &s1, const LowRankMatrix<T> &L2, const T &s2, real_t eps = 0)
template<typename K>
PolynomialT<K> combine(const PolynomialBasisT<K> &ps, const std::vector<K> &a)

return combination a1*p1+a2*p2+…

template<typename K>
std::vector<PolynomialT<K>> combine(const PolynomialsBasisT<K> &ps, const std::vector<K> &a)

return combination a1*p1+a2*p2+…

template<typename T, typename K>
void combine(std::vector<std::pair<number_t, K>> &u, const std::map<number_t, T> &v, K a)
std::pair<Point, Point> commonPerpendicularOfStraightLines(const Point &Am, const Point &Ap, const Point &Bm, const Point &Bp)

common perpendicular of the straight lines defined respectively by the pair of points Am, Ap and Bm, Bp returns a pair of points defining the perpendicular the first point is on (AmAp), the second on (BmBp)

common perpendicular of the straight lines

int_t compare(const Point &p, const real_t &s, int c)

comparaison function used by KdTree

bool compareGELTs(const GELT &a, const GELT &b)

Comparison function of two Gmsh elements according to type and domain numbers: a < b if its type number is smaller, then if its domain number is smaller.

bool compareMELTs(const MELT &a, const MELT &b)
bool compareSpaceUsingSize(const Space *sp1, const Space *sp2)

compare spaces using their sizes

inline bool compColSize(SuTermMatrix *sut1, SuTermMatrix *sut2)

compare SuTermMatrix regarding col sizes

TermVector complex(const TermVector &tv)

converts a real TermVector into a complex one

complex_t complex_const_fun(const Point &P, Parameters &pa)
Matrix<complex_t> complex_matrix_const_fun(const Point &P, Parameters &pa)
Vector<complex_t> complex_vector_const_fun(const Point &P, Parameters &pa)
inline complex_t complexRorC(const complex_t &c, const Vector<complex_t> &vc)
inline complex_t complexToRorC(const complex_t &c, const complex_t &cc)
inline complex_t complexToRorC(const complex_t &c, const Matrix<complex_t> &mc)
inline real_t complexToRorC(const complex_t &c, const Matrix<real_t> &mr)
inline real_t complexToRorC(const complex_t &c, const real_t &r)
inline real_t complexToRorC(const complex_t &c, const Vector<real_t> &vr)
template<class T>
inline T complexToT(const complex_t &c)

forced cast complex to any

template<>
inline real_t complexToT(const complex_t &c)
template<>
inline Matrix<real_t> complexToT(const complex_t &c)
template<>
inline Matrix<complex_t> complexToT(const complex_t &c)
template<class T>
inline T complexToT(const Matrix<complex_t> &c)

special forced cast complex

template<>
inline Matrix<real_t> complexToT(const Matrix<complex_t> &c)
template<class T>
inline T complexToT(const Vector<complex_t> &c)

forced cast complex to any

template<>
inline Vector<real_t> complexToT(const Vector<complex_t> &c)
void compNext(int n, int k, int a[], bool *more, int *h, int *t)

computes the compositions of the integer N into K parts

inline bool compNnzSutermMatrix(SuTermMatrix *sut1, SuTermMatrix *sut2)

compare SuTermMatrix regarding their numbers of non zero

Transformation composeCanonicalAndCanonical(const Transformation &t1, const Transformation &t2)

composition of canonical transformations

Transformation composeCanonicalAndComposite(const Transformation &t1, const Transformation &t2)

composition of a canonical transformation and a composite transformation

Transformation composeCompositeAndCanonical(const Transformation &t1, const Transformation &t2)

composition of a composite transformation and a canonical transformation

Transformation composeCompositeAndComposite(const Transformation &t1, const Transformation &t2)

composition of composite transformations

inline bool compRowSize(SuTermMatrix *sut1, SuTermMatrix *sut2)

compare SuTermMatrix regarding row sizes

void compute(Term &t)

user aliases to term(s) computation

void compute(Term &t1, Term &t2)
void compute(Term &t1, Term &t2, Term &t3)
void compute(Term &t1, Term &t2, Term &t3, Term &t4)
void compute(Term &t1, Term &t2, Term &t3, Term &t4, Term &t5)
template<typename T, typename K>
void computeBilAsLin(const std::pair<BasicLinearForm*, complex_t> &lf, Vector<T> &val, K &vt)

Computation of a linear form defined from a bilinear form and a TermVector to apply to l(v) = a(U,v) or l(u)=a(u,V) where U,V are some term vectors.

example: intg_gamma grad(U)|grad(v) dy U a termvector int_sigma intg_gamma (U*G)*v U a termvector

The algorithm is the most lazy one:

  • go to the TermMatrix machinery to compute matrix A from a(u,v)

  • do the product A*U or V*A

  • add the product result to vector val

Parameters:
  • lf – a pair of BasicLinearForm and coefficient

  • val – vector of values to fill in

  • vt – type of value type

void computeGeometricalQuantities(const Point &S1, const Point &S2, const Point &S3, const Point &normalT, const Point &X, Vector<Point> &I, real_t &h, bool I3)

Internal functions

template<typename T, typename K, typename I>
void computeHMatrix(const SuBilinearForm &subf, HMatrix<T, I> &mat, K &vt, Space *space_u_p, Space *space_v_p, const Unknown *u_p, const TestFct *v_p)

IE computation of a scalar SuBiinearForm on a == unique domain == using HMatrix method type T: type of the matrix coefficient K: type of computation (real or complex) I: type of the tree node index of the HMatrix.

subf: a single unknown bilinear form defined on a unique domains pair (assumed) mat: the HMatrix, its structure is assumed to be up to date space_u_p, space_v_p: pointers to real u-space and real v-space vt: to pass as template the scalar type (real or complex)

template<typename T, typename K>
void computeMatel(LargeMatrix<T> &mat, std::vector<number_t> &adrs, bool sym, const Quadrature *quad, bool upmapdata, GeomMapData *mapdata, Vector<real_t> &nv, K coef, bool invJacobian, bool normalRequired, AlgebraicOperator aop, bool uonE1, bool vonE1, RefElement *relt_u, GeomElement *gelt_u, number_t side_u, MeshElement *melt_u, bool upmapdata_u, GeomMapData *mapdata_u, number_t nbc_u, number_t nbt_u, const OperatorOnUnknown &op_u, number_t ord_opu, bool mapsh_u, FEMapType femt_u, bool rotsh_u, bool changeSign_u, Vector<real_t> *sign_u, dimen_t dimfun_u, std::vector<ShapeValues> &shv_us, std::vector<number_t> &dofNum_u, RefElement *relt_v, GeomElement *gelt_v, number_t side_v, MeshElement *melt_v, bool upmapdata_v, GeomMapData *mapdata_v, number_t nbc_v, number_t nbt_v, const OperatorOnUnknown &op_v, number_t ord_opv, bool mapsh_v, FEMapType femt_v, bool rotsh_v, bool changeSign_v, Vector<real_t> *sign_v, dimen_t dimfun_v, std::vector<ShapeValues> &shv_vs, std::vector<number_t> &dofNum_v, const std::vector<number_t> &perm = std::vector<number_t>())
std::vector<Vector<real_t>> computeNormalsAt(const GeomDomain &dom, const std::vector<Point> &xs, ProjectorType pt = _noProjectorType, OrientationType orient = _undefOrientationType, const GeomDomain *gp = nullptr)

compute normals at some points of a GeomDomain

template<typename T, typename K>
void computePartialIE(const SuBilinearForm &subf, LargeMatrix<T> &mat, K &vt, const std::vector<number_t> &rowDofs, const std::vector<number_t> &colDofs, const std::vector<Element*> &rowElts, const std::vector<Element*> &colElts, IEcomputationParameters &ieparams, const std::list<std::multimap<real_t, IntgMeth>> &intgMaps, const std::vector<KernelOperatorOnUnknowns*> &kopregs, const std::vector<KernelOperatorOnUnknowns*> &kopsings, const std::map<Element*, GeoNumPair> &sidelts_u, const std::map<Element*, GeoNumPair> &sidelts_v, bool noUpdatedNormal, bool same_interpolation, bool sym)

partial IE computation of a scalar SuBilinearForm on a list of elements subf: a single unknown bilinear form defined on a unique domains pair (assumed) mat: matrix to build, with size rowDofs.size x colDofs.size rowDofs, colDofs: vector of row/col dofs involved rowElts, colElts: vector of row/col elements involved vt: to pass as template the scalar type (real or complex) ieparams: some precomputed IE information intgMaps: list of integration methods to be used (built outside) kopregs , kopsings: list of regular and singular kernels when required

NOTE: precomputation of normals, quadrature points, shape values, … has to be done before

template<typename K>
void computeQuadratureIE(const Element *elt_S, const Element *elt_T, const KernelOperatorOnUnknowns &kuv, Quadrature *quadx, Quadrature *quady, Matrix<K> &res, IEcomputationParameters &ieparams, Vector<K> &val_opu, Vector<K> &val_opv, Vector<K> &val_opk)

computation of elementary matrix of IE term using double quadrature (quadx, quady) intg elt_S intg elt_V opu(y) opk(x,y) opv(x) dy dx assuming precomputation of geometrical stuff (jacobian,diffelt, normals, …), shape values and mapping of quadrature points onto physical space

the template parameter K is always a scalar type (real_t or complex_t)

elt_S: element supporting u(y) elt_T: element supporting v(x) kuv: operator on kernel and unknowns opu(y) opk(x,y) opv(x) quadx: quadrature in x variable (i.e on elt_T) quady: quadrature in y variable (i.e on elt_S) ieparams: computation parameters val_opu, val_opv, val_opk: working vectors to store value of opu, opv and opk res: matrix result in SCALAR representation even the problem is a vector problem ! the calling function has to do the conversion from SCALAR MATRIX to MATRIX of MATRIX in case of vector problem

Assume here that either Kernel is Matrix or ShapeFunctions are vectors

template<typename T, typename K>
void computeRowColIE(const SuBilinearForm &subf, bool row, number_t rc, T *rowcol, number_t n, const std::vector<number_t> &crDofs, const std::vector<Element*> &crElts, const Space *rcSpace, IEcomputationParameters &ieparams, K &vt, const std::list<std::multimap<real_t, IntgMeth>> &intgMaps, const std::vector<KernelOperatorOnUnknowns*> &kopregs, const std::vector<KernelOperatorOnUnknowns*> &kopsings, const std::map<Element*, GeoNumPair> &sidelts_u, const std::map<Element*, GeoNumPair> &sidelts_v, bool noUpdatedNormal, bool same_interpolation, bool sym)

compute a row or a col of integral equation subf: bilinear form defining ie to compute row: true if a row computation, false if a col computation n: length of row/col rowcol: pointer to the first element of row or col, has to be correctly sized before rc: row/col index (>=1) crDofs: col/ row dof indices crElts: list of elements supporting col/row dofs rcSpace: space of row/col dof IEcomputationParameters: computation ie parameters intgMaps: list of integration methods to be used (built outside) kopregs , kopsings: list of regular and singular kernels when required

NOTE:for the moment this routine uses the general computePartialIE that involves LargeMatrix

template<typename K>
void computeSPfunByQuadrature(const std::vector<Vector<K>> &val, const SpectralBasis &spbasis, const std::vector<Point> &phyPts, const Quadrature &quad, std::vector<Vector<K>> &phi_w, bool isconj, const Function *mapto = nullptr)

utility for computeSP: compute sum_q[pq*phi_m(Xq)*wj(xq)] from wj(xq) GENERAL CASE (xq, Xq) : quadrature points in reference/physical space (phi_m) : basis functions from spectral basis (pq) : quadrature weights (wj(xq)) : FE shape functions at quadrature points (already computed)

val: wj(xq)) may be d-vector shape functions: val(q) = w11(xq),w12(xq), …, w1d(xq), w21(xq), … spbasis: spectral basis (function) phyPts: physical points quad: quadrature object mapto: if non zero, pointer to the map: domain -> reference domain of spectral basis

phi_w: computed values sum_q[pq*phi_m(Xq)*wj(xq)] when isconj=false sum_q[pq*conj(phi_m(Xq))*wj(xq)] when isconj=true

template<typename K>
void computeSPintByQuadrature(const std::vector<Vector<K>> &val, const SpectralBasis &spbasis, const std::vector<Point> &phyPts, const Quadrature &quad, const Element &elt, const Space *space_u, const GeomDomain *dom, const std::vector<ShapeValues> &shv, std::vector<Vector<K>> &phi_w, bool isconj, const Function *mapto = nullptr)

utility for computeSP, compute sum_q[pq*phi_m(Xq) op wj(xq)] from wj(xq) (INTERPOLATED CASE, interpolated spectral basis function) (xq, Xq) : quadrature points in reference/physical space (phi_m) : basis functions from spectral basis (pq) : quadrature weights (wj(xq)) : FE shape functions at quadrature points (already computed) op: * or |, automatically detected regarding structure of SpectralBasis

phi_m(Xq) is computed by interpolation: sum_s phi_ms tau_s(xq) where phi_ms are components of phi_m in current element two cases occur:

  • same interpolation (common case) -> tau_s = wj

  • different interpolation -> computation of tau_s

val: wj(xq)) may be d-vector shape functions: val(q) = w11(xq),w12(xq), …, w1d(xq), w21(xq), … spbasis: spectral basis (vector) phyPts: physical points quad: quadrature object mapto: if non zero, pointer to the map: domain -> reference domain of spectral basis elt: current element space_u: space dom: current domain shv: shapevalues

phi_w: computed values Vjm=sum_q[pq*phi_m(Xq) op wj(xq)] ( say phi_w(j)=[Vj1,Vj2, …, Vjn])

template<typename K>
void computeSPOperator(const OperatorOnUnknown &op, const SpectralBasis *spbasis, const Point &x, ValueType vtphi, number_t nbfun, dimen_t dimfun, Vector<K> &val, const Vector<real_t> *np = nullptr)

compute values of operator on spectral unknown at quadrature point, say op(phi_n)(x) with (phi) i=1,n the spectral functions and x a quadrature point in physical space

op: operator on unknown basis: spectral basis associated to unknown x: point where operator is evaluated (in physical space of spectral functions) vtphi: value type of basis function nbfun: number of function dimfun: dimension of function val: computed values as a vector of vectors: val = (op(phi_n)(x)) i=1,n phyPoints: quadrature points in physical space

NOTE: operator with derivatives are only supported with ANALYTICAL spectral functions in Function defining them, user has to provide derivatives using the parameter “derivative” and its value Number(_dx), Number(_dxx), ….

operator with derivatives are not yet handled for VECTOR spectral functions

Matrix<complex_t> conj(const Matrix<complex_t> &cB)

conjugate a complex matrix

conjugate complex matrix

Matrix<real_t> conj(const Matrix<real_t> &cB)

conjugate a real matrix (do nothing)

conjugate real matrix (compatibility)

template<typename K>
MatrixEigenDense<K> conj(const MatrixEigenDense<K> &mat)
MatrixEntry conj(const MatrixEntry &me)

return the conjugate of a matrix entry

inline const Point &conj(const Point &p)
inline real_t conj(const real_t&)
template<typename T>
inline std::vector<T> conj(const std::vector<T> &v)
inline SymbolicFunction &conj(const SymbolicFunction &f)
template<typename T>
Value &conj(const T &v)
TermMatrix conj(const TermMatrix &tm)
TermVector conj(const TermVector &tv)

conjugate TermVector

template<typename K>
Vector<K> conj(const Vector<K> &a)

conjugate a Vector<K>

template<typename K>
VectorEigenDense<K> conj(const VectorEigenDense<K> &v)

Conjugate a vector.

Parameters:

v[in] source vector

Returns:

conjugated vector

OperatorOnFunction &conj(Function&)

conjugate f

OperatorOnKernel &conj(Kernel&)

conjugate k

OperatorOnFunction &conj(OperatorOnFunction&)

conjugate opf

OperatorOnKernel &conj(OperatorOnKernel&)

conjugate opk

SymbolicTermMatrix &conj(SymbolicTermMatrix &S)
template<typename T> inline Function & conj (T(fun)(const Point &, const Point &, Parameters &))
template<typename T> inline Function & conj (T(fun)(const Point &, Parameters &))
template<typename T> inline Function & conj (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &))
template<typename T> inline Function & conj (T(fun)(const Vector< Point > &, Parameters &))
inline Unknown &conj(TestFunction &v)
Unknown &conj(Unknown&)

set to true or false the temporary conjugate flag

Value &conj(Value &v)

set to true or false the temporary conjugate flag

template<typename T1_iterator, typename R_iterator>
void conjTpl(T1_iterator b1, T1_iterator e1, R_iterator Rb)

returns complex conjugate of vector entries: R[i] = conj(T1[i])

void constructorError()

message sent when in trouble in object constructor

complex_t continuedFractionOfE1(const complex_t &z)

continued fraction in E1 formula (used for ‘large’ z)

int convertmeshfile(const string_t &inputfilename, string_t &outputfilename)
std::vector<Point> convexHull2D(std::vector<Point> P)

convex hull of 2D points

convex hull in 2D

real_t coords(const Element &elt, dimen_t i)
real_t coords(const FeDof &fed, dimen_t i)
real_t coords(const Point &p, dimen_t i)
template<typename T>
real_t coords(const T &p, dimen_t i)
inline SuTermVector cos(const SuTermVector &s)
inline SymbolicFunction &cos(const SymbolicFunction &f)
inline TermVector cos(const TermVector &s)
inline SuTermVector cosh(const SuTermVector &s)
inline SymbolicFunction &cosh(const SymbolicFunction &f)
inline TermVector cosh(const TermVector &s)
inline bool cpp11()
real_t cpuTime()

returns user time (“cputime”) interval since last runtime ‘call’ according to unit defined in Time::deltaCpuTime

returns user time (“cputime”) interval in sec.

since last runtime ‘call’

real_t cpuTime(const string_t &comment, CoutStream &out)
real_t cpuTime(const string_t &comment, PrintStream &out)
real_t cpuTime(const string_t &comment, std::ostream &out = std::cout)

returns user time (“cputime”) interval in sec.

since last runtime ‘call’ and prints it with comment

GeomDomain &crack(const GeomDomain &side1, const GeomDomain &side2)

defined a crack domain from both sides of the crack in fact, define the crack domain as side 1

defined a crack domain from both sides of the crack (alias)

void crack(Geometry &g1, CrackType ct = _closedCrack, string_t domNameToOpen = string_t())

user shortcut to crack one geometry

void crack(Geometry &g1, Geometry &g2, CrackType ct = _closedCrack, string_t domNameToOpen = string_t())

user shortcut to crack 2 geometries

void crack(Geometry &g1, Geometry &g2, Geometry &g3, CrackType ct = _closedCrack, string_t domNameToOpen = string_t())

user shortcut to crack 3 geometries

void crack(Geometry &g1, Geometry &g2, Geometry &g3, Geometry &g4, CrackType ct = _closedCrack, string_t domNameToOpen = string_t())

user shortcut to crack 4 geometries

void crack(Geometry &g1, Geometry &g2, Geometry &g3, Geometry &g4, Geometry &g5, CrackType ct = _closedCrack, string_t domNameToOpen = string_t())

user shortcut to crack 5 geometries

void crack(Geometry &g1, Geometry &g2, Geometry &g3, Geometry &g4, Geometry &g5, Geometry &g6, CrackType ct = _closedCrack, string_t domNameToOpen = string_t())

user shortcut to crack 6 geometries

void crack(Geometry &g1, Geometry &g2, Geometry &g3, Geometry &g4, Geometry &g5, Geometry &g6, Geometry &g7, CrackType ct = _closedCrack, string_t domNameToOpen = string_t())

user shortcut to crack 7 geometries

std::vector<DofComponent> createCdofs(const Unknown *u, const std::vector<number_t> &dofs)

create cdofs from unknown dofs

MatrixStorage *createMatrixStorage(StorageType st, AccessType at, StorageBuildType sb, number_t nbr, number_t nbc, const std::vector<std::vector<number_t>> &indices, const string_t &idu)

create matrix storage from indices (vector of column indices for each row)

void createPath(Node<GeomElement>*, std::map<GeomElement*, bool>&, std::map<string_t, std::list<GeomElement*>>&)

utility

void createSideEltIndex(const std::vector<GeomElement*> &elements, std::map<string_t, GeomElement*> &sideEltIndex)

create an index of all side elements in given side element list, do not clear current sideEltIndex !

create the side index map of side elements of a list of elements

void createSideIndex(const MeshDomain &mdom, std::map<string_t, std::vector<GeoNumPair>> &sideIndex)

create an index of all sides of a meshDomain similar to previous one, but dedicated to any domain

create the side index map of a MeshDomain

void createSideIndex(const std::vector<GeomElement*> &elements, std::map<string_t, std::vector<GeoNumPair>> &sideIndex)

create an index of all sides of a list of elements very similar to buildSides function except the fact that no new side element are created do not clear current sideIndex !

create the side index map of a list of elements

void createTeXFile(const string_t &TeXFilename, subdivision::SubdivisionMesh *TM_p, const float psi, const float theta, const number_t nbviews, const std::string &DimProj, const bool withInterface, const bool withElems)

create TeX file, using Fig4TeX macros, to draw the mesh

inline Point cross3D(const Point &A, const Point &B)
complex_t crossProduct(const complex_t &x, const complex_t &y)
complex_t crossProduct(const complex_t &x, const real_t &y)
Point crossProduct(const Point&, const Point&)

returns the cross product of 2 points

complex_t crossProduct(const real_t &x, const complex_t &y)
real_t crossProduct(const real_t &x, const real_t &y)
template<typename K>
std::vector<PolynomialT<K>> crossProduct(const std::vector<PolynomialT<K>> &p, const std::vector<K> &v)
template<typename K>
std::vector<PolynomialT<K>> crossProduct(const std::vector<PolynomialT<K>> &p, const std::vector<PolynomialT<K>> &q)
template<typename T>
std::vector<T> crossProduct(const std::vector<T> &u, const std::vector<T> &v)

crossproduct of two vectors (dimension 2 and 3), be care in 2D return a 1-vector

template<typename T, typename K>
T crossProduct(const T &v, const K &s)
Vector<complex_t> crossProduct(const Vector<complex_t> &u, const Vector<real_t> &v)

Specialization complex_t/real_t of cross product.

template<typename K, typename IteratorV, typename IteratorR>
void crossProduct(const Vector<K> &u, const IteratorV &itv, IteratorR &itr)

cross product with vector and iterator in 3D and 2D (return a scalar)

template<typename K>
Vector<K> crossProduct(const Vector<K> &u, const Vector<K> &v)

cross product in 3D

Vector<complex_t> crossProduct(const Vector<real_t> &u, const Vector<complex_t> &v)
real_t crossProduct2D(const Point &A, const Point &B)
real_t crossProduct2D(const Point &O, const Point &A, const Point &B)

returns the cross product OAxOB (2D)

template<typename T, typename K>
T crossProduct2D(const T &v, const K &s)
complex_t crossProduct2D(const Vector<complex_t> &u, const Vector<real_t> &v)
template<typename K>
K crossProduct2D(const Vector<K> &u, const Vector<K> &v)

cross product in 2D, return a scalar

complex_t crossProduct2D(const Vector<real_t> &u, const Vector<complex_t> &v)
template<typename K>
std::vector<PolynomialT<K>> curl(const MonomialT<K> &m, dimen_t d = 3)
template<typename K>
PolynomialsBasisT<K> curl(const PolynomialsBasisT<K> &ps)
template<typename K>
std::vector<PolynomialT<K>> curl(const PolynomialT<K> &p, dimen_t d = 3)
template<typename K>
std::vector<PolynomialT<K>> curl(const std::vector<PolynomialT<K>> &p)
OperatorOnUnknown &curl(const Unknown &un)
OperatorOnKernel &curl_x(const Kernel&)

curl_x(k)

OperatorOnKernel &curl_x(OperatorOnKernel&)

curl_x(opk)

OperatorOnKernel &curl_y(const Kernel&)

curl_y(k)

OperatorOnKernel &curl_y(OperatorOnKernel&)

curl_y(opk)

OperatorOnUnknown &curlG(const Unknown &un, const complex_t &ax, const complex_t &ay, const complex_t &az, const complex_t &at)
OperatorOnUnknown &curlS(const Unknown &un)
inline number_t currentThread()

if omp is available, return the current thread number else return 0

inline number_t curThread()

if omp is available, return the current thread number else return 0

Vector<real_t> cylinderSidePartGeodesic(const Point &P, Parameters &params, DiffOpType dif)
Vector<real_t> cylinderSidePartGeodesicCurvatures(const Point &p, const Point &d, bool fromParameters, Parameters &pars)
Vector<real_t> cylinderSidePartGeodesicNormal(const Point &p, bool fromParameters, Parameters &pars)
OperatorOnUnknown &d0(const Unknown &un)
OperatorOnUnknown &d1(const Unknown &un)
OperatorOnUnknown &d11(const Unknown &un)
OperatorOnUnknown &d12(const Unknown &un)
OperatorOnUnknown &d13(const Unknown &un)
OperatorOnUnknown &d2(const Unknown &un)
OperatorOnUnknown &d22(const Unknown &un)
OperatorOnUnknown &d23(const Unknown &un)
OperatorOnUnknown &d2G(const Unknown &un, const complex_t &axx, const complex_t &axy, const complex_t &ayy, const complex_t &axz, const complex_t &ayz, const complex_t &azz)
OperatorOnUnknown &d2G(const Unknown &un, const Matrix<complex_t> &a)
OperatorOnUnknown &d3(const Unknown &un)
OperatorOnUnknown &d33(const Unknown &un)
real_t defaultColoringRule(const GeomElement &gelt, const std::vector<real_t> &val)

the default GeomElement coloring rule is the following let np the number of strictly positive values (v_i) on the n vertices of the geomelement if(np>n/2) then color =1 else color =0 for a triangle: color is 1 if at least 2 vertex values are >0 for a quadrangle: color is 1 if at least 3 vertex values are >0 for a tetrahedron: color is 1 if at least 3 vertex values are >0 for a hexahedron: color is 1 if at least 5 vertex values are >0

default Geomelement coloring rule

gelt: geom element val: real values on vertices

Parameters defaultParameters (0)

default ParameterList object used as default argument in Function constructor

real_t defaultVectorColoringRule(const GeomElement &gelt, const std::vector<Vector<real_t>> &val)

default Geomelement vector coloring rule

void defineMap(const GeomDomain&, const GeomDomain&, const Function&, bool nearest = false)

define a map between 2 geomdomains, default name

void defineMap(const GeomDomain&, const GeomDomain&, const Function&, const string_t&, bool nearest = false)

define a map between 2 geomdomains with explicit name

AngleUnit deg_ (_deg, defaultAngleUnit, 0.)
void deleteFunction(void *p)
void deleteGeomDomain(void *p)
void deleteIntegrationMethod(void *p)
void deleteIntegrationMethods(void *p)
void deleteParametrization(void *p)
void deleteSpline(void *p)
void deleteTermVectors(void *p)
void deleteTransformation(void *p)
string_t delSpace(const string_t &s)

convert “ a b c d e f “ to “abcefd”

delete all white space from string_t

SymbolicFunction &derivative(const SymbolicFunction &f, const SymbolicFunction &v)
SymbolicFunction &derivative(const SymbolicFunction &f, VariableName v)
template<typename K>
PolynomialT<K> derivative(VariableName vn, const MonomialT<K> &m)
template<typename K>
PolynomialT<K> derivative(VariableName vn, const PolynomialT<K> &p)
template<typename K>
std::vector<PolynomialT<K>> derivative(VariableName vn, const std::vector<PolynomialT<K>> &ps)
inline complex_t diag(const complex_t&)
inline real_t diag(const real_t&)
template<typename K>
void diag(Matrix<K> &m)

change matrix into diagonal matrix made of diagonal of matrix

template<typename T>
LargeMatrix<T> diagonalMatrix(const LargeMatrix<T> &mat, const T v)
template<typename T>
LargeMatrix<T> diagonalMatrix(StorageType st, AccessType at, number_t nbr, number_t nbc, const T v)
complex_t diGamma(const complex_t &z)
real_t diGamma(int_t n)

return \(-gamma + \sum_1^{n-1} 1/n\) where gamma is Euler-Mascheroni constant

real_t diGamma(real_t x)
dimen_t dim(const Element &elt)
dimen_t dim(const FeDof &fed)
dimen_t dim(const Point &p)
template<typename T>
dimen_t dim(const T&)
std::pair<dimen_t, dimen_t> dimsOf(const complex_t &v)
template<typename K>
std::pair<dimen_t, dimen_t> dimsOf(const Matrix<K> &v)
std::pair<dimen_t, dimen_t> dimsOf(const real_t &v)
template<typename K>
std::pair<dimen_t, dimen_t> dimsOf(const SparseMatrix<K> &v)
template<typename T>
std::pair<dimen_t, dimen_t> dimsOf(const Vector<T> &v)

useful dimension functions

TermVectors directSolve(TermMatrix &A, const std::vector<TermVector> &Bs, bool keepA)
TermVector directSolve(TermMatrix &A, const TermVector &B, bool keepA)

solve linear system by direct method, trying to find the well adapted direct method if A is already factorized goto upper-lower solver (factSolve) if umfpack is available, it is used (umfpackSolve) if A is single unknown dense matrix use pivoting gauss elimination process (gaussSolve) else factorize LU, LDLt or LDL* and goto upper-lower solver (factSolve)

if keepA is false (default) the matrix A is modified else it is not modified

TermMatrix directSolve(TermMatrix &A, TermMatrix &B, KeepStatus k)
string_t dirname(const string_t &f)

return dirname of a file name using last slash as delimiter

real_t dist(const BoundingBox &bb1, const BoundingBox &bb2)

distance from two bounding boxes

real_t dist(const Point &p, const Point &q)

returns Point as Point in polar coordinates/cylindrical (r,theta,z) r=sqrt(x*x+y*y) theta = atan2(y,x) in ]-pi,pi], z unchanged reverse map: x= r cos(theta) y = r sin(theta) z= z

returns the euclidian distance between 2 points

real_t distance(const MeshElement &elt1, const MeshElement &elt2)

distance from two MeshElement, assuming not intersection and using first order, i.e vertices under these assumptions dist(e1,e2)= min{dist(p1,p2), p1 in e1, p2 in e2} = min{dist(p1,p2), p1 any vertex of e1, p2 any vertex of e2}

distance from two MeshElement

template<typename K>
PolynomialBasisT<K> div(const PolynomialsBasisT<K> &ps)
template<typename K>
PolynomialT<K> div(const std::vector<PolynomialT<K>> &p)
OperatorOnUnknown &div(const Unknown &un)
OperatorOnKernel &div_x(const Kernel&)

grad_x(k)

OperatorOnKernel &div_x(OperatorOnKernel&)

grad_x(opk)

OperatorOnKernel &div_y(const Kernel&)

grad_y(k)

OperatorOnKernel &div_y(OperatorOnKernel&)

grad_y(opk)

OperatorOnUnknown &divG(const Unknown &un, const complex_t &ax, const complex_t &ay, const complex_t &az, const complex_t &at)
OperatorOnUnknown &divS(const Unknown &un)
bool doesQuadrangleIntersectsQuadrangle(const Point &P, const Point &Q, const Point &R, const Point &S, const Point &A, const Point &B, const Point &C, const Point &D, real_t tol)

determines if quadrangles PQRS and ABCD have a intersection or not

bool doesSegmentCrossesQuadrangle(const Point &P, const Point &Q, const Point &A, const Point &B, const Point &C, const Point &D, real_t tol)

determines if a segment [PQ] and a quadrangle ABCD have a unique intersection or not

bool doesSegmentCrossesSegment(const Point &P, const Point &Q, const Point &A, const Point &B, real_t tol)

determines if 2 segments [PQ] and [AB] have a unique intersection or not (2D or 3D)

bool doesSegmentCrossesSegment2D(const Point &P, const Point &Q, const Point &A, const Point &B, real_t tol)

determines if 2 2D segments [PQ] and [AB] have a unique intersection or not

determines if 2 segments [PQ] and [AB] have a intersection or not (faster 2D version)

bool doesSegmentCrossesTriangle(const Point &P, const Point &Q, const Point &A, const Point &B, const Point &C, real_t tol)

determines if a segment [PQ] and a triangle ABC have a unique intersection or not

bool doesSegmentIntersectsQuadrangle(const Point &P, const Point &Q, const Point &A, const Point &B, const Point &C, const Point &D, real_t tol)

determines if a segment [PQ] and a triangle ABC have a intersection or not

bool doesSegmentIntersectsTriangle(const Point &P, const Point &Q, const Point &A, const Point &B, const Point &C, real_t tol)

determines if segments [PQ] and [AB] have a intersection or not

bool doesTriangleIntersectsQuadrangle(const Point &P, const Point &Q, const Point &R, const Point &A, const Point &B, const Point &C, const Point &D, real_t tol)

determines if a triangle PQR and a quadrangle ABCD have a intersection or not

bool doesTriangleIntersectsTriangle(const Point &P, const Point &Q, const Point &R, const Point &A, const Point &B, const Point &C, real_t tol)

determines if triangles PQR and ABC have a intersection or not

std::vector<Point> dofCoords(Space &sp, const GeomDomain &dom)

list of coordinates of ponctual dofs of Space on a given domain

inline const GeomDomain *domainFromParameters(Parameters &pars)
inline number_t domainIdFromParameters(Parameters &pars)
const DomainMap *domainMap(const GeomDomain&, const GeomDomain&)

find DomainMap from dom1 to dom2

inline string_t domainNameFromParameters(Parameters &pars)

extract GeomDomain or GeomElement information from Parameters

Note

if pointer parameter does not exist, it is created with 0 value (see Parameters.get member function)

inline std::vector<number_t> domainsFromLevelSet(TermVector &tv, number_t mainDomNum, number_t insideDomNum, bool outside = true)
std::vector<number_t> domainsFromLevelSet(TermVector &tv, number_t mainDomNum, std::vector<number_t> insideDomNums, bool outside)

main routine for levelset method

Parameters:
  • tvTermVector containing the criteria

  • mainDomNum – domain number of the main domain (the domain number is the index in Mesh::domains_)

  • insideDomNums – domain numbers of the obstacles to find by the levelset method (one or more)

  • outside – if true, elements of interface between main domain and inner domains (obstacles) are considered in the inner domain, in the main domain otherwise.

Vector<real_t> domainTranslation(const Point&, Parameters &pa = defaultParameters)

default translation for domain map

complex_t dot(const complex_t &x, const complex_t &y)
complex_t dot(const complex_t &x, const real_t &y)
real_t dot(const Point&, const Point&)

returns the scalar product between 2 points

complex_t dot(const real_t &x, const complex_t &y)
real_t dot(const real_t &x, const real_t &y)

for template compilation reasons, fake definition of dot and crossproduct in 1D

template<typename K>
PolynomialT<K> dot(const std::vector<PolynomialT<K>> &p, const std::vector<K> &v)
template<typename K>
PolynomialT<K> dot(const std::vector<PolynomialT<K>> &p, const std::vector<PolynomialT<K>> &q)
complex_t dot(const Vector<complex_t> &u, const Vector<real_t> &v)

Specialization of dot (complex_t real_t)

complex_t dot(const Vector<complex_t> &vecFirst, const Vector<complex_t> &vecSecond)
template<typename K>
K dot(const Vector<K> &u, const Vector<K> &v)

inner product for real and complex

complex_t dot(const Vector<real_t> &u, const Vector<complex_t> &v)
complex_t dotC(const Vector<complex_t> &vecFirst, const Vector<real_t> &vecSecond)
template<typename K1, typename K2>
complex_t dotC(const Vector<K1> &vecFirst, const Vector<K2> &vecSecond)

Hermitian Inner product.

complex_t dotC(const Vector<real_t> &vecFirst, const Vector<real_t> &vecSecond)

Specialization of dotC (real_t real_t) and (complex_t real_t)

template<typename T, typename K>
T dotProduct(const std::vector<std::pair<number_t, T>> &u, const std::map<number_t, K> &v)
complex_t dotRC(const TermVector &tv1, const TermVector &tv2)

inner product when one TermVector is complex

template<typename K1, typename K2>
complex_t dotRC(const Vector<K1> &vecFirst, const Vector<K2> &vecSecond)

Inner product with COMPLEX result (not hermitian product)

complex_t dotRC(const Vector<real_t> &vecFirst, const Vector<real_t> &vecSecond)

Specialization of dotRC (real_t real_t)

complex_t dotRC(const VectorEntry&, const VectorEntry&)

same as inner product of two vectorentry’s

OperatorOnUnknown &dt(const Unknown &un)
std::vector<DofComponent> dualDofComponents(const std::vector<DofComponent> &cdofs)

create dual cdofs list from cdofs list

inline TestFunctions dualOf(const PCollection<Unknown> &us, const Strings &names = Strings())

to build a list of dual xlifepp::TestFunction of a list of xlifepp::Unknown

template<typename K>
PolynomialT<K> dx(const MonomialT<K> &m)
template<typename K>
PolynomialBasisT<K> dx(const PolynomialBasisT<K> &ps)
template<typename K>
PolynomialsBasisT<K> dx(const PolynomialsBasisT<K> &ps)
template<typename K>
PolynomialT<K> dx(const PolynomialT<K> &p)
template<typename K>
std::vector<PolynomialT<K>> dx(const std::vector<PolynomialT<K>> &ps)
OperatorOnUnknown &dx(const Unknown &un)
OperatorOnUnknown &dxx(const Unknown &un)
OperatorOnUnknown &dxy(const Unknown &un)
OperatorOnUnknown &dxz(const Unknown &un)
template<typename K>
PolynomialT<K> dy(const MonomialT<K> &m)
template<typename K>
PolynomialBasisT<K> dy(const PolynomialBasisT<K> &ps)
template<typename K>
PolynomialsBasisT<K> dy(const PolynomialsBasisT<K> &ps)
template<typename K>
PolynomialT<K> dy(const PolynomialT<K> &p)
template<typename K>
std::vector<PolynomialT<K>> dy(const std::vector<PolynomialT<K>> &ps)
OperatorOnUnknown &dy(const Unknown &un)
OperatorOnUnknown &dyy(const Unknown &un)
OperatorOnUnknown &dyz(const Unknown &un)
template<typename K>
PolynomialT<K> dz(const MonomialT<K> &m)
template<typename K>
PolynomialBasisT<K> dz(const PolynomialBasisT<K> &ps)
template<typename K>
PolynomialsBasisT<K> dz(const PolynomialsBasisT<K> &ps)
template<typename K>
PolynomialT<K> dz(const PolynomialT<K> &p)
template<typename K>
std::vector<PolynomialT<K>> dz(const std::vector<PolynomialT<K>> &ps)
OperatorOnUnknown &dz(const Unknown &un)
OperatorOnUnknown &dzz(const Unknown &un)
void e1Test(std::ostream&)

For tests.

complex_t e1z(const complex_t &z)

return E1(z)

template<typename Polygon>
std::vector<size_t> earcut(const Polygon &poly)
template<typename P>
std::vector<std::vector<size_t>> earcutTriangulation(const std::vector<P> &vertices)
template<class ST_>
number_t *edgeNumbering()

Termination of the construction of a mesh object of 2D elements by transferring data from a subdivision::xxxMesh object into XLiFE++ objects.

template<>
number_t *edgeNumbering<subdivision::Quadrangle>()
template<>
number_t *edgeNumbering<subdivision::Triangle>()
template<typename ST>
number_t eigenDavidsonSolve(const LargeMatrix<ST> *pA, const LargeMatrix<ST> *pB, std::vector<std::pair<complex_t, Vector<complex_t>>> &res, number_t nev, real_t tol, string_t which, bool isInverted, FactorizationType fac, bool isShift)

Resolve an eigen problem with block davidson method.

Parameters:
  • pA[in] Pointer to large matrix A of the eigen problem A*X = lambda*B*X. It MUSTN’T be nullptr

  • pB[in] Pointer to large matrix B of the eigen problem A*X = lambda*B*X. If it’s nullptr. Eigen problem is standard: A*X=lambda*X

  • res[inout] result

  • nev[in] The number of eigen values and eigenSolver searched for

  • tol[in] Tolerance

  • which[in] Specification of which eigen values are returned. Largest-LM, Smallest-SM,

  • isInverted[in] true if inverted matrix

  • fac[in] factorization type

  • isShift[in] true if eigen problem with shift or not

EigenElements eigenInternGen(TermMatrix *pA, TermMatrix *ptB, number_t nev, string_t which, real_t tol, EigenComputationalMode eigCompMode, complex_t sigma, bool isShift, string_t nam, EigenSortKind esortk = _incr_module)

Internal eigen solver.

EigenElements eigenInternSolve(TermMatrix *A, TermMatrix *B, const std::vector<Parameter> &ps)

Main entry point for intern eigenvalue solver.

template<typename ST>
number_t eigenKrylovSchurSolve(const LargeMatrix<ST> *pA, const LargeMatrix<ST> *pB, std::vector<std::pair<complex_t, Vector<complex_t>>> &res, number_t nev, real_t tol, string_t which, bool isInverted, FactorizationType fac, bool isShift)

Resolve an eigen problem with block Krylov-Schur method.

Parameters:
  • pA[in] Pointer to large matrix A of the eigen problem A*X = lambda*B*X. It MUSTN’T be nullptr

  • pB[in] Pointer to large matrix B of the eigen problem A*X = lambda*B*X. If it’s nullptr. Eigen problem is standard: A*X=lambda*X

  • res[inout] result

  • nev[in] The number of eigen values and eigenSolver searched for

  • tol[in] Tolerance

  • which[in] Specification of which eigen values are returned. Largest-LM, Smallest-SM,

  • isInverted[in] true if inverted matrix

  • fac[in] factorization type

  • isShift[in] true if eigen problem with shift or not

EigenElements eigenSolve(TermMatrix *A, TermMatrix *B, std::vector<Parameter> ps)

Main entry point for non specific eigenvalue solver.

template<>
void eigs(const complex_t *A, number_t m, complex_t *Xs, complex_t *ls)
template<>
void eigs(const complex_t *A, number_t m, complex_t *Xs, complex_t *ls)
template<typename T>
void eigs(const Matrix<T> &A, const Matrix<T> &B, Vector<complex_t> &ls, Matrix<complex_t> &Xs)

computation of generalized eigen values A*X=lambda*B*X

eigen vectors are stored by row in Xs matrix !

currently works only for REAL matrices

template<typename T>
void eigs(const Matrix<T> &A, const Matrix<T> &B, Vector<complex_t> &ls, Vector<Vector<complex_t>> &Xs)
template<typename T>
void eigs(const Matrix<T> &A, Vector<complex_t> &ls, Matrix<complex_t> &Xs)

computation of eigen values A*X=lambda*X

eigen vectors are stored by row in Xs matrix !

template<typename T>
void eigs(const Matrix<T> &A, Vector<complex_t> &ls, Vector<Vector<complex_t>> &Xs)
template<>
void eigs(const real_t *A, const real_t *B, number_t m, complex_t *Xs, complex_t *ls)
template<>
void eigs(const real_t *A, const real_t *B, number_t m, complex_t *Xs, complex_t *ls)
template<>
void eigs(const real_t *A, number_t m, complex_t *Xs, complex_t *ls)
template<>
void eigs(const real_t *A, number_t m, complex_t *Xs, complex_t *ls)
template<typename T>
void eigs(const T *A, number_t m, complex_t *Xs, complex_t *ls)

general template eigenvector computation using Eigen, assuming A, U are pointers to first value of DENSE ROW matrix A, B: pointers to dense row squared matrix m: matrix size Xs: pointer to a dense row matrix, storing eigen vectors ls: pointer to a vector, storing eigen values

template<typename Ta, typename Tb>
void eigs(const Ta *A, const Tb *B, number_t m, complex_t *Xs, complex_t *lambda)
complex_t eInz(const complex_t &z)

return \(E1(z) + gamma + log(z) = \sum_{n>0} (-z)^n / n n!\)

real_t elapsedTime()

returns elapsed time interval since last runtime ‘call’ according to unit defined in Time::deltaTime

returns elapsed time interval in sec.

since last runtime ‘call’

real_t elapsedTime(const string_t &comment, CoutStream &out)
real_t elapsedTime(const string_t &comment, PrintStream &out)
real_t elapsedTime(const string_t &comment, std::ostream &out = std::cout)

returns elapsed time interval in sec.

since last runtime ‘call’ and prints it with comment

OperatorOnUnknown &epsilon(const Unknown &un)
OperatorOnUnknown &epsilonG(const Unknown &un, const complex_t &id, const complex_t &ax, const complex_t &ay, const complex_t &az)
OperatorOnUnknown &epsilonR(const Unknown &un)
std::vector<real_t> eqtOfPlane(const Point &S1, const Point &S2, const Point &S3)

returns coefficients (a,b,c,d) of the equation of the plane (ax+by+cz+d=0) defined by the 3 non aligned given points S1, S2, and S3

returns equation of the plane defined by the 3 non aligned given points

complex_t erf(complex_t z)
template<typename T>
void error(const string_t &msgIds, const T &v, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
void error(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6, const T7 &v7, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
void error(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3, typename T4, typename T5>
void error(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3, typename T4>
void error(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3>
void error(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2>
void error(const string_t &msgIds, const T1 &v1, const T2 &v2, Messages *msgSrc = theMessages_p)
void error(const string_t &msgIds, MsgData &msgData, Messages *msgSrc)

shortcut of msg for error type messages

throw error messages

template<typename T>
Vector<T> euler(T &(*f)(real_t, const T &y, T &fty), real_t a, real_t b, real_t dt, const T &y0)
template<typename K>
std::vector<K> eval(const std::vector<PolynomialT<K>> &p, const K &x1, const K &x2 = K(1), const K &x3 = K(1))
template<>
inline void evalContractedProduct(const Matrix<real_t> &mat, const Vector<complex_t> &v, dimen_t &d, dimen_t &n, number_t m, Vector<real_t> &res)
template<typename T, typename R>
inline void evalContractedProduct(const Matrix<T> &mat, const Vector<R> &v, dimen_t &d, dimen_t &n, number_t m, Vector<T> &res)

Contracted product.

template<>
inline void evalCrossProduct(const Vector<real_t> &vec, const Vector<complex_t> &v, dimen_t &d, dimen_t &n, number_t m, Vector<real_t> &res, bool right)
template<typename T, typename R>
void evalCrossProduct(const Vector<T> &vec, const Vector<R> &v, dimen_t &d, dimen_t &n, number_t m, Vector<T> &res, bool right)

Cross product.

inline complex_t evalFun(SymbolicOperation op, const complex_t &z, const complex_t &p = 0.)
inline real_t evalFun(SymbolicOperation op, const real_t &x, const real_t &p = 0.)
template<>
inline void evalInnerProduct(const Vector<real_t> &vec, const Vector<complex_t> &v, dimen_t &d, dimen_t &n, number_t m, Vector<real_t> &res)
template<typename T, typename R>
void evalInnerProduct(const Vector<T> &vec, const Vector<R> &v, dimen_t &d, dimen_t &n, number_t m, Vector<T> &res)

Inner product.

template<>
inline void evalMatrixMatrixProduct(const Matrix<real_t> &vec, const Vector<complex_t> &v, dimen_t &d, dimen_t &n, number_t m, Vector<real_t> &res)
template<typename T, typename R>
inline void evalMatrixMatrixProduct(const Matrix<T> &mat, const Vector<R> &v, dimen_t &d, dimen_t &n, number_t m, Vector<T> &res)
template<>
inline void evalMatrixMatrixProduct2(const Matrix<real_t> &mat, const Vector<complex_t> &v, dimen_t &d, dimen_t &n, number_t m, Vector<real_t> &res)
template<typename T, typename R>
inline void evalMatrixMatrixProduct2(const Matrix<T> &mat, const Vector<R> &v, dimen_t &d, dimen_t &n, number_t m, Vector<T> &res)
template<>
inline void evalMatrixVectorProduct(const Matrix<real_t> &mat, const Vector<complex_t> &v, dimen_t &d, dimen_t &n, number_t m, Vector<real_t> &res)
template<typename T, typename R>
inline void evalMatrixVectorProduct(const Matrix<T> &mat, const Vector<R> &v, dimen_t &d, dimen_t &n, number_t m, Vector<T> &res)

Matrix product.

template<>
inline void evalMatrixVectorProduct(const Vector<real_t> &vec, const Vector<complex_t> &v, dimen_t &d, dimen_t &n, number_t m, Vector<real_t> &res)
template<typename T, typename R>
inline void evalMatrixVectorProduct(const Vector<T> &vec, const Vector<R> &v, dimen_t &d, dimen_t &n, number_t m, Vector<T> &res)

Matrix product using vector representation of matrix.

inline complex_t evalOp(SymbolicOperation op, const complex_t &x, const complex_t &y)
inline real_t evalOp(SymbolicOperation op, const real_t &x, const real_t &y)
template<>
inline void evalScalarProduct(const Matrix<real_t> &mat, const Vector<complex_t> &v, dimen_t &d, dimen_t &n, number_t m, Vector<real_t> &res)
template<typename T, typename R>
inline void evalScalarProduct(const Matrix<T> &mat, const Vector<R> &v, dimen_t &d, dimen_t &n, number_t m, Vector<T> &res)
template<>
inline void evalScalarProduct(const real_t &val, const Vector<complex_t> &v, Vector<real_t> &res)
template<typename T, typename R>
inline void evalScalarProduct(const T &val, const Vector<R> &v, Vector<T> &res)

Product by a scalar.

template<>
inline void evalScalarProduct(const Vector<real_t> &vec, const Vector<complex_t> &v, dimen_t &d, dimen_t &n, number_t m, Vector<real_t> &res)
template<typename T, typename R>
inline void evalScalarProduct(const Vector<T> &vec, const Vector<R> &v, dimen_t &d, dimen_t &n, number_t m, Vector<T> &res)
template<>
inline void evalVectorMatrixProduct(const Matrix<real_t> &mat, const Vector<complex_t> &v, dimen_t &d, dimen_t &n, number_t m, Vector<real_t> &res)
template<typename T, typename R>
inline void evalVectorMatrixProduct(const Matrix<T> &mat, const Vector<R> &v, dimen_t &d, dimen_t &n, number_t m, Vector<T> &res)
template<>
inline void evalVectorMatrixProduct(const Vector<real_t> &vec, const Vector<complex_t> &v, dimen_t &d, dimen_t &n, number_t m, Vector<real_t> &res)
template<typename T, typename R>
inline void evalVectorMatrixProduct(const Vector<T> &vec, const Vector<R> &v, dimen_t &d, dimen_t &n, number_t m, Vector<T> &res)
inline SuTermVector exp(const SuTermVector &s)
inline SymbolicFunction &exp(const SymbolicFunction &f)
inline TermVector exp(const TermVector &s)
GeoNode expand(const GeoNode &gn)

create the expansion of a GeoNode (new object)

create the expansion of a GeoNode

complex_t expzE1z(const complex_t&)

return exp(z)*E1(z)

complex_t ext_Fock_s(real_t x, Parameters &pars)
complex_t ext_Fock_s_app(real_t x, Parameters &pars)
void extendStorage(MatrixEntry *mat, std::vector<DofComponent> &cdofsr, std::vector<DofComponent> &cdofsc, const Constraints *cu, const Constraints *cv, bool keepSymmetry, bool doRow, bool doCol, bool doDiag)

extend storage of matrix when constraints are not local and have column/row combination, assuming scalar matrix entries ! mat: pointer to the matrix to be reduced cdofsr: row dof components cdofsc: col dof components cu: pointer to the constraints on the unknown u (col) cv: pointer to the constraints on test function v (row) keepSymmetry: flag to indicate to force symmetry of the extended storage (default not keeping symmetry) doRow, doCol, doDiag: flags to indicates which extensions are processed (default all)

extend matrix storage when constraints are not local and have column/row combination

template<typename I1, typename I2>
void extendVector(const std::vector<number_t> &renum, I1 it1, I2 it2)

template extension method

TermVector extension(const Function &f, const Function &g, const GeomDomain &dom, const Unknown &u)
TermVector extension(const Function &f, const Function &g, const GeomDomain &dom, const Unknown &u, const Function &h)
Value extension(const Function &f, const Function &g, const Point &P)
Value extension(const Function &f, const Function &g, const Point &P, const Function &h)
TermVector extension(const TermVector &f, const Function &g, const GeomDomain &dom, const Unknown &u)
TermVector extension(const TermVector &f, const Function &g, const GeomDomain &dom, const Unknown &u, const Function &h)
Value extension(const TermVector &f, const Function &g, const Point &P)
Value extension(const TermVector &f, const Function &g, const Point &P, const Function &h)
template<typename K>
Vector<K> extractComponents(const Vector<Vector<K>> &vov, number_t i)
template<typename K>
void extractComponents(const Vector<Vector<K>> &vov, Vector<K> &v, number_t i)

extract i-th components (i>0) of a Vector<Vector<K> > and store extract values in Vector<K> (index i>0 is not checked!)

inline Geometry extrude(const Geometry &g, const Transformation &t, const char *domName, const char *sidenames)

definition of a geometry by extrusion of another geometry, with name and side name

inline Geometry extrude(const Geometry &g, const Transformation &t, const char *domName, std::vector<string_t> sidenames = std::vector<string_t>())

definition of a geometry by extrusion of another geometry, with name and side names

Geometry extrude(const Geometry &g, const Transformation &t, const std::vector<Parameter> &ps)

main routine for the definition of a geometry by extrusion of another geometry, with a list if parameters

main external routine for the definition of a geometry by extrusion of another geometry, with a list if parameters

inline Geometry extrude(const Geometry &g, const Transformation &t, number_t layers, const char *domName, const char *sidenames)

definition of a geometry by extrusion of another geometry, with name and side name

inline Geometry extrude(const Geometry &g, const Transformation &t, number_t layers, const char *domName, std::vector<string_t> sidenames = std::vector<string_t>())

definition of a geometry by extrusion of another geometry, with name and side names

inline Geometry extrude(const Geometry &g, const Transformation &t, number_t layers, std::vector<string_t> sidenames = std::vector<string_t>())

definition of a geometry by extrusion of another geometry, with side names

inline Geometry extrude(const Geometry &g, const Transformation &t, number_t layers, string_t domName, std::vector<string_t> sidenames = std::vector<string_t>())

definition of a geometry by extrusion of another geometry, with name and side names

inline Geometry extrude(const Geometry &g, const Transformation &t, number_t layers, string_t domName, string_t sidenames)

definition of a geometry by extrusion of another geometry, with name and side name

Geometry extrude(const Geometry &g, const Transformation &t, Parameter p)

Definition of a geometry by extrusion of another geometry, with 1 Parameter.

Geometry extrude(const Geometry &g, const Transformation &t, Parameter p1, Parameter p2)

Definition of a geometry by extrusion of another geometry, with 2 Parameter.

Geometry extrude(const Geometry &g, const Transformation &t, Parameter p1, Parameter p2, Parameter p3)

Definition of a geometry by extrusion of another geometry, with 3 Parameter.

Geometry extrude(const Geometry &g, const Transformation &t, Parameter p1, Parameter p2, Parameter p3, Parameter p4)

Definition of a geometry by extrusion of another geometry, with 4 Parameter.

Geometry extrude(const Geometry &g, const Transformation &t, Parameter p1, Parameter p2, Parameter p3, Parameter p4, Parameter p5)

Definition of a geometry by extrusion of another geometry, with 5 Parameter.

Geometry extrude(const Geometry &g, const Transformation &t, Parameter p1, Parameter p2, Parameter p3, Parameter p4, Parameter p5, Parameter p6)

Definition of a geometry by extrusion of another geometry, with 6 Parameter.

inline Geometry extrude(const Geometry &g, const Transformation &t, std::vector<string_t> sidenames = std::vector<string_t>())

definition of a geometry by extrusion of another geometry, with side names

inline Geometry extrude(const Geometry &g, const Transformation &t, string_t domName, std::vector<string_t> sidenames = std::vector<string_t>())

definition of a geometry by extrusion of another geometry, with name and side names

inline Geometry extrude(const Geometry &g, const Transformation &t, string_t domName, string_t sidenames)

definition of a geometry by extrusion of another geometry, with name and side name

inline Mesh extrude(const Mesh &sectionMesh, const std::vector<Transformation*> &trs, const Parameter &p)

extrude a mesh using a list of transformations

inline Mesh extrude(const Mesh &sectionMesh, const std::vector<Transformation*> &trs, const Parameter &p1, const Parameter &p2)
inline Mesh extrude(const Mesh &sectionMesh, const std::vector<Transformation*> &trs, const Parameter &p1, const Parameter &p2, const Parameter &p3)
inline Mesh extrude(const Mesh &sectionMesh, const std::vector<Transformation*> &trs, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
inline Mesh extrude(const Mesh &sectionMesh, const std::vector<Transformation*> &trs, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
Mesh extrude(const Mesh &sectionMesh, const std::vector<Transformation*> &trs, const std::vector<Parameter> &ps)

external routine to apply an extrusion on a Mesh using a list of transformation

inline Mesh extrude(const Mesh &sectionMesh, const Transformation &tr, const Parameter &p)

extrude a mesh using a transformation

inline Mesh extrude(const Mesh &sectionMesh, const Transformation &tr, const Parameter &p1, const Parameter &p2)
inline Mesh extrude(const Mesh &sectionMesh, const Transformation &tr, const Parameter &p1, const Parameter &p2, const Parameter &p3)
inline Mesh extrude(const Mesh &sectionMesh, const Transformation &tr, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
inline Mesh extrude(const Mesh &sectionMesh, const Transformation &tr, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
Mesh extrude(const Mesh &sectionMesh, const Transformation &tr, const std::vector<Parameter> &ps)

external routine to apply an extrusion on a Mesh using an elementary transformation

inline Mesh extrude(const Mesh &sectionMesh, par_fun f, const Parameter &p)

extrude a mesh using a parametrization function

inline Mesh extrude(const Mesh &sectionMesh, par_fun f, const Parameter &p1, const Parameter &p2)
inline Mesh extrude(const Mesh &sectionMesh, par_fun f, const Parameter &p1, const Parameter &p2, const Parameter &p3)
inline Mesh extrude(const Mesh &sectionMesh, par_fun f, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
inline Mesh extrude(const Mesh &sectionMesh, par_fun f, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
Mesh extrude(const Mesh &sectionMesh, par_fun f, const std::vector<Parameter> &ps)

external routine to apply an extrusion on a Mesh using a parametrisation function

template<typename K>
void eyeMatrix(MatrixEigenDense<K> &mat)

Reverse all elements of a matrix.

template<class ST_>
number_t *faceNumbering()

Termination of the construction of a mesh object of 3D elements by transferring data from a subdivision::xxxMesh object into XLiFE++ objects.

template<>
number_t *faceNumbering<subdivision::Hexahedron>()
template<>
number_t *faceNumbering<subdivision::Tetrahedron>()
VectorEntry factLeftSolve(MatrixEntry&, const VectorEntry&)

solve transposed linear system after factorization method

TermVectors factLeftSolve(TermMatrix &A, const std::vector<TermVector> &Bs)

solve left linear system Xs*A=b (~ At*Xs=B) with multiple right hand sides when matrix is already factorized B may be a TermVectors

TermVector factLeftSolve(TermMatrix &A, const TermVector &B)

solve left linear system X*A=b (~ At*X=B) when matrix is already factorized

TermMatrix factLeftSolve(TermMatrix &A, TermMatrix &B)

solve left linear system with TermMatrix as right hand side when matrix is already factorized return a TermMatrix in column dense storage

void factorize(MatrixEntry &A, FactorizationType ft, bool withPermutation)

factorize matrix as LU or LDLt or LDL*, not preserving A

factorize matrix as LU or LDLt or LDL*

void factorize(MatrixEntry &A, MatrixEntry &Af, FactorizationType ft, bool withPermutation)

factorize matrix as LU or LDLt or LDL* along matrix property if ft=_noFactorisation, type of factorization is searched if matrix is symmetric ldlt factorisation is used if matrix is self-adjoint ldlstar factorisation is used note that factorisation may be failed because there is no pivoting strategy (except for definite symmetric matrix!) if matrix is skew-adjoint ldlstar factorisation may be worked if the diagonal is non zero if matrix is skew-symmetric (diagonal is zero!) ldlt failed in any case ! For the moment LU factorisation is used in case of a skew-adjoint or a skew-symmetric matrix in future, for specific algorithm for skew symmetric or skew adjoint matrices see following papers: Bunch J.R.

factorize matrix as LU or LDLt or LDL*

Stable Algorithms for Solving Symmetric and Skew-Symmetric Systems, Bull. Austral. Math. Soc., vol 26, 107-119, 1982 Lau T., Numerical Solution of Skew-Symmetric Linear Systems, Master Thesis, University of British Columbia, 2007

If umfPack is available, it is used when ft is not specified if withPermution = true, LU with row permutation will be used to deal with dense matrices

void factorize(SuTermMatrix&, FactorizationType ft = _noFactorization, bool withPermutation = true)

factorize matrix as LU or LDLt or LDL*

void factorize(SuTermMatrix&, SuTermMatrix&, FactorizationType ft = _noFactorization, bool withPermutation = true)

factorize matrix as LU or LDLt or LDL*

void factorize(TermMatrix &A, FactorizationType ft, bool withPermutation)

factorize matrix as LU or LDLt or LDL*, not preserving A

void factorize(TermMatrix &A, TermMatrix &Af, FactorizationType ft, bool withPermutation)

factorize matrix as LU or LDLt or LDL* along matrix property move to global scalar representation in any case

if ft=_noFactorisation, type of factorization is searched if matrix is symmetric ldlt factorisation is used if matrix is self-adjoint ldlstar factorisation is used note that factorisation may be failed because there is no pivoting strategy (except for definite symmetric matrix!) if matrix is skew-adjoint ldlstar factorisation may be worked if the diagonal is non zero if matrix is skew-symmetric (diagonal is zero!) ldlt failed in any case ! For the moment LU factorisation is used in case of a skew-adjoint or a skew-symmetric matrix in future, for specific algorithm for skew symmetric or skew adjoint matrices see following papers: Bunch J.R. Stable Algorithms for Solving Symmetric and Skew-Symmetric Systems, Bull. Austral. Math. Soc., vol 26, 107-119, 1982 Lau T., Numerical Solution of Skew-Symmetric Linear Systems, Master Thesis, University of British Columbia, 2007

If umfPack is available, it is used when ft is not specified if withPermution = true, LU with row permutation will be used to deal with dense matrices

VectorEntry factSolve(MatrixEntry&, const VectorEntry&)

solve linear system after factorization method

SuTermVector factSolve(SuTermMatrix&, const SuTermVector&)

solve AX=B when A is factorized

SuTermVectors factSolve(SuTermMatrix &A, const std::vector<SuTermVector> &Bs)

solve linear system with multiple right hand sides when matrix is already factorized Bs may be a SuTermVectors

solve AXs=Bs when A is factorized

SuTermMatrix factSolve(SuTermMatrix &A, SuTermMatrix &B)

solve linear system with right hand side matrix when matrix is already factorized in other words create the matrix C = inv(A) * B, C is stored in a dense format Works on scalar representation !

create inv(A)*B when A is factorized

TermVectors factSolve(TermMatrix &A, const std::vector<TermVector> &Bs)

solve linear system with multiple right hand sides when matrix is already factorized B may be a TermVectors

TermVector factSolve(TermMatrix &A, const TermVector &B)
TermMatrix factSolve(TermMatrix &A, TermMatrix &B)

solve linear system with TermMatrix as right hand side when matrix is already factorized return a TermMatrix in column dense storage

std::vector<complex_t> ferrari(real_t a, real_t b, real_t c, real_t d, real_t e)

computes roots of degree 4 polynomial (Ferrari method)

template<typename T>
std::vector<complex_t> fft(const std::vector<T> &f)
template<typename T>
std::vector<complex_t> &fft(const std::vector<T> &f, std::vector<complex_t> &g)
template<typename IterA, typename IterB>
void fft(IterA ita, IterB itb, number_t log2n)

perform the discrete Fourier transform of the discrete vector a of length n=2^log2n the result is the vector b of length 2^log2n bk = sum_j=0,n-1 aj*exp(-2*i*pi*j*k/n) ita: iterator at the beginning of a itb: iterator at the beginning of b log2n: log_2(n)

template<typename IterA, typename IterB>
void ffta(IterA ita, IterB itb, number_t log2n, real_t q)

perform the discrete Fourier transform of the discrete vector a of length n=2^log2n the result is the vector b of length 2^log2n bk = sum_j=0,n-1 aj*exp(2*i*q*j*k/n) ita: iterator at the beginning of a itb: iterator at the beginning of b log2n: log_2(n) q: a parameter = -pi for direct fft and = pi for inverse fft

string_t fileExtension(const string_t &f)

return file name extension using last point as delimiter return root file name and file name extension using last point as delimiter

inline string_t fileNameFromComponents(const string_t &rootname, const string_t &extension)
string_t fileNameFromComponents(const string_t &rootname, const string_t &suffix, const string_t &extension)

build filename from rootname with an additionnal suffix, and extension: rootname_suffix.extension

std::pair<string_t, string_t> fileRootExtension(const string_t &f, const std::vector<string_t> &authorizedExtensions)
string_t fileWithoutExtension(const string_t &f)

return file name without extension using last point as delimiter

inline complex_t filon_f(real_t t, Parameters &pa = defaultParameters)

function used in Filon: 1/(w2’(r*(t+s))-qw2(r*(t+s))) where s is a shift and r a complex rotation

void finalize()

finalize execution of XLiFE++

Quadrature *findBestQuadrature(ShapeType, number_t, bool = false)

“ersatz” of constructor (find or create a new quadrature rule)

int_t findBorder(const std::pair<ShapeType, std::vector<const Point*>> &border, const std::vector<std::pair<ShapeType, std::vector<const Point*>>> &borders)

find if a curve/surf is in a list of curves/surfs

DifferentialOperator *findDifferentialOperator(DiffOpType)

contructor-like, returns newly created or existing object

GeomRefElement *findGeomRefElement(ShapeType shape)

GeomRefElementFind definition of a Geom Reference Element by shape number use existing Geom Reference Element object if one already exists otherwise create a new one, in both cases returns pointer to the object.

definition of a Geom Reference Element by shape type use existing Geom Reference Element if one exists, otherwise create a new one, in both cases returns pointer to the object

short int findId(std::vector<CrackData>::const_iterator it_b, std::vector<CrackData>::const_iterator it_e, number_t id)

finds a crack data in a list

short int findId(std::vector<PhysicalData>::const_iterator it_b, std::vector<PhysicalData>::const_iterator it_e, number_t id)

finds a physical data in a list

Interpolation *findInterpolation(FEType typ, FESubType sub, number_t num, SobolevType spa)

return Interpolation defined by its characteristics use existing Interpolation object if one already exists otherwise create a new one, in both cases returns pointer to the object

main “constructor” by finding first if already exists

Interpolation *findInterpolation(InterpolationType interpType, number_t dim)

main “constructor” by finding first if already exists

const Function *findMap(const GeomDomain&, const GeomDomain&)

find map between 2 geomdomains

MatrixStorage *findMatrixStorage(const string_t &id, StorageType st, AccessType at)

find matrix storage in vector theMatrixStorages of class MatrixStorage

MatrixStorage *findMatrixStorage(const string_t &id, StorageType st, AccessType at, StorageBuildType sb, bool scalar, number_t nbr, number_t nbc)
Projector &findProjector(Space &V, dimen_t nbcV, Space &W, dimen_t nbcW, ProjectorType pt = _L2Projector)
Quadrature *findQuadrature(ShapeType, QuadRule, number_t, bool = false)

“ersatz” of constructor (find or create a new quadrature rule)

RefElement *findRefElement(ShapeType shape, const Interpolation *interp_p)

definition of a Reference Element by shape number and interpolation use existing Reference Element object if one already exists otherwise create a new one, in both cases returns pointer to the object

RefElementFind definition of a Reference Element by shape number and interpolation use existing Reference Element object if one already exists otherwise create a new one, in both cases returns pointer to the object.

int_t findString(const string_t, const std::vector<string_t>&)

returns position of string in vector<string>

short int findString(std::vector<PhysicalData>::const_iterator it_b, std::vector<PhysicalData>::const_iterator it_e, string_t name)

finds a physical data in a list

Unknown *findUnknown(const string_t&)

find Unknown in list of Unknown

complex_t fockCurvatureTransition_D(real_t x)
complex_t fockCurvatureTransition_N(real_t x)
Point force3D(const Point &p)

extends a copy of a point to a 3D point

returns a 3-components copy of a point

string_t format(const string_t &s, number_t l, Alignment = _centerAlignment)

format string at size s with alignment option

bool foundParent(const vector<number_t> &nums, const SIDELTMAP &parentEl, ITPARENTS &itpar)
template<typename T>
OperatorOnUnknown &fromUnknownVal(const Unknown &un, const T &val, AlgebraicOperator aop)
template<typename T>
OperatorOnUnknown &fromValUnknown(const Unknown &un, const T &val, AlgebraicOperator aop)
complex_t fun_EC_SC(const Point &P, Parameters &pars)
real_t fun_EC_SR(const Point &P, Parameters &pars)
Vector<complex_t> fun_EC_VC(const Point &P, Parameters &pars)
Vector<real_t> fun_EC_VR(const Point &P, Parameters &pars)
inline complex_t fun_productC(const complex_t &x, const complex_t &y)
inline real_t fun_productR(const real_t &x, const real_t &y)
complex_t gammaFunction(const complex_t&)

return \(\int_0^t dt t^{x-1} \exp(-t)\) for x > 0

real_t gammaFunction(int_t n)

Function \(Gamma(z) = \int_0^{\infty} t^{z-1} exp(-t) dt for Re(z) > 0\).

  • Gamma(1-z) = Pi / ( sin(Pi z) Gamma(z) )

  • Gamma(z+1) = z Gamma(z)

  • Gamma(n+1) = n! for integer n > 0 return Gamma(n) = (n-1)!

real_t gammaFunction(real_t)

return \(\int_0^t dt t^{x-1} \exp(-t)\) for x > 0

void gammaTest(std::ostream &out)
void gaussJacobi20Output(number_t nmax, std::ostream &out)

Output of Gauss-Jacobi (2,0) rule as displayed in function GaussJacobi20Rule.

“tabulated output” of Gauss-Jacobi (2,0) rules up to a given number of points

void gaussJacobi20Rule(number_t n, std::vector<real_t> &points, std::vector<real_t> &weights)

Compute Gauss-Jacobi n-point formula on [-1, 1].

returns Gauss-Jacobi (2,0) rule with tabulated

  • Points xj are roots of Jacobi Polynomial Pn(2,0) of ordre n (namely orthogonal polynomials of weight (1-x)^2

  • Weights are - (2n+4)*Gamma(n+3)*Gamma(n+1)*4/((n+3)*Gamma(n+3)*(n+1)!*Pn(2,0)’(xi)*P(n+1)(2,0)(xi))

Note: the (n+1)/2 first positive points in ascending order only are returned.

void gaussJacobiOutput(number_t nmax, real_t a, real_t b, std::ostream &out)

Output of Gauss-Jacobi rule as displayed in function GaussJacobi20Rule.

“tabulated output” of Gauss-Jacobi rules up to a given number of points

void gaussJacobiRule(number_t n, real_t a, real_t b, std::vector<real_t> &points, std::vector<real_t> &weights)

Compute Gauss-Jacobi n-point formula on [-1, 1].

returns Gauss-Jacobi rule with tabulated

  • Points xj are roots of Jacobi Polynomial Pn(a,b) of ordre n (namely orthogonal polynomials of weight (1-x)^a*(1+x)^b)

  • Weights are - (2n+a+b+2)*Gamma(n+a+1)*Gamma(n+b+1)*2^(a+b)/((n+a+b+1)*Gamma(n+a+b+1)*(n+1)!*Pn(a,b)’(xi)*P(n+1)(a,b)(xi))

Note: the (n+1)/2 first positive points in ascending order only are returned.

void gaussLegendreOutput(number_t nmax, std::ostream &out)

Output of Gauss-Legendre rule as displayed in function GaussLegendreRule.

“tabulated output” of Gauss-Lobatto rules up to a given number of points

void gaussLegendreRule(number_t n, std::vector<real_t> &points, std::vector<real_t> &weights)

returns quadrature points and weights for Gauss-Legendre formula for a given number of points n ; n-point Gauss-Legendre formula is exact for polynomials of degree up to {2n-1} on [-1,1].

returns Gauss-Legendre rule with computed or tabulated

Points and weights are given below for n up to 16

Note: the (n+1)/2 positive points in ascending order only are returned.

void gaussLegendreRuleComputed(number_t n, std::vector<real_t> &points, std::vector<real_t> &weights)

Compute Gauss-Legendre n-point formula on [-1, 1].

returns Gauss-Legendre rule for any number of points

  • Points xj are roots of Legendre Polynomial pn of ordre n

  • Weights are 2/( (1-xj^2) (P’_n(xj)^2) )

Note: the (n+1)/2 first positive points in ascending order only are returned.

void gaussLobattoOutput(number_t nmax, std::ostream &out)

Output of Gauss-Lobatto rule as displayed in function GaussLobattoRule.

“tabulated output” of Gauss-Lobatto rules up to a given number of points

void gaussLobattoPoints(number_t n, std::vector<real_t> &points)

returns quadrature nodes for Gauss-Lobatto rule for a given number of points.

returns Gauss-Lobatto points for any number of points

Note: the (n+1)/2 points non-negative points in ascending order are returned only with possible point 0 included and including end point 1

void gaussLobattoRule(number_t n, std::vector<real_t> &points, std::vector<real_t> &weights)

returns quadrature points & weights for Gauss-Lobatto rule for a given number of points.

returns Gauss-Lobatto rule with computed or tabulated

n-point Gauss-Lobatto formula is exact for P_{2n-3}(0,1)

Note: only points and weights corresponding to the (n+1)/2 points non-negative points, with possible point 0 included and including end point 1, are returned

The following programs shows table of values (with 20 significant digits) up to n=16 which have been computed by function GaussLobattoRuleComputed using type long double.

void gaussLobattoRuleComputed(number_t n, std::vector<real_t> &points, std::vector<real_t> &weights)

compute Gauss-Lobatto n-point formula on [-1, 1] end points included

returns Gauss-Lobatto rule for any number of points

  • Points xj are roots of (1-x^2)*P’_{n-1} with P’_{n-1} derivative of Legendre Polynomial of ordre n-1

  • Weights are 2./(n*(n-1)) for end points -1 and +1 2./(n*(n-1)*{P_{n-1}(xj)}^2) for other xj

Note: the (n-1)/2 first positive points in ascending order only are returned that is excluding end point 1 and corresponding weight.

template<typename K_>
bool gaussMultipleSolver(std::vector<K_> &mat, std::vector<K_> &rhs, number_t nbrhs, real_t &minPivot, number_t &row)

Template multiple Gaussian elimination solver with partial pivoting strategy for a square linear system with dense row major access matrix the number of right hand sides is given by nbrhs Note: when giving Id matrix as rhs, it returns the inverse of mat in rhs.

template<typename T>
void gaussSolve(LargeMatrix<T> &mat, std::vector<std::vector<T>> &rhss)
template<typename T>
void gaussSolve(LargeMatrix<T> &mat, std::vector<T> &rhs)
void gaussSolve(MatrixEntry&, VectorEntry&, VectorEntry&)

Gauss solver (only in scalar representation)

SuTermVector gaussSolve(SuTermMatrix&, const SuTermVector&, bool keepA = false)

solve AX=B using Gauss reduction solve AX=B using umfpack if available

TermVectors gaussSolve(TermMatrix &A, const std::vector<TermVector> &Bs, bool keepA)
TermVector gaussSolve(TermMatrix &A, const TermVector &B, bool keepA)
template<typename K_>
bool gaussSolver(std::vector<K_> &mat, std::vector<K_> &rhs, real_t &minPivot, number_t &row)

Template Gaussian elimination solver with partial pivoting strategy for a square linear system with dense row major access matrix.

void gegenbauerPolynomials(real_t lambda, real_t, std::vector<real_t>&)

Gegenbauer ultraspherical polynomials on [-1, 1], with parameter lambda up to order n P_0 = 1, P_1 = 2*lambda*x n*P_n(x) = 2*(n+lambda-1)*x*P_{n-1}(x) - (n+2*lambda-2)*P_{n-2}(x) , n > 1.

string_t genDomName(number_t ndom)
string_t genDomName(number_t ndom, const map<number_t, string_t> &domNameMap)
string_t genSDomName(number_t ndom, number_t nsdom)
string_t genSDomName(number_t ndom, number_t nsdom, const map<number_t, string_t> &domNameMap)
inline const GeomElement *geomElementFromParameters(Parameters &pars)
const GeomDomain *geomUnionOf(std::vector<const GeomDomain*> &doms, const GeomDomain *largeDom)

construct or identify the geometrical union of domains.

construct or identify the geometrical symbolic union of domains

Geometrical union is a real union which performs element or side element inclusion in other elements or side elements it uses the element id number to test inclusion of a list of elements in an other list of elements for side element it uses the parent element id number. !!! Side of side element is not handled for the moment

largeDom is a large domain containing all domains given in doms

GeomDomains may be a meshDomain or a compositeDomain of union type (domains intersection are not managed) when a domain contains all others, the function returns it when the union gives an existing domain, the function returns it else the function return a new compositeDomain (union)

Note

do not confuse geometrical union with union of domains which is a semantic union (no geometrical analysis is performed) Geometrical union is an internal tool, end users do not have to use it

ValueType get_value_type(const string_t&)

get the type of the parameter value by name

inline Vector<real_t> &getB()
inline Vector<real_t> &getB(number_t t)
inline number_t getBasisIndex()
inline number_t getBasisIndex(number_t t)
inline Vector<real_t> &getBx()
inline Vector<real_t> &getBx(number_t t)
inline Vector<real_t> &getBy()
inline Vector<real_t> &getBy(number_t t)
Strings getComponentBordersToGeo(const Geometry &g)

returns the borders numbers of a canonical geometry in a geo file

writing the borders numbers of a canonicl geometry in a geo file

inline number_t getDerivative()
inline number_t getDerivative(number_t t)
inline Dof &getDof()
inline Dof &getDof(number_t t)
inline GeomDomain &getDomain()
inline GeomDomain &getDomainx()
inline GeomDomain &getDomainy()
inline GeomElement &getElement()
inline GeomElement &getElement(number_t t)
inline GeomElement *getElementP()
inline GeomElement *getElementP(number_t t)
inline FeDof &getFeDof()
inline FeDof &getFeDof(number_t t)
template<class T>
inline DefaultSPStorage<T>::PointerType getImpl(const DefaultSPStorage<T> &sp)
template<class T>
inline const DefaultSPStorage<T>::StoredType &getImplConstRef(DefaultSPStorage<T> &sp)
template<class T>
inline const DefaultSPStorage<T>::StoredType &getImplRef(const DefaultSPStorage<T> &sp)
template<class T>
inline DefaultSPStorage<T>::StoredType &getImplRef(DefaultSPStorage<T> &sp)
inline Vector<real_t> &getN()
inline Vector<real_t> &getN(number_t t)
inline const Vector<real_t> &getNormalVectorFrom(const Parameters &pa)
inline Vector<real_t> &getNx()
inline Vector<real_t> &getNx(number_t t)
inline const Vector<real_t> &getNxVectorFrom(const Parameters &pa)
inline Vector<real_t> &getNy()
inline Vector<real_t> &getNy(number_t t)
inline const Vector<real_t> &getNyVectorFrom(const Parameters &pa)
template<typename T>
inline const RefCounted<T>::CountType &getRefCounted(const RefCounted<T> &ref)
template<typename T>
inline RefCounted<T>::CountType &getRefCounted(RefCounted<T> &ref)
template<typename T>
bool getRefCountedAlloc(RefCounted<T> &ref)
RefElement *getRefElt(number_t elmType, const GMSHMAP &gmMap, number_t *nb_pts, number_t *elmDim, bool *isSimplex)
inline Vector<real_t> &getT()
inline Vector<real_t> &getT(number_t t)
inline Vector<real_t> &getTx()
inline Vector<real_t> &getTx(number_t t)
inline Vector<real_t> &getTy()
inline Vector<real_t> &getTy(number_t t)
inline Vector<real_t> &getVector(UnitaryVector un)
template<typename K>
std::vector<PolynomialT<K>> grad(const MonomialT<K> &m, dimen_t d = 3)
template<typename K>
PolynomialsBasisT<K> grad(const PolynomialBasisT<K> &ps)
template<typename K>
std::vector<PolynomialT<K>> grad(const PolynomialT<K> &p, dimen_t d = 3)
OperatorOnUnknown &grad(const Unknown &un)
OperatorOnKernel &grad_x(const Kernel&)

grad_x(k)

OperatorOnKernel &grad_x(OperatorOnKernel&)

grad_x(opk)

OperatorOnKernel &grad_y(const Kernel&)

grad_y(k)

OperatorOnKernel &grad_y(OperatorOnKernel&)

grad_y(opk)

OperatorOnUnknown &gradG(const Unknown &un, const complex_t &ax, const complex_t &ay, const complex_t &az, const complex_t &at)
OperatorOnUnknown &gradS(const Unknown &un)
void gradxgradyover4pir(const Point&, const Point&, Vector<Vector<real_t>>&)

\(grad_xgrad_y/(4\pi r)\)

void gradxover4pir(const Point&, const Point&, Vector<real_t>&)

\(grad_x/(4\pi r)\)

inline complex_t hankelH1(const complex_t &z, real_t N)

Hankel function of the first kind and order N: H1_N(z) = J_N(z) + i Y_N(z) (complex case)

template<>
inline complex_t hankelH1(real_t x, real_t N)

Hankel function of the first kind and real order N: H1_N(x) = J_N(x) + i Y_N(x)

template<class T_>
complex_t hankelH1(real_t x, T_ N)
inline complex_t hankelH10(const complex_t &z)

Hankel function of the first kind and order 0 : H1_0(z) = J_0(z) + i Y_0(z) (complex case)

complex_t hankelH10(real_t x)

Hankel function of the first kind and order 0 : H1_0(x) = J_0(x) + i Y_0(x)

std::vector<complex_t> hankelH10N(real_t x, number_t N)

Hankel functions of the first kind and order 0 … N: H1_k(x) = J_k(x) + i Y_k(x)

inline complex_t hankelH11(const complex_t &z)

Hankel function of the first kind and order 1 : H1_1(z) = J_1(z) + i Y_1(z) (complex case)

complex_t hankelH11(real_t x)

Hankel function of the first kind and order 1 : H1_1(x) = J_1(x) + i Y_1(x)

inline complex_t hankelH2(const complex_t &z, real_t N)

Hankel function of the second kind and order N: H2_N(z) = J_N(z) - i Y_N(z) (complex case)

template<>
inline complex_t hankelH2(real_t x, real_t N)

Hankel function of the second kind and real order N: H2_N(x) = J_N(x) - i Y_N(x)

template<class T_>
complex_t hankelH2(real_t x, T_ N)
inline complex_t hankelH20(const complex_t &z)

Hankel function of the second kind and order 0 : H2_0(z) = J_0(z) + i Y_0(z) (complex case)

inline complex_t hankelH20(real_t x)

Hankel function of the second kind and order 0 : H2_0(x) = J_0(x) - i Y_0(x)

std::vector<complex_t> hankelH20N(real_t x, number_t N)

Hankel functions of the second kind and order 0 … N: H2_k(x) = J_k(x) - i Y_k(x)

inline complex_t hankelH21(const complex_t &z)

Hankel function of the second kind and order 1 : H2_1(z) = J_1(z) - i Y_1(z) (complex case)

inline complex_t hankelH21(real_t x)

Hankel function of the second kind and order 1 : H2_1(x) = J_1(x) - i Y_1(x)

bool hasAnalyticGeodesic(const Geometry &geo)
template<typename T>
bool hasCommonElts(const ClusterNode<T> &cn1, const ClusterNode<T> &cn2)
bool hasGeometricGeodesic(const Geometry &geo)
complex_t Helmholtz2d(const Point &x, const Point &y, Parameters &pa = defaultParameters)

value

Vector<complex_t> Helmholtz2dGradx(const Point &x, const Point &y, Parameters &pa = defaultParameters)

gradx

Vector<complex_t> Helmholtz2dGradxReg(const Point &x, const Point &y, Parameters &pa = defaultParameters)

reg gradx

Vector<complex_t> Helmholtz2dGradxSing(const Point &x, const Point &y, Parameters &pa = defaultParameters)

sing gradx

Matrix<complex_t> Helmholtz2dGradxy(const Point &x, const Point &y, Parameters &pa = defaultParameters)

gradxy

Matrix<complex_t> Helmholtz2dGradxyReg(const Point &x, const Point &y, Parameters &pa = defaultParameters)

reg gradxy

Matrix<complex_t> Helmholtz2dGradxySing(const Point &x, const Point &y, Parameters &pa = defaultParameters)

sing gradxy

Vector<complex_t> Helmholtz2dGrady(const Point &x, const Point &y, Parameters &pa = defaultParameters)

grady

Vector<complex_t> Helmholtz2dGradyReg(const Point &x, const Point &y, Parameters &pa = defaultParameters)

reg grady

Vector<complex_t> Helmholtz2dGradySing(const Point &x, const Point &y, Parameters &pa = defaultParameters)

sing grady

complex_t Helmholtz2dHalfPlane(const Point &x, const Point &y, Parameters &pa = defaultParameters)

Helmholtz kernel in a half-plane with either Dirichlet or Neumann boundary condition half plane P is defined by AY.n >0 where A(a1,a2) is a point of a line L, t = (t1,t2) the tangent vector and n=(-t2,t1) kernel is built from source image Ys = 2A - Y +2*(AY.t)t/|t|^2.

 Hd(X,Y) = H(X,Y) - H(X,Ys)   satisfy Hd(X,Y) =0 for Y in L (say Dirichlet condition)
 Hd(X,Y) = H(X,Y) + H(X,Ys)   satisfy grad(Hd(X,Y)).n =0 for Y in L (say Neumann condition)
Note that dy1(Ys1) = -1+2*t1^2/|t|^2 dy2(Ys1) = 2*t1*t2/|t|^2 dy1(Ys2) = 2*t1^2/|t|^2 dy2(Ys2) = -1 + 2*t2^2/|t|^2

This kernel manage the following parameters bc: boundary condition type on line L (_Dirichlet (default),_Neumann) k: wave number a,b: origin of the line (default (0,0)) t1,t2 : tangent vector of the line (default (1,0))

Vector<complex_t> Helmholtz2dHalfPlaneGradx(const Point &x, const Point &y, Parameters &pa)
Matrix<complex_t> Helmholtz2dHalfPlaneGradxy(const Point &x, const Point &y, Parameters &pa)
Vector<complex_t> Helmholtz2dHalfPlaneGrady(const Point &x, const Point &y, Parameters &pa)
Kernel Helmholtz2dHalfPlaneKernel(Parameters& = defaultParameters)

construct a Helmholtz2dHalfPlane kernel

Kernel Helmholtz2dHalfPlaneKernel(real_t k, const std::vector<real_t> &t = Point(1., 0.), const Point &A = Point(0., 0.), BoundaryCondionType bct = _Dirichlet)

construct a Helmholtz2dHalfPlane kernel from k, point, vector, bc

Kernel Helmholtz2dHalfPlaneKernel(real_t k, real_t t1 = 1., real_t t2 = 0., real_t a = 0., real_t b = 0., BoundaryCondionType bct = _Dirichlet)

construct a Helmholtz2dHalfPlane kernel from from k, point, vector, bc

complex_t Helmholtz2dHalfPlaneNxdotGradx(const Point &x, const Point &y, Parameters &pa)
complex_t Helmholtz2dHalfPlaneNydotGrady(const Point &x, const Point &y, Parameters &pa)
Kernel Helmholtz2dKernel(const real_t &k)

construct a Helmholtz2d kernel from real k

Kernel Helmholtz2dKernel(Parameters& = defaultParameters)

construct a Helmholtz2d kernel

Kernel Helmholtz2dKernelReg(Parameters& = defaultParameters)

construct a Helmholtz2d kernel, regular part

Kernel Helmholtz2dKernelSing(Parameters& = defaultParameters)

construct a Helmholtz2d kernel, singular part

complex_t Helmholtz2dNxdotGradx(const Point &x, const Point &y, Parameters &pa = defaultParameters)

nx.gradx

complex_t Helmholtz2dNydotGrady(const Point &x, const Point &y, Parameters &pa = defaultParameters)

ny.grady

complex_t Helmholtz2dReg(const Point &x, const Point &y, Parameters &pa)

Regular part of Helmholtz2d function i/4 H^{(1)}_0(k*r) - log(k*r)/(2*pi)

reg value

complex_t Helmholtz2dSing(const Point &x, const Point &y, Parameters &pa)

Singular part of Helmholtz2d function - log(r)/(2*pi)

sing value

complex_t Helmholtz2dStrip(const Point &x, const Point &y, Parameters &pa)
complex_t Helmholtz2dStripDir(const Point &x, const Point &y, real_t k, real_t h, real_t l, number_t N, real_t eps)
Vector<complex_t> Helmholtz2dStripGradx(const Point &x, const Point &y, Parameters &pa)
Vector<complex_t> Helmholtz2dStripGradxDir(const Point &x, const Point &y, real_t k, real_t h, real_t l, number_t N, real_t eps)
Vector<complex_t> Helmholtz2dStripGradxNeu(const Point &x, const Point &y, real_t k, real_t h, real_t l, number_t N, real_t eps)
Matrix<complex_t> Helmholtz2dStripGradxy(const Point &x, const Point &y, Parameters &pa)
Matrix<complex_t> Helmholtz2dStripGradxyDir(const Point &x, const Point &y, real_t k, real_t h, real_t l, number_t N, real_t eps)
Matrix<complex_t> Helmholtz2dStripGradxyNeu(const Point &x, const Point &y, real_t k, real_t h, real_t l, number_t N, real_t eps)
Vector<complex_t> Helmholtz2dStripGrady(const Point &x, const Point &y, Parameters &pa)
Vector<complex_t> Helmholtz2dStripGradyDir(const Point &x, const Point &y, real_t k, real_t h, real_t l, number_t N, real_t eps)
Vector<complex_t> Helmholtz2dStripGradyNeu(const Point &x, const Point &y, real_t k, real_t h, real_t l, number_t N, real_t eps)
Kernel Helmholtz2dStripKernel(BoundaryCondionType bct, real_t k, real_t h = 1., number_t n = 1000, real_t l = -1., real_t e = 1.E-6)

construct a Helmholtz2dStrip kernel from k, h, n, …

Kernel Helmholtz2dStripKernel(Parameters& = defaultParameters)

construct a Helmholtz2d kernel

complex_t Helmholtz2dStripNeu(const Point &x, const Point &y, real_t k, real_t h, real_t l, number_t N, real_t eps)
complex_t Helmholtz2dStripNxdotGradx(const Point &x, const Point &y, Parameters &pa)
complex_t Helmholtz2dStripNydotGrady(const Point &x, const Point &y, Parameters &pa)
complex_t Helmholtz3d(const Point &x, const Point &y, Parameters &pa = defaultParameters)

value

Vector<complex_t> Helmholtz3dGradx(const Point &x, const Point &y, Parameters &pa = defaultParameters)

gradx

Vector<complex_t> Helmholtz3dGradxReg(const Point &x, const Point &y, Parameters &pa = defaultParameters)

gradx

Vector<complex_t> Helmholtz3dGradxSing(const Point &x, const Point &y, Parameters &pa = defaultParameters)

gradx

Matrix<complex_t> Helmholtz3dGradxy(const Point &x, const Point &y, Parameters &pa = defaultParameters)

gradxy

Matrix<complex_t> Helmholtz3dGradxyReg(const Point &x, const Point &y, Parameters &pa = defaultParameters)

gradxy

Matrix<complex_t> Helmholtz3dGradxySing(const Point &x, const Point &y, Parameters &pa = defaultParameters)

gradxy

Vector<complex_t> Helmholtz3dGrady(const Point &x, const Point &y, Parameters &pa = defaultParameters)

grady

Vector<complex_t> Helmholtz3dGradyReg(const Point &x, const Point &y, Parameters &pa = defaultParameters)

grady

Vector<complex_t> Helmholtz3dGradySing(const Point &x, const Point &y, Parameters &pa = defaultParameters)

grady

Kernel Helmholtz3dKernel(const complex_t &k)

construct a Helmholtz3d kernel from complex k

Kernel Helmholtz3dKernel(const real_t &k)

construct a Helmholtz3d kernel from real k

Kernel Helmholtz3dKernel(Parameters& = defaultParameters)

construct a Helmholtz3d kernel from parameters

Kernel Helmholtz3dKernelReg(Parameters& = defaultParameters)

construct a Helmholtz3d kernel from parameters

Kernel Helmholtz3dKernelSing(Parameters& = defaultParameters)

construct a Helmholtz3d kernel from parameters

complex_t Helmholtz3dNxdotGradx(const Point &x, const Point &y, Parameters &pa = defaultParameters)

nx.gradx

complex_t Helmholtz3dNydotGrady(const Point &x, const Point &y, Parameters &pa = defaultParameters)

ny.grady

complex_t Helmholtz3dNydotGradyReg(const Point &x, const Point &y, Parameters &pa)
complex_t Helmholtz3dReg(const Point &x, const Point &y, Parameters &pa = defaultParameters)

value

complex_t Helmholtz3dSing(const Point &x, const Point &y, Parameters &pa = defaultParameters)

value

template<class T>
T HelmholtzSingDLP0(T k, const Element *elt, const Point &pos)
template<class T>
void HelmholtzSingDLP1(T k, const Element *elt, const Point &pos, Vector<T> &res)
template<typename T1_iterator, typename T2_iterator>
complex_t hermitianInnerProductTpl(T1_iterator b1, T1_iterator e1, T2_iterator b2)

hermitian product

template<typename T, typename K>
T hermitianProduct(const std::vector<std::pair<number_t, T>> &u, const std::map<number_t, K> &v)
complex_t hermitianProduct(const SuTermVector&, const SuTermVector&)

hermitian product

complex_t hermitianProduct(const TermVector &tv1, const TermVector &tv2)

hermitian product

template<typename K1, typename K2>
complex_t hermitianProduct(const Vector<K1> &vecFirst, const Vector<K2> &vecSecond)
complex_t hermitianProduct(const VectorEntry&, const VectorEntry&)

hermitian product of two vectorentry’s

Quadrature *hexahedronQuadrature(QuadRule, number_t)

find or create quadrature rule over the unit hexahedron

template<class Geom>
Geom homothetize(const Geom &g, const Parameter &p1)

apply a homothety on a Geom (1 key) (template external)

template<class Geom>
Geom homothetize(const Geom &g, const Parameter &p1, const Parameter &p2)

apply a homothety on a Geom (2 keys) (template external)

template<class Geom>
Geom homothetize(const Geom &g, const Point &c = Point(0., 0., 0.), real_t factor = 0.)

apply a homothety on a Geom (template external)

template<class Geom>
Geom homothetize(const Geom &g, real_t factor)

apply a homothety on a Geom (template external)

inline Geometry homothetize(const Geometry &g, const Parameter &p1)

apply a homothety on a Geometry (1 key) (template external)

inline Geometry homothetize(const Geometry &g, const Parameter &p1, const Parameter &p2)

apply a homothety on a Geometry (2 keys) (template external)

inline Geometry homothetize(const Geometry &g, const Point &c = Point(0., 0., 0.), real_t factor = 0.)

apply a homothety on a Geometry (template external)

inline Geometry homothetize(const Geometry &g, real_t factor)

apply a homothety on a Geometry (template external)

Mesh homothetize(const Mesh &m, const Parameter &p1)

apply a homothety on a Mesh (1 key)

apply a homothety on a Mesh (1 key) (external)

Mesh homothetize(const Mesh &m, const Parameter &p1, const Parameter &p2)

apply a homothety on a Mesh (2 keys)

apply a homothety on a Mesh (2 keys) (external)

Mesh homothetize(const Mesh &m, const Parameter &p1, const Parameter &p2, const Parameter &p3)

apply a homothety on a Mesh (3 keys)

apply a homothety on a Mesh (3 keys) (external)

Mesh homothetize(const Mesh &m, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)

apply a homothety on a Mesh (4 keys)

apply a homothety on a Mesh (4 keys) (external)

Mesh homothetize(const Mesh &m, const Point &c, real_t factor = 1.)

apply a homothety on a Mesh (external)

Mesh homothetize(const Mesh &m, real_t factor)

apply a homothety on a Mesh (external)

inline Point homothetize(const Point &g, const Parameter &p1)

apply a homothety on a Point (1 key) (template external)

inline Point homothetize(const Point &g, const Parameter &p1, const Parameter &p2)

apply a homothety on a Point (2 keys) (template external)

inline Point homothetize(const Point &g, const Point &c = Point(0., 0., 0.), real_t factor = 0.)

apply a homothety on a Point (template external)

inline Point homothetize(const Point &g, real_t factor)

apply a homothety on a Point (template external)

template<typename scalar1, typename T1_iterator, typename scalar2>
scalar2 hornerAlgorithmTpl(scalar1 x, T1_iterator b, T1_iterator e, scalar2 p0)

if p0 == 0 this is Horner algorithm: a[n] + x * (a[n-1] + x * (a[n-2] +…+ x * (a[0])…)) else compute a[n] + x * (a[n-1] + x * (a[n-2] +…+ x * (a[0] + x * p0)…))

OperatorOnFunction &id(const Function&)

id(k)

OperatorOnKernel &id(const Kernel&)

id(k)

OperatorOnUnknown &id(const Unknown&)

“differential” operators applied to unknown

OperatorOnFunction &id(OperatorOnFunction&)

id(opf)

OperatorOnKernel &id(OperatorOnKernel&)

id(opk)

template<typename T>
LargeMatrix<T> identityMatrix(const LargeMatrix<T> &mat)
void iFactorize(MatrixEntry&, MatrixEntry&, FactorizationType ft = _noFactorization)

factorize matrix as iLU (later or iLDLt or iLDL*)

void iFactorize(MatrixEntry &A, FactorizationType ift)

incomplete factorize matrix as ILU (or iLDLt or iLDL*), not preserving A

factorize matrix as iLU (later or iLDLt or iLDL*)

void iFactorize(TermMatrix &A, FactorizationType ft)
void iFactorize(TermMatrix &A, TermMatrix &Af, FactorizationType ft)
template<typename T>
std::vector<complex_t> ifft(const std::vector<T> &f)
template<typename T>
std::vector<complex_t> &ifft(const std::vector<T> &f, std::vector<complex_t> &g)
template<typename IterA, typename IterB>
void ifft(IterA ita, IterB itb, number_t log2n)

perform the inverse discrete Fourier transform of the discrete vector a of length n=2^log2n the result is the vector b of length 2^log2n bk = (1/n) sum_j=0,n-1 aj*exp(2*i*pi*j*k/n) ita: iterator at the beginning of a itb: iterator at the beginning of b log2n: log_2(n)

template<typename S>
void ildlstarFactorize(LargeMatrix<S> &mat)
template<typename S>
void ildltFactorize(LargeMatrix<S> &mat)
void ildltFactorize(TermMatrix &A, TermMatrix &Af)
template<typename S>
void illstarFactorize(LargeMatrix<S> &mat)
template<typename S>
void illtFactorize(LargeMatrix<S> &mat)
void illtluFactorize(TermMatrix &A, TermMatrix &Af)
template<typename S>
void iluFactorize(LargeMatrix<S> &mat)
void iluFactorize(TermMatrix &A, TermMatrix &Af)
inline SymbolicFunction &imag(const SymbolicFunction &f)
TermMatrix imag(const TermMatrix &tm)

return imag part as a real TermMatrix

TermVector imag(const TermVector &tv)

extracts imag part

Vector<real_t> imag(const Vector<complex_t> &a)

imaginary part of a complex vector

Vector<real_t> imag(const Vector<real_t> &a)

real part of a complex vector

imaginary part of a real vector

Vector<Vector<real_t>> imag(const Vector<Vector<complex_t>> &a)

abs of a vector of complex vectors

imaginary part of a vector of complex vectors

Vector<Vector<real_t>> imag(const Vector<Vector<real_t>> &a)

abs of a vector of real vectors

imaginary part of a vector of real vectors

inline real_t imagPart(const complex_t&)
Matrix<real_t> imagPart(const Matrix<complex_t> &cB)

imaginary part of a complex matrix

imag part of a complex matrix

Matrix<real_t> imagPart(const Matrix<real_t> &cB)

imag part of a real matrix

inline real_t imagPart(const real_t&)
inline SuTermVector imagPart(const SuTermVector &s)
template<typename T1_iterator, typename R_iterator>
void imagTpl(T1_iterator b1, T1_iterator e1, R_iterator Rb)

returns imaginary part of vector entries: R[i] = imag(T1[i])

void incompleteFunction(const string_t &s = "")

message sent when function not fully defined

template<typename T>
void info(const string_t &msgIds, const T &v, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
void info(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6, const T7 &v7, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
void info(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3, typename T4, typename T5>
void info(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3, typename T4>
void info(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3>
void info(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2>
void info(const string_t &msgIds, const T1 &v1, const T2 &v2, Messages *msgSrc = theMessages_p)
void info(const string_t &msgIds, MsgData &msgData, Messages *msgSrc)

shortcut of msg for info type messages

throw info messages

void init()

initializes execution of XLiFE++

void init(const Parameter &p1)
void init(const Parameter &p1, const Parameter &p2)
void init(const Parameter &p1, const Parameter &p2, const Parameter &p3)
void init(const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
void init(const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
void init(const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
void init(const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
void init(const std::vector<Parameter> &ps, int argc, char **argv)
void init(int argc, char **argv)
void init(int argc, char **argv, const Parameter &p1)
void init(int argc, char **argv, const Parameter &p1, const Parameter &p2)
void init(int argc, char **argv, const Parameter &p1, const Parameter &p2, const Parameter &p3)
void init(int argc, char **argv, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
void init(int argc, char **argv, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
void init(int argc, char **argv, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
void init(int argc, char **argv, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
void initBuild(Language lang, number_t verboseLevel, int_t nbThreads, bool trackingMode, bool pushpop, bool traceMemory, bool isLogged, const std::vector<string_t> &syskeys, const std::vector<string_t> &authorizedExtensions)

initialize execution of XLiFE++

void initCylinderSidePartGeodesic(Parameters &params)
void initGmshMap(GMSHMAP &gmMap)
void initHelmholtz2dHalfPlaneKernel(Kernel&, Parameters&)

initialize kernel data

void initHelmholtz2dKernel(Kernel&, Parameters&)

initialize kernel data

void initHelmholtz2dStripKernel(Kernel&, Parameters&)

initialize kernel data

void initHelmholtz3dKernel(Kernel&, Parameters&)

initialize kernel data

void initMaxwell3dKernel(Kernel&, Parameters&)

initialize kernel data

void initRandomGenerators(int)

initialize random generators from a seed

complex_t innerProduct(const SuTermVector&, const SuTermVector&)

inner product

complex_t innerProduct(const TermVector &tv1, const TermVector &tv2)

inner product

complex_t innerProduct(const VectorEntry&, const VectorEntry&)

inner product of two vectorentry’s

int_t integer(const Parameter&)

cast to int

template<typename K>
PolynomialT<K> integral(VariableName vn, const MonomialT<K> &m)
template<typename K>
PolynomialT<K> integral(VariableName vn, const PolynomialT<K> &p)
template<typename K>
std::vector<PolynomialT<K>> integral(VariableName vn, const std::vector<PolynomialT<K>> &ps)
TermMatrix integralRepresentation(const GeomDomain&, const LinearForm&, string_t nam = "IR")

integral representation, no unknown

template<typename T>
Vector<T> &integralRepresentation(const GeomDomain &dom, const LinearForm &lf, const TermVector &U, Vector<T> &val, std::vector<Point> &xs)

points are given from a GeomDomain, return values and points in input arguments list (pts)

template<typename T>
Vector<T> &integralRepresentation(const GeomDomain &dom, const std::pair<LinearForm, const TermVector*> lftv, Vector<T> &val, std::vector<Point> &pts)
TermMatrix integralRepresentation(const std::vector<Point>&, const LinearForm&, string_t nam = "IR")

integral representation, no unknown, no domain

template<typename T>
Vector<T> &integralRepresentation(const std::vector<Point> &xs, const LinearForm &lf, const TermVector &U, Vector<T> &val, const std::vector<Vector<real_t>> &ns = std::vector<Vector<real_t>>())

compute integral representation on a set of points: intg_gamma op(K)(xi,y) aop op(u) dy op(K) : operator on a Kernel K op(u) : operator on a TermVector u (defined on gamma) aop: algebraic operator

syntax examples: Vector<real_t> val; integralRepresentation(Points, intg(gamma,G * u), U, val); //U values of unknown integralRepresentation(Points, intg(gamma,(grad_y(G)|_ny) * u, U, GaussLegendre,3), val); integralRepresentation(Points, intg(gamma,(grad_x(G)|_nx) * u, U, GaussLegendre,3), val);

be cautious, returned values may be of type Vector<real_t>, Vector<complex_t> and has to be consistent with computation

template<typename T>
Vector<Vector<T>> &integralRepresentation(const std::vector<Point> &xs, const LinearForm &lf, const TermVector &U, Vector<Vector<T>> &val, const std::vector<Vector<real_t>> &ns = std::vector<Vector<real_t>>())

compute integral representation on a set of points returning a vector of vector

template<typename T>
Vector<T> &integralRepresentation(const std::vector<Point> &xs, const std::pair<LinearForm, const TermVector*> lftv, Vector<T> &val, const std::vector<Vector<real_t>> &ns = std::vector<Vector<real_t>>())
TermVector integralRepresentation(const Unknown&, const GeomDomain&, const LinearForm&, const TermVector&, const string_t &nam = "IR")

integralRepresentation, points are given from a GeomDomain, return a TermVector related to unknown u

TermMatrix integralRepresentation(const Unknown&, const GeomDomain&, const LinearForm&, string_t nam = "IR")

integral representation

inline TermVector integralRepresentation(const Unknown &u, const GeomDomain &dom, std::pair<LinearForm, const TermVector*> lftv, const string_t &nam = "IR")
real_t integrandLapDLP0(const Point &Sm, const Point &Sp, real_t h, real_t d, const Point &Ip)
real_t integrandLapDLP1const(const Point &Sm, const Point &Sp, real_t h, real_t d, const Point &Ip)
void integrandLapDLP1lin(const Point &Sm, const Point &Sp, real_t h, real_t d, const Point &Ip, Vector<real_t> &res)
real_t integrandLapSLP0(const Point &Sm, const Point &Sp, real_t h, real_t d, const Point &Ip, real_t alpha = 1.)

Explicit primitives

real_t integrandLapSLP1const(const Point &Sm, const Point &Sp, real_t h, real_t d, const Point &Ip, real_t alpha = 1.)
void integrandLapSLP1lin(const Point &Sm, const Point &Sp, real_t h, real_t d, const Point &Ip, Vector<real_t> &res, real_t alpha = 1.)
GeomDomain &internalSides(GeomDomain &dom)

access to domain defined from all internal sides of elements of domain dom, create it if not defined

TermVector interpolate(const Unknown&, const GeomDomain&, const TermVector&, const string_t &na = "")

interpolation of a TermVector on a domain, specifying unknown

void interpolatedNormals(Space &sp, std::vector<Vector<real_t>> &ns)

compute interpolated normals on Lagrange Dofs of space sp solve the projection problem Mk*nk = M0*n0 where Mk is the mass matrix associated to sp interpolation M0 is the “hybrid” mass matrix between sp interpolation and P0 interpolation the normals are returned as a vector of Vector

compute interpolated normals on Lagrange Dofs of space sp

NOTE: this method is well adapted for planar element (same normal every where in element) in case of curved geometric element, the method may be improved by using Gauss Lobatto interpolation of higher degree

Interpolation &interpolation(FEType typ, FESubType sub, number_t num, SobolevType spa)

main “constructor” by finding first if already exists

TermVector interpolent(const Unknown &u, const GeomDomain &dom, const Function &f, const Function &gradf, const Function &grad2f)

evaluate dofs on a function: dof_i(f) for any dofs related to unknown u and domain

bool intersect(const GeomElement &E1, const GeomElement &E2, real_t tol)
Point intersectionHalfLineEllipse(const Point &M, const std::vector<real_t> &d, const Point &C, const Point &A, const Point &B, bool &hasUniqueIntersection, real_t tmin, real_t tmax, real_t tol)

intersection half line (M,D) with ellipse (C,A,B, tmin, tmax) C center, A first apogee, B second apogee, sector [tmin,tmax], tmin,tmax in [0,2pi] P(t)= C + CA*cos(t) + CB*sin(t) t in (tmin,tmax) P1=P(tmin), P2=P(tmax) return void Point if no intersection or on boundary assume 3D points, A!=B, D!=0 and DxAB!=0 (non paralell)

intersection half line (M,d) with ellipse (C,A,B,tmin,tmax)

Point intersectionHalfLinePolygon(const Point &M, const std::vector<real_t> &d, const std::vector<Point> &vs, bool &hasUniqueIntersection, real_t tol)

intersection half line (M,D) with polygon given by its vertices

intersection half line (M,d) with polygon vs=(v1,v2,…vn)

Point intersectionHalfLineSegment(const Point &M, const std::vector<real_t> &d, const Point &A, const Point &B, bool &hasUniqueIntersection, real_t tol)

intersection of half line [M,d) with segment [AB] return void Point if no intersection or non unique point assume 3D points, A!=B, d!=0

intersection half line (M,d) with segment [AB]

std::pair<Point, Point> intersectionOfPlanes(const Point &S1, const Point &S2, const Point &S3, const Point &T1, const Point &T2, const Point &T3)

straight line intersection I of 2 planes (S1,S2,S3) and (T1,T2,T3) returns a pair of points defining the intersection

straight line intersection of 2 planes defined respectively by 3 non aligned points

Point intersectionOfPlanesWithOneSharedPoint(const Point &S1, const Point &S2, const Point &S3, const Point &T2, const Point &T3)

straight line intersection of 2 planes (S1,S2,S3) and (S1,T2,T3) S1 is on the intersection, so the remaining calculations are shorter returns a point defining the intersection with S1

straight line intersection of 2 planes defined respectively by 3 non aligned points with one vertex in common

bool intersectionOfSegments(const Point &A, const Point &B, const Point &C, const Point &D, Point &I, real_t tol)

unique intersection of segments [AB] and [CD], in 2D-3D all points have the same dimension, return true if intersection exists and is unique, else false (CDAB non coplanar or CD//AB) I= (1-alpha)*C + alpha*D = (1-gamma)*A + gamma*B and nCD: normal to CD in CDAB plane gamma = AC.nCD / PQ.nCD alpha = (AP+gamma*AB.CD)/CD.CD alpha and gamma must belong to [0,1] with a tolerance t, say [-t, 1+t]

Point intersectionOfStraightLines(const Point &S1, const Point &S2, const Point &T1, const Point &T2, bool &hasIntersect)

intersection point I of straight lines (S1S2) and (T1T2) if (S1S2) // (T1T2), I is of size 0 and hasIntersect is set to false else hasIntersect is set to true

intersection of straight lines

bool intersectionSegmentQuadrangle(const Point &P, const Point &Q, const Point &A, const Point &B, const Point &C, const Point &D, Point &I, Point &J, real_t tol)
bool intersectionSegmentTriangle(const Point &P, const Point &Q, const Point &A, const Point &B, const Point &C, Point &I, Point &J, real_t tol)

strict intersection of [P,Q] and triangle [A,B,C] all points must have the same dimension (not checked) return true if some intersection points exist else false in 3D non coplanar case: return one or no point in 3D coplanar or 2D cases: return one or two or no point in other words, if intersection is a segment [I,J] (I!=J) it returns false ans I,J are not updated

std::pair<LinearForm, const TermVector*> intg(const GeomDomain &dom, const KernelOperatorOnTermVector &koptv)

User single intg routines involving Kernel and TermVector (with up to 5 keys)

std::pair<LinearForm, const TermVector*> intg(const GeomDomain &dom, const KernelOperatorOnTermVector &koptv, const IntegrationMethod &im)

Deprecated:

use key-value system for optional arguments (_quad, _order, _method, …)

std::pair<LinearForm, const TermVector*> intg(const GeomDomain &dom, const KernelOperatorOnTermVector &koptv, const IntegrationMethods &ims)
std::pair<LinearForm, const TermVector*> intg(const GeomDomain &dom, const KernelOperatorOnTermVector &koptv, const Parameter &p1)
std::pair<LinearForm, const TermVector*> intg(const GeomDomain &dom, const KernelOperatorOnTermVector &koptv, const Parameter &p1, const Parameter &p2)
std::pair<LinearForm, const TermVector*> intg(const GeomDomain &dom, const KernelOperatorOnTermVector &koptv, const Parameter &p1, const Parameter &p2, const Parameter &p3)
std::pair<LinearForm, const TermVector*> intg(const GeomDomain &dom, const KernelOperatorOnTermVector &koptv, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
std::pair<LinearForm, const TermVector*> intg(const GeomDomain &dom, const KernelOperatorOnTermVector &koptv, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
std::pair<LinearForm, const TermVector*> intg(const GeomDomain &dom, const KernelOperatorOnTermVector &koptv, const std::vector<Parameter> &ps)

main routine for single integrals involving Kernel and TermVector

std::pair<LinearForm, const TermVector*> intg(const GeomDomain &dom, const KernelOperatorOnTermVector &koptv, QuadRule qr, number_t qro)
LinearForm intg(const GeomDomain &dom, const KernelOperatorOnUnknowns &kopus)

Basic single intg routines with kernels for users (with up to 10 keys)

LinearForm intg(const GeomDomain &dom, const KernelOperatorOnUnknowns &kopus, const IntegrationMethod &im, bool isogeo)
LinearForm intg(const GeomDomain &dom, const KernelOperatorOnUnknowns &kopus, const IntegrationMethods &ims, bool isogeo)
LinearForm intg(const GeomDomain &dom, const KernelOperatorOnUnknowns &kopus, const Parameter &p1)
LinearForm intg(const GeomDomain &dom, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2)
LinearForm intg(const GeomDomain &dom, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3)
LinearForm intg(const GeomDomain &dom, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
LinearForm intg(const GeomDomain &dom, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
LinearForm intg(const GeomDomain &dom, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
LinearForm intg(const GeomDomain &dom, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
LinearForm intg(const GeomDomain &dom, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8)
LinearForm intg(const GeomDomain &dom, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9)
LinearForm intg(const GeomDomain &dom, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9, const Parameter &p10)
LinearForm intg(const GeomDomain &dom, const KernelOperatorOnUnknowns &kopus, QuadRule qr, number_t qo, bool isogeo)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &lcopu)

Advanced (linear combinations) single intg routines for users (with up to 10 keys)

LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &Lcopu, ComputationType ct, const IntegrationMethod &im, bool isogeo)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &Lcopu, ComputationType ct, const IntegrationMethods &ims, bool isogeo)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &Lcopu, ComputationType ct, QuadRule qr, number_t qo, bool isogeo)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &Lcopu, const IntegrationMethod &im, bool isogeo)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &Lcopu, const IntegrationMethods &ims, bool isogeo)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &lcopu, const Parameter &p1)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &lcopu, const Parameter &p1, const Parameter &p2)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &lcopu, const Parameter &p1, const Parameter &p2, const Parameter &p3)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &lcopu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &lcopu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &lcopu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &lcopu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &lcopu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &lcopu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &lcopu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9, const Parameter &p10)
LinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknown &Lcopu, QuadRule qr, number_t qo, bool isogeo)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus)

Advanced (linear combinations) single intg routines for users (with up to 10 keys)

BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, bool isogeo, QuadRule qr, number_t qo = 0, SymType st = _undefSymmetry)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, const IntegrationMethod &im, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, const IntegrationMethod &im, SymType st)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, const Parameter &p1)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, const Parameter &p1, const Parameter &p2)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, const Parameter &p1, const Parameter &p2, const Parameter &p3)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9, const Parameter &p10)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, QuadRule qr, number_t qo, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &dom, const LcOperatorOnUnknowns &lcopus, SymType st)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu)

Basic single intg routines for users (with up to 10 keys)

BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, bool isogeo, QuadRule qr, number_t qo = 0, SymType st = _undefSymmetry)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, bool isogeo, SymType st = _undefSymmetry)

construct a simple intg bilinear form

BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, const IntegrationMethod &im, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, const IntegrationMethod &im, SymType st)

Deprecated:

use key-value system for optional arguments (_quad, _order, _method, _symmetry, _isogeo, …)

BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, QuadRule qr, number_t qo, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, SymType st = _undefSymmetry)

construct a simple intg bilinear form

LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, ComputationType ct, const IntegrationMethod &im, bool isogeo)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, ComputationType ct, const IntegrationMethods &ims, bool isogeo)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, ComputationType ct, QuadRule qr, number_t qo, bool isogeo)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, const IntegrationMethod &im, bool isogeo)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, const IntegrationMethods &ims, bool isogeo)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, const Parameter &p1)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9, const Parameter &p10)
LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, const std::vector<Parameter> &ps)

main routine for single integrals

LinearForm intg(const GeomDomain &dom, const OperatorOnUnknown &opu, QuadRule qr, number_t qo, bool isogeo)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus)

Basic single intg routines for users (with up to 10 keys)

BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, bool isogeo, QuadRule qr, number_t qo = 0, SymType st = _undefSymmetry)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, const IntegrationMethod &im, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, const IntegrationMethod &im, SymType st)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, const Parameter &p1)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9, const Parameter &p10)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, const std::vector<Parameter> &ps)

main routine for single integrals

BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, QuadRule qr, number_t qo, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &dom, const OperatorOnUnknowns &opus, SymType st)
LinearForm intg(const GeomDomain &dom, const Unknown &u)
LinearForm intg(const GeomDomain &dom, const Unknown &u, bool isogeo)

Deprecated:

use key-value system for optional arguments (_quad, _order, _method, _symmetry, _isogeo, …)

LinearForm intg(const GeomDomain &dom, const Unknown &u, ComputationType ct, const IntegrationMethod &im, bool isogeo)
LinearForm intg(const GeomDomain &dom, const Unknown &u, ComputationType ct, const IntegrationMethods &ims, bool isogeo)
LinearForm intg(const GeomDomain &dom, const Unknown &u, ComputationType ct, QuadRule qr, number_t qo, bool isogeo)
LinearForm intg(const GeomDomain &dom, const Unknown &u, const IntegrationMethod &im, bool isogeo)
LinearForm intg(const GeomDomain &dom, const Unknown &u, const IntegrationMethods &ims, bool isogeo)
LinearForm intg(const GeomDomain &dom, const Unknown &u, const Parameter &p1)
LinearForm intg(const GeomDomain &dom, const Unknown &u, const Parameter &p1, const Parameter &p2)
LinearForm intg(const GeomDomain &dom, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3)
LinearForm intg(const GeomDomain &dom, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
LinearForm intg(const GeomDomain &dom, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
LinearForm intg(const GeomDomain &dom, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
LinearForm intg(const GeomDomain &dom, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
LinearForm intg(const GeomDomain &dom, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8)
LinearForm intg(const GeomDomain &dom, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9)
LinearForm intg(const GeomDomain &dom, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9, const Parameter &p10)
LinearForm intg(const GeomDomain &dom, const Unknown &u, QuadRule qr, number_t qo, bool isogeo)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnTermVectorAndUnknown &koptvv)

User single intg routines involving Kernel and TermVector (with up to 5 keys)

LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnTermVectorAndUnknown &koptvv, const IntegrationMethod &im)

construct a simple intg linear form from KernelOperatorOnTermVector

Deprecated:

use key-value system for optional arguments (_quad, _order, _method, …)

LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnTermVectorAndUnknown &koptvv, const Parameter &p1)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnTermVectorAndUnknown &koptvv, const Parameter &p1, const Parameter &p2)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnTermVectorAndUnknown &koptvv, const Parameter &p1, const Parameter &p2, const Parameter &p3)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnTermVectorAndUnknown &koptvv, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnTermVectorAndUnknown &koptvv, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnTermVectorAndUnknown &koptvv, const std::vector<Parameter> &ps)

main routine for double integrals involving Kernel and TermVector

LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnTermVectorAndUnknown &koptvv, QuadRule qr, number_t qo)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus)

Basic double intg routines with kernels for users.

BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, bool isogeo, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const IntegrationMethod &im, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const IntegrationMethod &im, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const IntegrationMethods &ims, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const IntegrationMethods &ims, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const Parameter &p1)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9, const Parameter &p10)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, const std::vector<Parameter> &ps)

main routine to double integrals

BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const KernelOperatorOnUnknowns &kopus, SymType st)

construct a double intg bilinear form from kernel operators combination

BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus)

Advanced (linear combinations) double intg routines with kernels for users.

BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, bool isogeo, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const IntegrationMethod &im, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const IntegrationMethod &im, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const IntegrationMethods &ims, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const IntegrationMethods &ims, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const Parameter &p1)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const Parameter &p1, const Parameter &p2)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const Parameter &p1, const Parameter &p2, const Parameter &p3)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9, const Parameter &p10)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, const std::vector<Parameter> &ps)

main routine for advanced (linear combinations) intg routines with kernels

BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const LcKernelOperatorOnUnknowns &lckopus, SymType st)

construct a double intg bilinear form from kernel operators combination and integration methods

LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu)

Basic double intg routines for users (with up to 10 keys)

BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, bool isogeo, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, const IntegrationMethod &im, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, const IntegrationMethod &im, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, const IntegrationMethods &ims, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, const IntegrationMethods &ims, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aop, const OperatorOnUnknown &opv, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const Kernel &ker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, bool isogeo, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const Kernel &ker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const Kernel &ker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, const IntegrationMethod &im, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const Kernel &ker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, const IntegrationMethod &im, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const Kernel &ker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, const IntegrationMethods &ims, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const Kernel &ker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, const IntegrationMethods &ims, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const Kernel &ker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const Kernel &ker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const OperatorOnKernel &opker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, bool isogeo, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const OperatorOnKernel &opker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const OperatorOnKernel &opker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, const IntegrationMethod &im, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const OperatorOnKernel &opker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, const IntegrationMethod &im, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const OperatorOnKernel &opker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, const IntegrationMethods &ims, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const OperatorOnKernel &opker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, const IntegrationMethods &ims, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const OperatorOnKernel &opker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, AlgebraicOperator aopu, const OperatorOnKernel &opker, AlgebraicOperator aopv, const OperatorOnUnknown &opv, SymType st)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, const IntegrationMethod &im, bool isogeo = false)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, const Parameter &p1)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9, const Parameter &p10)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknown &opu, const std::vector<Parameter> &ps)

main routine for double integrals

BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus)

Basic double intg routines without kernels, for users.

BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, bool isogeo, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, const IntegrationMethod &im, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, const IntegrationMethod &im, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, const IntegrationMethods &ims, bool isogeo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, const IntegrationMethods &ims, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, const Parameter &p1)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9, const Parameter &p10)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, QuadRule qr, number_t qo, SymType st)
BilinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const OperatorOnUnknowns &opus, SymType st)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const Unknown &u)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const Unknown &u, const IntegrationMethod &im, bool isogeo = false)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const Unknown &u, const Parameter &p1)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const Unknown &u, const Parameter &p1, const Parameter &p2)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9)
LinearForm intg(const GeomDomain &domv, const GeomDomain &domu, const Unknown &u, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7, const Parameter &p8, const Parameter &p9, const Parameter &p10)
LinearForm intg(const GeomDomain &domx, const GeomDomain &domy, const OperatorOnUnknown &opu, QuadRule qr, number_t qo, bool isogeo)
LinearForm intg(const GeomDomain &domx, const GeomDomain &domy, const Unknown &u, QuadRule qr, number_t qo, bool isogeo)
void intgBFBuildParam(const Parameter &p, real_t &bound, bool &isogeom, IntegrationMethod *&meth, IntegrationMethods &meths, QuadRule &qr1, number_t &qo1, QuadRule &qr2, number_t &qo2, SymType &st, const GeomDomain *&extdomu, const GeomDomain *&extdomv)

get values of keys used in intg routines

void intgBFParamCompatibility(const ParameterKey &key, std::set<ParameterKey> &usedParams)

check compatibility between keys used in intg routines

void intgLfBuildParam(const Parameter &p, real_t &bound, bool &isogeom, IntegrationMethod *&meth, IntegrationMethods &meths, QuadRule &qr, number_t &qo, SymType &st, ComputationType &ct, const GeomDomain *&extdom)

get values of keys used in intg routines

void intgLfParamCompatibility(const ParameterKey &key, std::set<ParameterKey> &usedParams)

check compatibility between keys used in intg routines

inline dimen_t intToDim(int_t i, const string_t &loc = "?")
inline number_t intToNum(int_t i, const string_t &loc = "?")
SymbolicTermMatrix &inv(const TermMatrix &M)
SymbolicTermMatrix &inv(SymbolicTermMatrix &S)
void invalidFunction(const string_t &s = "")

message sent when function not valid

Vector<real_t> invCylinderSidePartGeodesic(const Point &pt, Parameters &params, DiffOpType d)
template<typename K>
Matrix<K> inverse(const Matrix<K> &m)
TermMatrix inverse(TermMatrix &A)
inline Vector<real_t> invParametrization_BezierSpline(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_BSpline(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_C2Spline(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_CatmullRomSpline(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_CircArc(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_EllArc(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_Ellipse(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_EllipsoidSidePart(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_Nurbs(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_Parallelogram(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_ParametrizedArc(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_Piecewise(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_Quadrangle(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_Segment(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_SplineArc(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_SplineSurface(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

inline Vector<real_t> invParametrization_Triangle(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call (Duffy)

inline Vector<real_t> invParametrization_TrunkSidePart(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern invParametrization call

vector<pair<ShapeType, vector<number_t>>> ioElementsBySplitting(const Space *sp, map<number_t, number_t> renumbering)

construct list of node numbers for each element after splitting space elements return the list of pair of shape O1 element and node number

pair<vector<Point>, map<number_t, number_t>> ioPoints(const Space *sp)

extract coordinates of output order 1 split mesh from dofs return as a pair, the list of O1 nodes and the renumbering map dofid -> i (rank of O1 node)

inline bool is32bits()
inline bool is64bits()
bool isComment(const string_t &line)

check if the current line is not a comment

bool isequal(const SymbolicFunction&, const SymbolicFunction&)

check equality of two symbolic functions

bool isNameAvailable(const string_t &keyname)

check if a name is not a system key name

bool isPathExist(const string_t &path)

check if path exists

inline bool isPointInQuadrangle(const Point &P, const Point &A, const Point &B, const Point &C, const Point &D, real_t tol = theEpsilon)

test if a point P is inside a quadrangle ABCD

bool isPointInSegment(const Point &P, const Point &A, const Point &B, real_t tol)

test if P belongs to [A,B], works in 2D-3D, assuming same point dimensions

test if a point P is inside a segment [AB]

bool isPointInTriangle(const Point &P, const Point &A, const Point &B, const Point &C, real_t tol = theEpsilon)

test if a point P is inside a triangle ABC

inline bool isSegmentInQuadrangle(const Point &P, const Point &Q, const Point &A, const Point &B, const Point &C, const Point &D, real_t tol = theEpsilon)

test if a segment [PQ] is inside a quadrangle ABCD

inline bool isSegmentInSegment(const Point &P, const Point &Q, const Point &A, const Point &B, real_t tol = theEpsilon)

test if a segment [PQ] is inside a segment [AB]

inline bool isSegmentInTriangle(const Point &P, const Point &Q, const Point &A, const Point &B, const Point &C, real_t tol = theEpsilon)

test if a segment [PQ] is inside a triangle ABC

bool isTranslatedPoints(const std::vector<Point> &pts1, const std::vector<Point> &pts2, Point &T)

check if points pts1 are related by a translation to points pts2 if true update the translation vector T translation vector candidate is built from first construction point (may be not sufficient) any point of pts1 must be related by T to a point of pts2

check if points pts1 are related by a translation to points pts2 (T is the translation vector)

inline bool isTriangleInQuadrangle(const Point &P, const Point &Q, const Point &R, const Point &A, const Point &B, const Point &C, const Point &D, real_t tol = theEpsilon)

test if a triangle PQR is inside a quadrangle ABCD

inline bool isTriangleInTriangle(const Point &P, const Point &Q, const Point &R, const Point &A, const Point &B, const Point &C, real_t tol = theEpsilon)

test if a triangle PQR is inside a triangle ABC

TermVector iterativeSolve(TermMatrix &A, TermVector &B, const Parameter &p1)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const Parameter &p1, const Parameter &p2)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const Parameter &p1, const Parameter &p2, const Parameter &p3)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, const Parameter &p1)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, const Parameter &p1, const Parameter &p2)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, const Parameter &p1, const Parameter &p2, const Parameter &p3)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, Preconditioner &P, const Parameter &p1)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, Preconditioner &P, const Parameter &p1, const Parameter &p2)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, Preconditioner &P, const Parameter &p1, const Parameter &p2, const Parameter &p3)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, Preconditioner &P, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, Preconditioner &P, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, Preconditioner &P, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, Preconditioner &P, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, const TermVector &X0, Preconditioner &P, const std::vector<Parameter> &ps)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, Preconditioner &P, const Parameter &p1)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, Preconditioner &P, const Parameter &p1, const Parameter &p2)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, Preconditioner &P, const Parameter &p1, const Parameter &p2, const Parameter &p3)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, Preconditioner &P, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, Preconditioner &P, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, Preconditioner &P, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6)
TermVector iterativeSolve(TermMatrix &A, TermVector &B, Preconditioner &P, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5, const Parameter &p6, const Parameter &p7)
TermVector iterativeSolveGen(IterativeSolverType isType, TermMatrix &A, TermVector &B, const TermVector &X0, Preconditioner &P, real_t tol, number_t iterMax, const real_t omega, const number_t krylovDim, const number_t verboseLevel, const string_t &nam)
inline complex_t j_s(const complex_t &z, real_t x, const complex_t &q)
Parameters:

q – exp(-ixz) /(w2’(z)-qw2(z))

void jacobiPolynomials(real_t a, real_t b, real_t, std::vector<real_t>&)

Jacobi polynomials on [-1, 1] up to order n P_0 = 1, P_1 = (2*(a+1)+a+b+2)*(x-1) / 2 P_{n+1}*{ 2*(n+1)(n+a+b+1)(2*n+a+b) } = { (2*n+1+a+b)(a^2-b^2) + (2*n+a+b)(2*n+1+a+b)(2*n+2+a+b)*x } * P_{n} -{ 2*(n+a)*(n+b)(2*n+2+a+b) } * P_{n-1} , n > 0.

void jacobiPolynomials01(real_t a, real_t b, real_t, std::vector<real_t>&)

Jacobi polynomials on [0, 1] up to order n.

inline string_t join(const Strings &ss, const string_t &delim)

join utility

OperatorOnUnknown &jump(const Unknown &un)
OperatorOnUnknown &jump(OperatorOnUnknown &opu)
template<typename K>
MatrixEigenDense<K> kroneckerProduct(MatrixEigenDense<K> &mat1, MatrixEigenDense<K> &mat2)
template<typename T>
T laguerre(T (*f)(real_t), real_t t0, real_t a, number_t nq, std::vector<real_t> &quadpoints, std::vector<real_t> &quadweights)
template<typename T>
T laguerre(T (*f)(real_t, Parameters&), Parameters &pars, real_t t0, real_t a, number_t nq, std::vector<real_t> &quadpoints, std::vector<real_t> &quadweights)
void LaguerreTable(number_t n, std::vector<real_t> &quadpoints, std::vector<real_t> &quadweights)
OperatorOnUnknown &lap(const Unknown &un)
OperatorOnUnknown &lapG(const Unknown &un, const complex_t &axx, const complex_t &ayy, const complex_t &azz)
real_t Laplace2d(const Point &x, const Point &y, Parameters &pars)

value

Vector<real_t> Laplace2dGradx(const Point &x, const Point &y, Parameters &pars)

gradx

Matrix<real_t> Laplace2dGradxy(const Point &x, const Point &y, Parameters &pa)

grad_x grad_y

Vector<real_t> Laplace2dGrady(const Point &x, const Point &y, Parameters &pars)

grady

Kernel Laplace2dKernel(Parameters &pars = defaultParameters)

construct a Laplace2d kernel

real_t Laplace2dNxdotGradx(const Point &x, const Point &y, Parameters &pars)

nx dot grad_x

real_t Laplace2dNydotGrady(const Point &x, const Point &y, Parameters &pars)

ny dot grad_y

real_t Laplace3d(const Point &x, const Point &y, Parameters &pars)

value

Vector<real_t> Laplace3dGradx(const Point &x, const Point &y, Parameters &pars)

gradx

Vector<real_t> Laplace3dGrady(const Point &x, const Point &y, Parameters &pars)

grady

Kernel Laplace3dKernel(Parameters &pars = defaultParameters)

construct a Laplace3d kernel

real_t Laplace3dNxdotGradx(const Point &x, const Point &y, Parameters &pars)

nx dot grad_x

real_t Laplace3dNydotGrady(const Point &x, const Point &y, Parameters &pars)

ny dot grad_y

real_t LaplaceDLP0(const Element *elt, const Point &pos)
void LaplaceDLP1(const Element *elt, const Point &pos, Vector<real_t> &res)
real_t LaplaceSLP0(const Element *elt, const Point &pos)
void LaplaceSLP1(const Element *elt, const Point &pos, Vector<real_t> &res)

Computation functions

template<typename S>
void ldlstarFactorize(LargeMatrix<S> &mat)
void ldlstarFactorize(TermMatrix &A, TermMatrix &Af)
TermVectors ldlstarLeftSolve(TermMatrix &A, const std::vector<TermVector> &Bs, TermMatrix &Af)
TermVector ldlstarLeftSolve(TermMatrix &A, const TermVector &B, TermMatrix &Af)
TermVectors ldlstarSolve(TermMatrix &A, const std::vector<TermVector> &Bs, TermMatrix &Af)
TermVector ldlstarSolve(TermMatrix &A, const TermVector &B, TermMatrix &Af)
template<typename S>
void ldltFactorize(LargeMatrix<S> &mat)
void ldltFactorize(TermMatrix &A, TermMatrix &Af)

factorization of a TermMatrix A in Af when the TermMatrix is stored as a compressed sparse matrix, it is restored as a skyline matrix when the TermMatrix is a multiple unknown matrix, the matrix is rewritten in a “single” unknown matrix stored as a skyline matrix or a dense matrix if all blocks are dense

TermVectors ldltLeftSolve(TermMatrix &A, const std::vector<TermVector> &Bs, TermMatrix &Af)
TermVector ldltLeftSolve(TermMatrix &A, const TermVector &B, TermMatrix &Af)
TermVectors ldltSolve(TermMatrix &A, const std::vector<TermVector> &Bs, TermMatrix &Af)
TermVector ldltSolve(TermMatrix &A, const TermVector &B, TermMatrix &Af)
void legendreFunctions(real_t, std::vector<std::vector<real_t>> &Pml)

compute all Legendre functions up to order n for any real x: P^m_l(x) where n = Pml.size()-1 and l = 0,.., n and m = 0,..,n P^m_l(x) = (-1)^{m} * (1-x^2)^{m/2} d^m/dx^m[ P_l(x) ] where P_l is Legendre polynomial of degree l

void legendreFunctionsDerivative(real_t, const std::vector<std::vector<real_t>>&, std::vector<std::vector<real_t>>&)

compute all Legendre functions derivatives up to order n for any real x: P’^m_l(x) from given Legendre functions up to order n for any real x: P^m_l(x) where n = Pml.size()-1 and l = 0,.., n and m = 0,..,n

void legendreFunctionsDerivativeTest(real_t x, number_t n, std::ostream &out)
void LegendreFunctionsDerivativeTest(real_t, number_t, std::ostream&)

output function for test of Legendre Functions derivatives

void legendreFunctionsTest(real_t x, number_t n, std::ostream&)

output function for test of Legendre Functions

void legendrePolynomials(real_t, std::vector<real_t>&)

Legendre polynomials on [-1, 1] up to order n P_0(x) = 1, P_1(x) = x, n*P_n(x) = (2*n-1) x P_{n-1}(x) - (n-1) P_{n-2}(x) , n > 1.

void legendrePolynomialsDerivative(real_t, std::vector<real_t>&)

derivatives of Legendre polynomials on [-1, 1] up to order n P’0(x) = 0, P’_1(x) = 1 (1-x^2) P’_n(x) = - n x P_n(x) + n P{n-1}(x) , n > 1

template<typename T>
Vector<T> lineSpace(const T &a, const T &b, number_t n)

generates n points xi = a+i*dx with x = (b-a)/(n-1).

template<typename T>
std::vector<T> linSpace(const T &a, const T &b, number_t n)

return vector xi=a+i(b_a)/(n-1) i=0,n-1

void loadMeditElements(std::istream &data, number_t spaceDim, ShapeType type, number_t dim, number_t nbVertices, std::vector<MELT> &melts, std::map<number_t, std::set<number_t>> &doms, std::map<ShapeType, ELTDEF> &elMap)
Geometry *locate(const Point &x, Point &dx, const std::map<number_t, Geometry*> &components, Geometry *last)
void locateError(bool warn, const string_t&, const GeomDomain&, const Point&, real_t d)

error management for locate tool

inline void locateToleranceFactor(real_t f)
inline SuTermVector log(const SuTermVector &s)
inline SymbolicFunction &log(const SymbolicFunction &f)
inline TermVector log(const TermVector &s)
template<typename K>
Vector<K> log(const Vector<K> &v)

log(v)

inline SuTermVector log10(const SuTermVector &s)
inline SymbolicFunction &log10(const SymbolicFunction &f)
inline TermVector log10(const TermVector &s)
complex_t logGamma(const complex_t&)

Paul Godfrey’s Lanczos implementation of the Gamma function.

real_t logGamma(real_t)

return Log(Gamma(x))

complex_t logGamma1(const complex_t&)

return Log(Gamma(z))

complex_t LogGamma1(const complex_t &z)
string_t logo(const dimen_t num)

logo returns random XLiFE++ logo (among 10!) as a multi-line string

logo returns ‘random’ XLiFE++ logo (among 5!) as a multi-line string

bool lookfor(const string_t BeginSection, FILE *data)
bool lookfor(const string_t BeginSection, ifstream &data)
string_t lowercase(const string_t &s)

convert “AbCdefg” to “abcdefg”

returns string_t converted to lowercase

template<typename T>
Matrix<T> &lu(Matrix<T> &A)
template<typename T>
void lu(Matrix<T> &A, Matrix<T> &L, Matrix<T> &U)
template<typename T>
void lu(Matrix<T> &A, Matrix<T> &L, Matrix<T> &U, std::vector<dimen_t> &P)
template<typename T>
Matrix<T> &lu(Matrix<T> &A, Matrix<T> &LU)

LU factorization with no permutation, L lower triangular matrix with diagonal 1 stored in strict lower part of LU U upper triangular part stored in upper part of LU matrix LU may be the same as A.

template<typename T>
Matrix<T> &lu(Matrix<T> &A, Matrix<T> &LU, std::vector<dimen_t> &P)

LU factorization with real row permutation, PA = LU where P is a permutation matrix represented by a permutation vector p L lower triangular matrix with diagonal 1 stored in strict lower part of LU U upper triangular part stored in upper part of LU be care with operation on LU, permutation may have been applied for instance solving Ax=b should be done as LUx=Pb matrix LU may be the same as A.

template<typename T>
Matrix<T> &lu(Matrix<T> &A, std::vector<dimen_t> &P)
template<typename S>
void luFactorize(LargeMatrix<S> &mat, bool withPermutation = true)
void luFactorize(TermMatrix &A, TermMatrix &Af, bool withPermutation)
TermVectors luLeftSolve(TermMatrix &A, const std::vector<TermVector> &Bs, TermMatrix &Af)
TermVector luLeftSolve(TermMatrix &A, const TermVector &B, TermMatrix &Af)
TermVectors luSolve(TermMatrix &A, const std::vector<TermVector> &Bs, TermMatrix &Af)
TermVector luSolve(TermMatrix &A, const TermVector &B, TermMatrix &Af)
std::vector<Parameter> makeParList(int nbpar, ...)
complex_t mal_integrand(real_t t, Parameters &pars)

integrand at (t,z), extern call

inline void mapShapeValues(RefElement &refElt, MeshElement &melt, GeomMapData &mapdata, bool mapsh, FEMapType femt, bool rotsh, number_t ord, bool changeSign, const Vector<real_t> *sign, dimen_t dimfun, dimen_t &dimfunp, const ShapeValues &sh, ShapeValues &shmap)
TermVector mapTo(const TermVector &v, const GeomDomain &dom, const Unknown &u, bool useNearest, bool errorOnOutDom, Function *fmap, real_t tol)
inline number_t materialIdFromParameters(Parameters &pars)
template<typename A_it, typename B_it, typename R_it>
void matmat(A_it it_ma, const dimen_t nbk, B_it it_mb, const dimen_t nbr, const dimen_t nbc, R_it it_mr)
template<typename K, typename V1_it, typename V2_it>
V2_it matvec(const Matrix<K> &m, const V1_it it_v1b, const V2_it it_v2b)
template<typename K, typename ITV, typename ITR>
void matvec(const SparseMatrix<K> &m, const ITV itv, const ITR itr)
template<typename M_it, typename V1_it, typename V2_it>
void matvec(M_it it_mb, const V1_it it_v1b, const V1_it it_v1e, V2_it it_v2b, V2_it it_v2e)
inline complex_t maxAbsVal(const complex_t&)
inline complex_t maxAbsVal(const real_t&)
template<typename K>
complex_t maxAbsVal(const Vector<K> &u)

return the value (in complex) of component being the largest one in absolute value

void maxDegreeRule(int degree, const string_t &name, ShapeType sh, int maxdeg)

warning message

template<typename T_iterator>
T_iterator maxElementTpl(T_iterator b, T_iterator e)

returns iterator to first occurrence of maximum absolute magnitude in stl container

int_t maxSeparator(const Point &p, const Point &q, int &c, real_t &s)

separation function used by KdTree

template<typename T, typename U>
T maxTpl(const T &a, const U &b)

returns maximum of 2 values

template<typename T, typename U, typename V>
T maxTpl(const T &a, const U &b, const V &c)

returns maximum of 3 values

Matrix<complex_t> Maxwell3d(const Point &x, const Point &y, Parameters &pa)

kernel computation: IG_t(k_s; x, y)=G(k_s; x, y)*I_3 + 1/k_s^2 * Hess(G(k_s; x, y)-G(k_p; x, y))

value

Matrix<complex_t> Maxwell3dCurlx(const Point &x, const Point &y, Parameters &pa)

kernel computation: Curlx(IG_t)

curlx

Matrix<complex_t> Maxwell3dCurlxy(const Point &x, const Point &y, Parameters &pa)

kernel computation: CurlxCurly(IG_t)

curlx.curly

Matrix<complex_t> Maxwell3dCurly(const Point &x, const Point &y, Parameters &pa)

kernel computation: Curly(IG_t)

curly

Vector<complex_t> Maxwell3dDivx(const Point &x, const Point &y, Parameters &pa)

kernel computation: Divx(IG_t)

divx

complex_t Maxwell3dDivxy(const Point &x, const Point &y, Parameters &pa)

kernel computation: DivxDivy(IG_t)

divx.divy

Vector<complex_t> Maxwell3dDivy(const Point &x, const Point &y, Parameters &pa)

kernel computation: Divy(IG_t)

divy

Kernel Maxwell3dKernel(const complex_t &k, const real_t &t = 0)

construct a Maxwell3d kernel from complex k

Kernel Maxwell3dKernel(const real_t &k, const real_t &t = 0)

construct a Maxwell3d kernel from real k

Kernel Maxwell3dKernel(Parameters& = defaultParameters)

construct a Maxwell3d kernel from parameters

OperatorOnUnknown &mean(const Unknown &un)
OperatorOnUnknown &mean(OperatorOnUnknown &opu)
inline real_t measure(const GeomDomain &g)

measure (length, surface or volume) of Domain

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 20 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 19 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 18 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 17 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 16 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 15 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 14 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 13 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 12 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 11 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 10 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 9 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 8 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 7 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 6 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 5 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 4 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, const GeomDomain&, S_ name)

merge 3 geometrical domains (true union of elements)

template<typename S_>
GeomDomain &merge(const GeomDomain&, const GeomDomain&, S_ name)

merge 2 geometrical domains (true union of elements)

template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const GeomDomain &d14, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const GeomDomain &d14, const GeomDomain &d15, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const GeomDomain &d14, const GeomDomain &d15, const GeomDomain &d16, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const GeomDomain &d14, const GeomDomain &d15, const GeomDomain &d16, const GeomDomain &d17, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const GeomDomain &d14, const GeomDomain &d15, const GeomDomain &d16, const GeomDomain &d17, const GeomDomain &d18, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const GeomDomain &d14, const GeomDomain &d15, const GeomDomain &d16, const GeomDomain &d17, const GeomDomain &d18, const GeomDomain &d19, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const GeomDomain &d14, const GeomDomain &d15, const GeomDomain &d16, const GeomDomain &d17, const GeomDomain &d18, const GeomDomain &d19, const GeomDomain &d20, const char *name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const GeomDomain &d14, const GeomDomain &d15, const GeomDomain &d16, const GeomDomain &d17, const GeomDomain &d18, const GeomDomain &d19, const GeomDomain &d20, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const GeomDomain &d14, const GeomDomain &d15, const GeomDomain &d16, const GeomDomain &d17, const GeomDomain &d18, const GeomDomain &d19, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const GeomDomain &d14, const GeomDomain &d15, const GeomDomain &d16, const GeomDomain &d17, const GeomDomain &d18, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const GeomDomain &d14, const GeomDomain &d15, const GeomDomain &d16, const GeomDomain &d17, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const GeomDomain &d14, const GeomDomain &d15, const GeomDomain &d16, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const GeomDomain &d14, const GeomDomain &d15, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, const GeomDomain &d14, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, const GeomDomain &d13, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, const GeomDomain &d12, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, const GeomDomain &d11, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, const GeomDomain &d10, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, const GeomDomain &d9, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, const GeomDomain &d8, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, const GeomDomain &d7, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, const GeomDomain &d6, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, const GeomDomain &d5, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, const GeomDomain &d4, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, const GeomDomain &d3, string_t name)
template GeomDomain & merge (const GeomDomain &d1, const GeomDomain &d2, string_t name)
inline Mesh merge(const Mesh &m1, const Mesh &m2, bool mergeSharedBoundary = true, const string_t &name = "#Omega")
inline Mesh merge(const Mesh &m1, const Mesh &m2, const Mesh &m3, bool mergeSharedBoundary = true, const string_t &name = "#Omega")
inline Mesh merge(const Mesh &m1, const Mesh &m2, const Mesh &m3, const Mesh &m4, bool mergeSharedBoundary = true, const string_t &name = "#Omega")
inline Mesh merge(const Mesh &m1, const Mesh &m2, const Mesh &m3, const Mesh &m4, const Mesh &m5, bool mergeSharedBoundary = true, const string_t &name = "#Omega")
template GeomDomain & merge (const std::vector< const GeomDomain * > &doms, const char *name)
template<typename S_>
GeomDomain &merge(const std::vector<const GeomDomain*> &doms, S_ name)

merge some geometrical domains (true union of elements) GeomDomains must be MeshDomain of same dimension

merge some geometrical domains (true union of elements)

template GeomDomain & merge (const std::vector< const GeomDomain * > &doms, string_t name)
Mesh merge(const std::vector<const Mesh*> &ms, bool mergeSharedBoundary = true, const string_t &name = "#Omega")

merge meshes of same dimension

template GeomDomain & merge (const std::vector< GeomDomain * > &doms, const char *name)

create the domain made of union of elements (same dimension)

template<typename S_>
GeomDomain &merge(const std::vector<GeomDomain*> &doms, S_ name)

merge some geometrical domains (true union of elements) GeomDomains must be MeshDomain of same dimension

merge some geometrical domains (true union of elements), non const version

template GeomDomain & merge (const std::vector< GeomDomain * > &doms, string_t name)
TermVector merge(const TermVector&, const TermVector&)

merge two termvectors, preserving values of first one when common dofs

std::map<const Unknown*, Constraints*> mergeConstraints(std::vector<Constraints*> &constraints)

merge constraints systems (if more than one conditions) it takes as input a vector of Constraints (each corresponding to an essential condition) and produces a map of Constraints indexed by unknown with two cases:

merge constraints

Case of uncoupled unknowns (u1/v1, u2/v2 referred to same unknown u/v), u and v are not coupled by constraints u1 u2 v1 v2 —————–&#8212; u1 u2 v1 v2 c1 |cu1 0 0 0 | | f1 ——-&#8212; ——&#8212; c2 | 0 cu2 0 0 | = | f2 ==> Cu = |cu1 0 | = fu= | f1 Cv = |cv1 cv2| = fv= | f3 c3 | 0 cv1 cv2 | | f3 | 0 cu2 | | f2 ——&#8212;

The merging process involving u1, u2 referring to same unknown u produces

Constraints object where common dofs are merged One Constraints object for each unknown is created and returned

Case of coupled unknowns (u1/v1, u2/v2 referred to same unknown u/v), u and v are coupled at least by one constraint u1 u2 v1 v2 —————-&#8212; u v c1 |cu1 0 0 0 | = | f1 ——&#8212; c2 | 0 cu2 cv1 cv2 | | f2 ==> |Cu Cv | = f

A global

Constraints matrix is created and returned (indexed by 0)

NOTE: when merging some Constraints in a new one the old ones are deleted by this function

Space *mergeSubspaces(Space *&sp1, Space *&sp2, bool newSubspaces)

merge subspaces given by a list of Space pointer the union is allowed only for subspaces of same root space this function may return the root space, one of the subspaces or a new subspace if newSubspaces is true, new subspaces with union as parent are created and return as space pointers

merge two subspaces

Space *mergeSubspaces(std::vector<Space*> &sps, bool newSubspaces = false)

merge a list of subspaces

SuTermMatrix *mergeSuTermMatrix(const std::list<SuTermMatrix*>&)

merge SuTerMatrix’s referring to the same vector unknown

SuTermVector *mergeSuTermVector(const std::list<SuTermVector*>&)

merge blocks with components of the same unknown

template<typename T>
string_t message(const string_t &msgIds, const T &v, Messages *msgSrc = theMessages_p)

templated message functions (shortcuts avoiding the use of MsgData object)

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
string_t message(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6, const T7 &v7, const T8 &v8, const T9 &v9, const T10 &v10, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
string_t message(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6, const T7 &v7, const T8 &v8, const T9 &v9, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
string_t message(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6, const T7 &v7, const T8 &v8, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
string_t message(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6, const T7 &v7, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
string_t message(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3, typename T4, typename T5>
string_t message(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3, typename T4>
string_t message(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2, typename T3>
string_t message(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, Messages *msgSrc = theMessages_p)
template<typename T1, typename T2>
string_t message(const string_t &msgIds, const T1 &v1, const T2 &v2, Messages *msgSrc = theMessages_p)
string_t message(const string_t &msgIds, MsgData &msgData, Messages *msgSrc)

main function to throw an error/warning/info message where

build formated message

exemple: to throw the internal error with an int msgId and a string s paramaters data << s; msg(“msg_undef”, data, errInternal,_error);

NOTE that MsgData structure is cleared after call. data and errInternal,_error have default values theMessageData and theMessages_p

Parameters:
  • msgIds – the string id of a message in this collection

  • msgData – a data object containing the message parameters

  • msgSrc – pointer to an error message formats collection

template<typename T_iterator>
T_iterator minElementTpl(T_iterator b, T_iterator e)

returns iterator to first occurrence of minimum absolute magnitude in stl container

template<typename T, typename U>
T minTpl(const T &a, const U &b)

returns minimum of 2 values

template<typename T, typename U, typename V>
T minTpl(const T &a, const U &b, const V &c)

returns minimum of 3 values

real_t mixedProduct(const Point&, const Point&, const Point&)

returns the mixed product (AxB).C

void msg(const string_t &msgIds, MsgData &msgData, Messages *msgSrc, MsgType &msgType)

throw messages

void msg(const string_t &msgIds, MsgData &msgData, Messages *msgSrc, MsgType msgType = _info)

general message handler

void msgInit(const string_t &msgPath, std::ofstream &out)

initialization procedure for messages handling

initialization of engine for messages handling

void mshExport(const GeomDomain &dom, const std::vector<Point> &coords, const splitvec_t &elementsInfo, std::ostream &out)

export a split mesh of a domain to msh format

number_t mshType(ShapeType sht, number_t order)

returns the id msh number of a shape, according to the finite elements order

void mtlbExport(const GeomDomain &dom, const std::vector<Point> &coords, const splitvec_t &elementsInfo, std::ostream &out)

export a split mesh of a domain to Matlab - Octave format

void mtlbExport(const GeomDomain &dom, const vector<Point> &coords, const vector<pair<ShapeType, vector<number_t>>> &elementsInfo, std::ostream &out)
template<typename T, typename V, typename R>
void multFactMatrixVector(const LargeMatrix<T> &mat, const std::vector<V> &vec, std::vector<R> &res)

product with factorized matrix no permutation: L*U*X or L*D*Lt*X or (L*D*L*)*X row permutation (PA=LU) : inv(P)*L*U*X or inv(P)*L*D*Lt*X or inv(P)*(L*D*L*)*X col permutation (AQ=LU) : L*U*inv(Q)*X or L*D*Lt*inv(Q)*X or (L*D*L*)*inv(Q)*X row and col permutation (PAQ=LU) : inv(P)*L*U*inv(Q)*X or inv(P)*L*D*Lt*inv(Q)*X or inv(P)*(L*D*L*)*inv(Q)*X called by multMatrixVector functions

template<typename S1, typename S2>
void multInverMatrixVector(const LargeMatrix<S1> &mat, std::vector<S2> &vec, std::vector<typename Conditional<NumTraits<S1>::IsComplex, S1, S2>::type> &res, FactorizationType fac)
template<typename K1, typename K2>
void multMatMat(const MatrixEigenDense<K1> &mat1, const MatrixEigenDense<K2> &mat2, MatrixEigenDense<typename Conditional<NumTraits<K1>::IsComplex, K1, K2>::type> &res)
template<typename T>
ApproximateMatrix<T> &multMatrix(ApproximateMatrix<T> &A, ApproximateMatrix<T> &B, ApproximateMatrix<T> &AB)

ApproximateMatrix * ApproximateMatrix -> ApproximateMatrix.

template<typename T>
ApproximateMatrix<T> &multMatrix(ApproximateMatrix<T> &A, LargeMatrix<T> &L, ApproximateMatrix<T> &AL)

ApproximateMatrix * LargeMatrix -> ApproximateMatrix.

template<typename T>
ApproximateMatrix<T> &multMatrix(LargeMatrix<T> &L, ApproximateMatrix<T> &A, ApproximateMatrix<T> &LA)

LargeMatrix * ApproximateMatrix -> ApproximateMatrix.

template<typename T>
LowRankMatrix<T> &multMatrix(LargeMatrix<T> &L, LowRankMatrix<T> &A, LowRankMatrix<T> &AL)

product of a LargeMatrix and a LowRankMatrix

template<typename T>
LowRankMatrix<T> &multMatrix(LowRankMatrix<T> &A, LargeMatrix<T> &L, LowRankMatrix<T> &AL)

product of a LowRankMatrix and a LargeMatrix

template<typename T>
LowRankMatrix<T> &multMatrix(LowRankMatrix<T> &A, LowRankMatrix<T> &B, LowRankMatrix<T> &AB)

product of two LowRankMatrix’s

template<typename SA, typename SB, typename SR>
void multMatrixMatrix(const LargeMatrix<SA> &mA, const LargeMatrix<SB> &mB, LargeMatrix<SR> &mR)

extern template product matrix*matrix the storage of the resulting matrix is ALWAYS dense there is no chance to get a sparse matrix except in case of product with a diagonal matrix where the storage is unchanged

template<typename SA, typename SB, typename SR>
void multMatrixMatrix(const LargeMatrix<SA> &mA, const std::vector<SB> &mB, LargeMatrix<SR> &mR)
template<typename SA, typename SB, typename SR>
void multMatrixMatrix(const std::vector<SA> &mA, const LargeMatrix<SB> &mB, LargeMatrix<SR> &mR)
LargeMatrix<complex_t> multMatrixScalar(const LargeMatrix<complex_t> &mat, const real_t v)

Multiple a complex Matrix with real scalar The result matrix will point to the same storage.

Parameters:
  • mat – complex matrix

  • v – real scalar

Returns:

result matrix which share the same storage.

LargeMatrix<complex_t> multMatrixScalar(const LargeMatrix<real_t> &mat, const complex_t v)

Multiple a real Matrix with complex scalar The result matrix will point to the same storage.

Parameters:
  • mat – real matrix

  • v – complex scalar

Returns:

complex matrix which share the same storage.

template<typename T>
LargeMatrix<T> multMatrixScalar(const LargeMatrix<T> &mat, const T v)

Multiple a largeMatrix with a scalar The result matrix will point to the same storage.

Parameters:
  • mat – matrix

  • v – scalar

Returns:

result matrix which shares the same storage.

template<typename T, typename I>
Vector<T> multMatrixVector(const HMatrix<T, I> &h, const Vector<T> &x)

hmatrix vector product

void multMatrixVector(const LargeMatrix<complex_t> &mat, const std::vector<real_t> &vec, std::vector<complex_t> &res)
void multMatrixVector(const LargeMatrix<Matrix<complex_t>> &mat, const std::vector<Vector<real_t>> &vec, std::vector<Vector<complex_t>> &res)
void multMatrixVector(const LargeMatrix<Matrix<real_t>> &mat, const std::vector<Vector<complex_t>> &vec, std::vector<Vector<complex_t>> &res)
template<typename T>
void multMatrixVector(const LargeMatrix<Matrix<T>> &mat, const std::vector<Vector<T>> &vec, std::vector<Vector<T>> &res)

templated mat<Matrix<T> > * vec<Vector<T> >

void multMatrixVector(const LargeMatrix<real_t> &mat, const std::vector<complex_t> &vec, std::vector<complex_t> &res)
template<typename T>
void multMatrixVector(const LargeMatrix<T> &mat, const std::vector<T> &vec, std::vector<T> &res)

templated mat<T> * vec<T>

template<typename T, typename V, typename R>
void multMatrixVector(const LargeMatrix<T> &mat, V *vp, R *rp)

templated mat<T> * vec<V> (pointer form)

template<typename K>
void multMatrixVector(const Matrix<K> &m, const Vector<K> &v, Vector<K> &mv)
void multMatrixVector(const MatrixEntry&, const VectorEntry&, VectorEntry&)

matrix * vector

TermVector multMatrixVector(const SymbolicTermMatrix &S, const TermVector &X)
TermVector &multMatrixVector(const TermMatrix&, const TermVector&, TermVector&)

product TermMatrix * TermVector

template<typename Scalar, typename ScalarTypeX, typename MatrixType>
void multMatVecLargeMatrixAdapter(const LargeMatrixAdapter<MatrixType, Scalar> &m, const MultiVec<ScalarTypeX> &x, MultiVec<typename Conditional<NumTraits<Scalar>::IsComplex, Scalar, ScalarTypeX>::type> &y)
template<typename T>
void multScalarThenAssign(TermVector &tv, const T &t)

operation U*=t

p*=t

template<typename K, typename KK>
void multScalarThenAssign(Vector<K> &v, const KK &x)
void multScalarThenAssign(Vector<real_t> &v, const complex_t &c)
template<typename T, typename V, typename R>
void multVectorFactMatrix(const LargeMatrix<T> &mat, const std::vector<V> &vec, std::vector<R> &res)

product with factorized matrix A=LU, or A=LDLt or A =LDL* no permutation: X*L*U = (Ut*Lt*Xt)t row permutation (PA=LU) : X*inv(P)*L*U = Ut*Lt*inv(P)t*Xt = Ut*Lt*P*Xt col permutation (AQ=LU) : X*L*U*inv(Q) = inv(Q)t*Ut*Lt*Xt = Q*Ut*Lt*Xt row and col permutation (PAQ=LU) : X*inv(P)*L*U*inv(Q) = inv(Q)t*Ut*Lt*inv(P)t*Xt = Q*Ut*Lt*P*Xt called by multMatrixVector

void multVectorMatrix(const LargeMatrix<complex_t> &mat, const std::vector<real_t> &vec, std::vector<complex_t> &res)
void multVectorMatrix(const LargeMatrix<Matrix<complex_t>> &mat, const std::vector<Vector<real_t>> &vec, std::vector<Vector<complex_t>> &res)
void multVectorMatrix(const LargeMatrix<Matrix<real_t>> &mat, const std::vector<Vector<complex_t>> &vec, std::vector<Vector<complex_t>> &res)
template<typename T>
void multVectorMatrix(const LargeMatrix<Matrix<T>> &mat, const std::vector<Vector<T>> &vec, std::vector<Vector<T>> &res)
void multVectorMatrix(const LargeMatrix<real_t> &mat, const std::vector<complex_t> &vec, std::vector<complex_t> &res)
template<typename T>
void multVectorMatrix(const LargeMatrix<T> &mat, const std::vector<T> &vec, std::vector<T> &res)
template<typename T, typename V, typename R>
void multVectorMatrix(const LargeMatrix<T> &mat, V *vp, R *rp)

templated vec<V> * mat<T> (pointer form)

void multVectorMatrix(const MatrixEntry&, const VectorEntry&, VectorEntry&)

vector * matrix

void multVectorMatrix(const std::vector<complex_t> &vec, const LargeMatrix<real_t> &mat, std::vector<complex_t> &res)
void multVectorMatrix(const std::vector<real_t> &vec, const LargeMatrix<complex_t> &mat, std::vector<complex_t> &res)
template<typename T>
void multVectorMatrix(const std::vector<T> &vec, const LargeMatrix<T> &mat, std::vector<T> &res)
void multVectorMatrix(const std::vector<Vector<complex_t>> &vec, const LargeMatrix<Matrix<real_t>> &mat, std::vector<Vector<complex_t>> &res)
void multVectorMatrix(const std::vector<Vector<real_t>> &vec, const LargeMatrix<Matrix<complex_t>> &mat, std::vector<Vector<complex_t>> &res)
template<typename T>
void multVectorMatrix(const std::vector<Vector<T>> &vec, const LargeMatrix<Matrix<T>> &mat, std::vector<Vector<T>> &res)
TermVector &multVectorMatrix(const TermMatrix&, const TermVector&, TermVector&)

product TermVector * TermMatrix

TermVector &multVectorMatrix(const TermVector&, const TermMatrix&, TermVector&)

product TermVector * TermMatrix

TermVector multVectorMatrix(const TermVector &X, const SymbolicTermMatrix &S)
template<typename K>
void multVectorMatrix(const Vector<K> &v, const Matrix<K> &m, Vector<K> &mv)
void multVectorMatrix(const VectorEntry&, const MatrixEntry&, VectorEntry&)

vector * matrix

template<typename T, typename V, typename R>
void multVectorMatrix(V *vp, const LargeMatrix<T> &mat, R *rp)

templated vec<V> * mat<T> (pointer form)

OperatorOnUnknown &nabla(const Unknown &un)
OperatorOnKernel &nabla_x(const Kernel&)

grad_x(k)

OperatorOnKernel &nabla_x(OperatorOnKernel&)

grad_x(opk)

OperatorOnKernel &nabla_y(const Kernel&)

grad_y(k)

OperatorOnKernel &nabla_y(OperatorOnKernel&)

grad_y(opk)

OperatorOnUnknown &nablaG(const Unknown &un, const complex_t &ax, const complex_t &ay, const complex_t &az, const complex_t &at)
OperatorOnUnknown &nablaS(const Unknown &un)
int nbPar(const ITPARENTS &itpar)
number_t nbSubDomainsIfScalar(const std::vector<string_t> &sn, number_t nbSubDomains)
number_t nbSubDomainsIfScalar(string_t sn, number_t nbSubDomains)
OperatorOnFunction &ncross(const Function&)

n^f

OperatorOnUnknown &ncross(const Unknown &un)
OperatorOnFunction &ncross(OperatorOnFunction&)

n^opf

OperatorOnKernel &ncross_x(const Kernel&)

nx^k

OperatorOnKernel &ncross_x(OperatorOnKernel&)

nx^opk

OperatorOnKernel &ncross_y(const Kernel&)

ny^k

OperatorOnKernel &ncross_y(OperatorOnKernel&)

ny^opk

OperatorOnUnknown &ncrosscurl(const Unknown &un)
OperatorOnKernel &ncrosscurl_x(const Kernel&)

nx^curl_x(k)

OperatorOnKernel &ncrosscurl_x(OperatorOnKernel&)

nx^curl_x(opk)

OperatorOnKernel &ncrosscurl_y(const Kernel&)

ny^curl_y(k)

OperatorOnKernel &ncrosscurl_y(OperatorOnKernel&)

ny^curl_y(opk)

OperatorOnUnknown &ncrossgrad(const Unknown &un)
OperatorOnFunction &ncrossncross(const Function&)

n^(n^f)

OperatorOnUnknown &ncrossncross(const Unknown &un)
OperatorOnFunction &ncrossncross(OperatorOnFunction&)

n^(n^opf)

OperatorOnKernel &ncrossncross_x(const Kernel&)

nx^nx^k

OperatorOnKernel &ncrossncross_x(OperatorOnKernel&)

nx^nx^opk

OperatorOnKernel &ncrossncross_y(const Kernel&)

ny^ny^k

OperatorOnKernel &ncrossncross_y(OperatorOnKernel&)

ny^ny^opk

OperatorOnUnknown &ncrossndot(const Unknown&)
OperatorOnFunction &ncrossndot(Function&)

(n^n)|f

OperatorOnFunction &ncrossndot(OperatorOnFunction&)

(n^n)|opf

OperatorOnFunction &ncrossntimes(const Function &f)
OperatorOnUnknown &ncrossntimes(const Unknown &un)
OperatorOnFunction &ncrossntimes(Function&)

(n^n)*f

OperatorOnFunction &ncrossntimes(OperatorOnFunction&)

(n^n)*opf

OperatorOnUnknown &ncrossrot(const Unknown &un)
OperatorOnKernel &ncrossrot_x(const Kernel&)

nx^curl_x(k)

OperatorOnKernel &ncrossrot_x(OperatorOnKernel&)

nx^curl_x(opk)

OperatorOnKernel &ncrossrot_y(const Kernel&)

ny^curl_y(k)

OperatorOnKernel &ncrossrot_y(OperatorOnKernel&)

ny^curl_y(opk)

OperatorOnUnknown &ndiv(const Unknown &un)
OperatorOnKernel &ndiv_x(const Kernel&)

nx*div_x(k)

OperatorOnKernel &ndiv_x(OperatorOnKernel&)

nx*div_x(opk)

OperatorOnKernel &ndiv_y(const Kernel&)

ny*div_y(k)

OperatorOnKernel &ndiv_y(OperatorOnKernel&)

ny*div_y(opk)

OperatorOnFunction &ndot(const Function&)

n|f

OperatorOnUnknown &ndot(const Unknown &un)
OperatorOnFunction &ndot(OperatorOnFunction&)

n|opf

OperatorOnKernel &ndot_x(const Kernel&)

nx|k

OperatorOnKernel &ndot_x(OperatorOnKernel&)

nx|opk

OperatorOnKernel &ndot_y(const Kernel&)

ny|k

OperatorOnKernel &ndot_y(OperatorOnKernel&)

ny|opk

OperatorOnUnknown &ndotgrad(const Unknown &un)
OperatorOnKernel &ndotgrad_x(const Kernel&)

nx|grad_x(k)

OperatorOnKernel &ndotgrad_x(OperatorOnKernel&)

nx|grad_x(opk)

OperatorOnKernel &ndotgrad_y(const Kernel&)

ny|grad_y(k)

OperatorOnKernel &ndotgrad_y(OperatorOnKernel&)

ny|grad_y(opk)

template LargeMatrix< complex_t > * newSkyline (const LargeMatrix< complex_t > *mat_p)
template LargeMatrix< real_t > * newSkyline (const LargeMatrix< real_t > *mat_p)
template<class M_>
M_ *newSkyline(const M_ *mat_p)

This function allocates a new matrix, equal to the input matrix but with a skyline storage.

Create a new matrix (especially a LargeMatrix) with a skyline storage.

The new matrix can then be factorized using one of the internal factorization algorithms available in XLiFE++, such as LDLt, LDL* or LU.

template<typename T>
real_t newton(T (*f)(const T&), T (*fp)(const T&), T &x0, number_t niter = 100, real_t tol = theTolerance)
number_t nodesDim(const Geometry &g)
void noEvenDegreeRule(int degree, const string_t &name, ShapeType sh)

warning message

std::pair<number_t, number_t> nonSeparatingEdge(const std::vector<Point> &p)

determines one edge of the polygon defined by its list of vertices that do not separate the polygon

determines an edge of a polygon so that the whole polygon is on the same side

inline real_t norm(const complex_t &v)
inline real_t norm(const real_t &v)

norm of scalars

template<typename T>
real_t norm(const std::vector<T> &v)

norm of vector

real_t norm(const TermVector &tv, number_t l = 2)

vector norm

real_t norm(const VectorEntry&, number_t l = 2)

norm of Vector entry (default l2)

real_t norm1(const SuTermVector&)

l1 vector SuTermVector norm

real_t norm1(const TermVector &vt)

l1 TermVector norm

template<typename T>
real_t norm1(const Vector<T> &v)
real_t norm1(const VectorEntry&)

l1 vector VectorEntry norm

inline real_t norm2(const complex_t&)
template<typename T>
inline real_t norm2(const LargeMatrix<T> &A)
real_t norm2(const Matrix<complex_t> &m)
real_t norm2(const Matrix<Matrix<complex_t>> &m)
real_t norm2(const Matrix<Matrix<real_t>> &m)
real_t norm2(const Matrix<real_t> &m)

specialization of norm2

real_t norm2(const Point&)

returns the square distance between 2 points

inline real_t norm2(const real_t&)
real_t norm2(const SuTermVector&)

l2 vector SuTermVector norm (quadratic norm)

inline real_t norm2(const TermMatrix &A)
real_t norm2(const TermVector &vt)

l2 TermVector norm (quadratic norm)

template<typename T>
real_t norm2(const Vector<T> &v)

norm of Vector, extern forms

real_t norm2(const VectorEntry&)

l2 vector VectorEntry (quadratic norm)

inline Vector<real_t> normal_Piecewise(const Point &pt, Parameters &pars, DiffOpType d = _id)

extern parametrization call

real_t normalBoxMuller(real_t mu = 0., real_t sigma = 1.)

normal distribution (mu,sigma) using Box Muller method (using rand())

void normalDistribution(complex_t *mat, number_t n = 1, number_t m = 1)

compute a complex Gaussian matrix normal distribution (0,1) (using <random> if C11)

void normalDistribution(complex_t *mat, real_t mu, real_t sigma, number_t n = 1, number_t m = 1)

compute a complex Gaussian matrix normal distribution (mu,sigma) (using <random> if C11)

template<typename T>
std::vector<T> normalDistribution(number_t n, number_t m, real_t mu = 0., real_t sigma = 1.)
template<typename T>
std::vector<T> normalDistribution(number_t n, real_t mu = 0., real_t sigma = 1.)
void normalDistribution(real_t *mat, number_t n = 1, number_t m = 1)

compute a Gaussian matrix normal distribution (0,1) (using <random> if C11)

void normalDistribution(real_t *mat, real_t mu, real_t sigma, number_t n = 1, number_t m = 1)

compute a Gaussian matrix normal distribution (mu,sigma) (using <random> if C11)

real_t normalDistribution(real_t mu = 0., real_t sigma = 1., GaussianGenerator gg = _MarsagliaGenerator)

return a sample from normal distribution (mu,sigma) (using <random> if C11)

template<typename T>
void normalDistribution(std::vector<T> &mat, number_t n, number_t m, real_t mu = 0., real_t sigma = 1.)
template<typename T>
void normalDistribution(std::vector<T> &v, real_t mu = 0., real_t sigma = 1.)
void normalDistributionC(complex_t *mat, GaussianGenerator gg, number_t n = 1, number_t m = 1)

compute a complex Gaussian matrix normal distribution (0,1) (using rand())

void normalDistributionC(complex_t *mat, number_t n = 1, number_t m = 1)

compute a complex Gaussian matrix normal distribution (0,1) (using rand())

void normalDistributionC(complex_t *mat, real_t mu, real_t sigma, GaussianGenerator gg, number_t n = 1, number_t m = 1)

compute a complex Gaussian matrix normal distribution (mu,sigma) (using rand())

void normalDistributionC(complex_t *mat, real_t mu, real_t sigma, number_t n = 1, number_t m = 1)

compute a complex Gaussian matrix normal distribution (mu,sigma) (using rand())

void normalDistributionC(real_t *mat, GaussianGenerator gg, number_t n = 1, number_t m = 1)

compute a Gaussian matrix normal distribution (0,1) (using rand())

void normalDistributionC(real_t *mat, number_t n = 1, number_t m = 1)

compute a Gaussian matrix normal distribution (0,1) (using rand())

void normalDistributionC(real_t *mat, real_t mu, real_t sigma, GaussianGenerator gg, number_t n = 1, number_t m = 1)

compute a Gaussian matrix normal distribution (mu,sigma) (using rand())

void normalDistributionC(real_t *mat, real_t mu, real_t sigma, number_t n = 1, number_t m = 1)

compute a Gaussian matrix normal distribution (mu,sigma) (using rand())

real_t normalDistributionC(real_t mu = 0., real_t sigma = 1., GaussianGenerator gg = _MarsagliaGenerator)

return a sample from normal distribution (mu,sigma) (using rand())

template<typename T>
MatrixEigenDense<T> normalizeEigenVectors(const MatrixEigenDense<T> &eigVecs)
double normalMarsaglia(real_t mu = 0., real_t sigma = 1.)

normal distribution (mu,sigma) using Marsaglia method (using rand())

TermVector normalsOn(GeomDomain &dom, const Unknown &u)

compute normals of a side domain using interpolation given by an unknown

inline Vector<real_t> &normalVectorFromParameters(const Parameters &pa)

extract normal vector from Parameters

inline real_t norminfty(const complex_t &z)
template<typename T>
inline real_t norminfty(const LargeMatrix<T> &A)
real_t norminfty(const Matrix<complex_t> &m)
real_t norminfty(const Matrix<Matrix<complex_t>> &m)
real_t norminfty(const Matrix<Matrix<real_t>> &m)
real_t norminfty(const Matrix<real_t> &m)

specialization of infinite norm

inline real_t norminfty(const real_t &r)
real_t norminfty(const SuTermVector&)

l_infinite SuTermVector norm (sup norm)

inline real_t norminfty(const TermMatrix &A)
real_t norminfty(const TermVector &vt)

l_infinite TermVector norm (sup norm)

template<typename T>
real_t norminfty(const Vector<T> &v)
real_t norminfty(const VectorEntry&)

l_infinite VectorEntry (sup norm)

OperatorOnFunction &ntimes(const Function&)

n*f

OperatorOnFunction &ntimes(OperatorOnFunction&)

n*opf

OperatorOnKernel &ntimes_x(const Kernel&)

nx*k

OperatorOnKernel &ntimes_x(OperatorOnKernel &opk)

nx*opk

OperatorOnKernel &ntimes_y(const Kernel&)

ny*k

OperatorOnKernel &ntimes_y(OperatorOnKernel &opk)

ny*opk

OperatorOnUnknown &ntimesndot(const Unknown &un)
template<class ST_>
const vector<number_t> numberingConversion(const number_t order)

The following function returns a vector giving the correspondence between the two numberings of the points of the Lagrange mesh of order k over the reference element (triangle or quadrangle).

The following function returns a vector giving the correspondence between the two numberings of the points of the Lagrange mesh of order k over the reference element (tetrahedron or hexahedron).

Provided V is the returned vector, if i denotes the rank of a point in XLiFE++, then the corresponding point is V[i] in class subdivision::TriangleMesh or subdivision::QuadrangleMesh, referred to as xxxMesh in the following.

Provided V is the returned vector, if i denotes the rank of a point in XLiFE++ then the corresponding point is V[i] in class subdivision::TetrahedronMesh or subdivision::HexahedronMesh, referred to as xxxMesh in the following.

number_t numberOfCols(const complex_t &v)
template<typename T>
number_t numberOfCols(const Matrix<T> &m)
number_t numberOfCols(const real_t &v)
number_t numberOfRows(const complex_t &v)
template<typename T>
number_t numberOfRows(const Matrix<T> &m)
number_t numberOfRows(const real_t &v)
number_t numberOfThreads(int n)

manage the number of threads in OpenMP if n==0 set to the maximum of number of threads if n >0 set the number of threads to n if n==-1 return the number of threads (default) if omp is not available, always return 1

if omp is available, set or get the number of threads (default)

inline int_t numToDim(number_t n, string_t loc = "?")
inline int_t numToInt(number_t n, string_t loc = "?")
OperatorOnUnknown &nx(const Unknown &un)
OperatorOnKernel &nxcrossny_cross(const Kernel&)

(nx^ny)^k

OperatorOnKernel &nxcrossny_cross(OperatorOnKernel&)

(nx^ny)^opk

Parameters:

opk – (nx.ny).opk

OperatorOnKernel &nxcrossny_dot(const Kernel&)

(nx^ny).k

OperatorOnKernel &nxcrossny_dot(OperatorOnKernel&)

(nx^ny).opk

Parameters:

opk – (nx.ny).opk

OperatorOnKernel &nxdotny_times(const Kernel&)

(nx.ny)*k

OperatorOnKernel &nxdotny_times(OperatorOnKernel&)

(nx.ny)*opk

Parameters:

opk – (nx.ny)*opk

OperatorOnKernel &nycrossnx_cross(const Kernel&)

(ny^ny)^k

OperatorOnKernel &nycrossnx_cross(OperatorOnKernel&)

(ny^nx)^opk

Parameters:

opk – (nx.ny).opk

OperatorOnKernel &nycrossnx_dot(const Kernel&)

(ny^nx).k

OperatorOnKernel &nycrossnx_dot(OperatorOnKernel&)

(ny^nx).opk

Parameters:

opk – (nx.ny).opk

template<typename T>
std::pair<Vector<real_t>, Vector<T>> ode45(T &(*f)(real_t, const T &y, T &fty), real_t a, real_t b, real_t dt, const T &y0, number_t nbt, real_t mins, real_t maxs, real_t prec = 1.E-6)
template<typename T>
std::pair<Vector<real_t>, Vector<T>> ode45(T &(*f)(real_t, const T &y, T &fty), real_t a, real_t b, real_t dt, const T &y0, real_t prec = 1.E-6)
EssentialCondition on(GeomDomain&, const EssentialCondition&)

set domain to a Essential condition

string_t oneOfSideNames(const std::vector<string_t> &sn, int i)
string_t oneOfSideNames(const string_t &sn, int i)
string_t oneOfSideNamesIfVector(const std::vector<string_t> &sn, int i)
string_t oneOfSideNamesIfVector(const string_t &sn, int i)
inline void openCrack(Geometry &g1, Geometry &g2, Geometry &g3, Geometry &g4, Geometry &g5, Geometry &g6, Geometry &g7, string_t domNameToOpen)

user shortcut to crack 7 geometries

inline void openCrack(Geometry &g1, Geometry &g2, Geometry &g3, Geometry &g4, Geometry &g5, Geometry &g6, string_t domNameToOpen)

user shortcut to crack 6 geometries

inline void openCrack(Geometry &g1, Geometry &g2, Geometry &g3, Geometry &g4, Geometry &g5, string_t domNameToOpen)

user shortcut to crack 5 geometries

inline void openCrack(Geometry &g1, Geometry &g2, Geometry &g3, Geometry &g4, string_t domNameToOpen)

user shortcut to crack 4 geometries

inline void openCrack(Geometry &g1, Geometry &g2, Geometry &g3, string_t domNameToOpen)

user shortcut to crack 3 geometries

inline void openCrack(Geometry &g1, Geometry &g2, string_t domNameToOpen)

user shortcut to crack 2 geometries

inline void openCrack(Geometry &g1, string_t domNameToOpen)

user shortcut to crack one geometry

inline SymbolicFunction &operator!(const SymbolicFunction &f)
inline SymbolicFunction &operator!=(const complex_t &c, const SymbolicFunction &f)
inline bool operator!=(const DifferentialOperator &d1, const DifferentialOperator &d2)
bool operator!=(const DofComponent&, const DofComponent&)

diffference

bool operator!=(const DomUnkDop&, const DomUnkDop&)

difference

bool operator!=(const Function&, const Function&)

compare functions (same fun and params pointers)

template<typename K>
bool operator!=(const Matrix<K> &a, const Matrix<K> &b)

matrix comparison (element by element)

template<typename K>
bool operator!=(const MonomialT<K> &m1, const MonomialT<K> &m2)
bool operator!=(const Operand&, const Operand&)

compare Operands

bool operator!=(const OperatorOnFunction&, const OperatorOnFunction&)

different operator on function

bool operator!=(const OperatorOnKernel&, const OperatorOnKernel&)

different operator on kernel

bool operator!=(const OperatorOnUnknown&, const OperatorOnUnknown&)

compare OperatorOnUnknown (same unknowns, same diff operators, same functions …)

bool operator!=(const Point&, const Point&)

not equality of two points

inline SymbolicFunction &operator!=(const real_t &r, const SymbolicFunction &f)
template<typename T, template<class> class OP, class CP, template<class> class KP, template<class> class SP, template<class> class CNP>
inline bool operator!=(const SmartPtr<T, OP, CP, KP, SP, CNP> &lhs, SmartPointerNullType rhs)
template<typename T, template<class> class OP, class CP, template<class> class KP, template<class> class SP, template<class> class CNP, typename U>
inline bool operator!=(const SmartPtr<T, OP, CP, KP, SP, CNP> &lhs, U *rhs)
template<typename K>
bool operator!=(const SparseMatrix<K> &a, const SparseMatrix<K> &b)

matrix comparison (element by element)

inline SymbolicFunction &operator!=(const SymbolicFunction &f, const complex_t &c)
inline SymbolicFunction &operator!=(const SymbolicFunction &f, const real_t &r)
inline SymbolicFunction &operator!=(const SymbolicFunction &f1, const SymbolicFunction &f2)
template<class K>
bool operator!=(const Triplet<K> &t1, const Triplet<K> &t2)
bool operator!=(const Value&, const Value&)

compare values

template<typename T, template<class> class OP, class CP, template<class> class KP, template<class> class SP, template<class> class CNP>
inline bool operator!=(SmartPointerNullType lhs, const SmartPtr<T, OP, CP, KP, SP, CNP> &rhs)
template<typename T, template<class> class OP, class CP, template<class> class KP, template<class> class SP, template<class> class CNP, typename U>
inline bool operator!=(U *lhs, const SmartPtr<T, OP, CP, KP, SP, CNP> &rhs)
template<typename T>
inline ComparisonFunction<T> operator!=(VarComparison, const T &a)
OperatorOnUnknown &operator%(const complex_t&, const Unknown&)

cu

OperatorOnUnknown &operator%(const complex_t &val, OperatorOnUnknown &opu)
OperatorOnUnknown &operator%(const Function&, const Unknown&)

Fu.

OperatorOnUnknown &operator%(const Function&, OperatorOnUnknown&)

contracted product syntax FOp(u)

KernelOperatorOnUnknowns operator%(const Kernel&, const OperatorOnUnknown&)

ker % opv

KernelOperatorOnUnknowns operator%(const Kernel&, const Unknown&)

ker % v

KernelOperatorOnTermVector operator%(const Kernel &ker, const TermVector &tv)

ker % tv

KernelOperatorOnTermVectorAndUnknown operator%(const KernelOperatorOnTermVector &koptv, const OperatorOnUnknown &opv)
KernelOperatorOnTermVectorAndUnknown operator%(const KernelOperatorOnTermVector &koptv, const Unknown &v)
KernelOperatorOnTermVectorAndUnknown operator%(const KernelOperatorOnTermVectorAndUnknown&, const OperatorOnUnknown&)
KernelOperatorOnUnknowns operator%(const KernelOperatorOnUnknowns&, const OperatorOnUnknown&)

opker % opv

KernelOperatorOnUnknowns operator%(const KernelOperatorOnUnknowns&, const Unknown&)

opker % v

LcOperatorOnUnknowns operator%(const LcOperatorOnUnknown &lcopu, const LcOperatorOnUnknown &lcopv)
LcOperatorOnUnknowns operator%(const LcOperatorOnUnknown &lcopu, const OperatorOnUnknown &opv)
LcOperatorOnUnknowns operator%(const LcOperatorOnUnknown &lcopu, const Unknown &v)
template<typename T>
OperatorOnUnknown &operator%(const Matrix<T> &val, const Unknown &un)

Matrixu.

template<typename T>
OperatorOnUnknown &operator%(const Matrix<T> &val, OperatorOnUnknown &opu)
OperatorOnUnknown &operator%(const OperatorOnFunction&, const Unknown&)

op(F)u

OperatorOnUnknown &operator%(const OperatorOnFunction&, OperatorOnUnknown&)

contracted product syntax op(F)FOp(u)

KernelOperatorOnUnknowns operator%(const OperatorOnKernel&, const OperatorOnUnknown&)

opker % opv

KernelOperatorOnTermVector operator%(const OperatorOnKernel &opk, const TermVector &tv)

opker % tv

KernelOperatorOnUnknowns operator%(const OperatorOnUnknown&, const Kernel&)

opu % ker

KernelOperatorOnTermVectorAndUnknown operator%(const OperatorOnUnknown&, const KernelOperatorOnTermVectorAndUnknown&)
KernelOperatorOnUnknowns operator%(const OperatorOnUnknown&, const KernelOperatorOnUnknowns&)

opu % opker

KernelOperatorOnUnknowns operator%(const OperatorOnUnknown&, const OperatorOnKernel&)

opu % opker

LcOperatorOnUnknowns operator%(const OperatorOnUnknown &opu, const LcOperatorOnUnknown &lcopv)
KernelOperatorOnTermVectorAndUnknown operator%(const OperatorOnUnknown &opv, const KernelOperatorOnTermVector &koptv)
OperatorOnUnknown &operator%(const real_t&, const Unknown&)

ru

OperatorOnUnknown &operator%(const real_t &val, OperatorOnUnknown &opu)
KernelOperatorOnTermVector operator%(const TermVector &tv, const Kernel &ker)

tv % ker

KernelOperatorOnTermVector operator%(const TermVector &tv, const OperatorOnKernel &opker)

tv % opker

OperatorOnUnknown &operator%(const TermVector &tv, const TestFunction &un)

tvu

OperatorOnUnknown &operator%(const TermVector &tv, const Unknown &un)

tvu

OperatorOnUnknown &operator%(const TermVector &tv, OperatorOnUnknown &opu)

tvopu

OperatorOnUnknown &operator%(const TestFunction &un, const TermVector &tv)

utv

OperatorOnUnknown &operator%(const Unknown&, const complex_t&)

uc

OperatorOnUnknown &operator%(const Unknown&, const Function&)

uF

KernelOperatorOnUnknowns operator%(const Unknown&, const Kernel&)

u % ker

KernelOperatorOnUnknowns operator%(const Unknown&, const KernelOperatorOnUnknowns&)

u % opker

OperatorOnUnknown &operator%(const Unknown&, const OperatorOnFunction&)

uop(F)

OperatorOnUnknown &operator%(const Unknown&, const real_t&)

ur

OperatorOnUnknown &operator%(const Unknown&, const Value&)

uval

LcOperatorOnUnknowns operator%(const Unknown &u, const LcOperatorOnUnknown &lcopv)
template<typename T>
OperatorOnUnknown &operator%(const Unknown &un, const Matrix<T> &val)

uMatrix

OperatorOnUnknown &operator%(const Unknown &un, const TermVector &tv)

utv

template<typename T>
OperatorOnUnknown &operator%(const Unknown &un, const Vector<T> &val)

uVector

template<typename T> KernelOperatorOnUnknowns operator% (const Unknown &un, T(fun)(const Point &, const Point &, Parameters &))

u % function(Point,Parameters)

template<typename T> OperatorOnUnknown & operator% (const Unknown &un, T(fun)(const Point &, Parameters &))

u % function(Point,Parameters)

template<typename T> KernelOperatorOnUnknowns operator% (const Unknown &un, T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &))

u % function(Vector<Point>,Parameters)

template<typename T> OperatorOnUnknown & operator% (const Unknown &un, T(fun)(const Vector< Point > &, Parameters &))

u % function(Vector<Point>,Parameters)

KernelOperatorOnTermVectorAndUnknown operator%(const Unknown &v, const KernelOperatorOnTermVector &koptv)
OperatorOnUnknown &operator%(const Value&, const Unknown&)

valu

OperatorOnUnknown &operator%(const Value&, OperatorOnUnknown&)

contracted product syntax VOp(u)

template<typename T>
OperatorOnUnknown &operator%(const Vector<T> &val, const Unknown &un)

Vectoru.

template<typename T>
OperatorOnUnknown &operator%(const Vector<T> &val, OperatorOnUnknown &opu)
OperatorOnUnknown &operator%(OperatorOnUnknown&, const Function&)

contracted product syntax Op(u)F

OperatorOnUnknown &operator%(OperatorOnUnknown&, const OperatorOnFunction&)

contracted product syntax Op(u)op(F)

OperatorOnUnknown &operator%(OperatorOnUnknown&, const Value&)

contracted product syntax Op(u)V

OperatorOnUnknowns operator%(OperatorOnUnknown&, OperatorOnUnknown&)

opu % opv

OperatorOnUnknowns operator%(OperatorOnUnknown&, Unknown&)

opu % v

OperatorOnUnknown &operator%(OperatorOnUnknown &opu, const complex_t &val)
template<typename T>
OperatorOnUnknown &operator%(OperatorOnUnknown &opu, const Matrix<T> &val)
OperatorOnUnknown &operator%(OperatorOnUnknown &opu, const real_t &val)
OperatorOnUnknown &operator%(OperatorOnUnknown &opu, const TermVector &tv)

oputv

template<typename T>
OperatorOnUnknown &operator%(OperatorOnUnknown &opu, const Vector<T> &val)
template<typename T> OperatorOnUnknown & operator% (OperatorOnUnknown &opu, T(fun)(const Point &, Parameters &))

opu % function(Point,Parameters)

template<typename T> OperatorOnUnknown & operator% (OperatorOnUnknown &opu, T(fun)(const Vector< Point > &, Parameters &))

opu % function(Vector<Point>,Parameters)

template<typename T> KernelOperatorOnUnknowns operator% (T(fun)(const Point &, const Point &, Parameters &), const Unknown &un)

function(Point,Parameters) % u

template<typename T> OperatorOnUnknown & operator% (T(fun)(const Point &, Parameters &), const Unknown &un)

function(Point,Parameters) % u

template<typename T> OperatorOnUnknown & operator% (T(fun)(const Point &, Parameters &), OperatorOnUnknown &opu)

function(Point,Parameters) % opu

template<typename T> KernelOperatorOnUnknowns operator% (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &), const Unknown &un)

function(Vector<Point>,Parameters) % u

template<typename T> OperatorOnUnknown & operator% (T(fun)(const Vector< Point > &, Parameters &), const Unknown &un)

function(Vector<Point>,Parameters) % u

template<typename T> OperatorOnUnknown & operator% (T(fun)(const Vector< Point > &, Parameters &), OperatorOnUnknown &opu)

function(Vector<Point>,Parameters) % opu

OperatorOnUnknowns operator%(Unknown&, OperatorOnUnknown&)

u % opv

OperatorOnUnknowns operator%(Unknown&, Unknown&)

u % v

EssentialConditions operator&(const EssentialCondition&, const EssentialCondition&)

bcs = ec & ec

EssentialConditions operator&(const EssentialCondition&, const EssentialConditions&)

bcs = ec & ecs

EssentialConditions operator&(const EssentialConditions&, const EssentialCondition&)

bcs = ecs & ec

EssentialConditions operator&(const EssentialConditions&, const EssentialConditions&)

bcs = ecs & ecs

template<typename T>
ComparisonFunction<T> operator&&(const ComparisonFunction<T> &cof1, const ComparisonFunction<T> &cof2)
inline SymbolicFunction &operator&&(const SymbolicFunction &f1, const SymbolicFunction &f2)
BasicBilinearForm &operator*(const BasicBilinearForm&, const BasicBilinearForm&)

compose two basic bilinear forms

BilinearForm operator*(const BilinearForm&, const BilinearForm&)

compose two bilinear forms, have to be basic linear forms

BilinearForm operator*(const BilinearForm&, const complex_t&)

product(right) by a complex scalar

BilinearForm operator*(const BilinearForm&, const int&)

product(right) by an integer scalar

BilinearForm operator*(const BilinearForm&, const int_t&)

product(right) by an integer scalar

BilinearForm operator*(const BilinearForm&, const number_t&)

product(right) by an integer scalar

BilinearForm operator*(const BilinearForm&, const real_t&)

product(right) by a real scalar

BilinearForm operator*(const complex_t&, const BilinearForm&)

product(left) by a complex scalar

LinearForm operator*(const complex_t&, const LinearForm&)

product(left) by a scalar

SuBilinearForm operator*(const complex_t&, const SuBilinearForm&)

multiply(left) by a scalar

OperatorOnUnknown &operator*(const complex_t&, const Unknown&)

c*u

Vector<Vector<complex_t>> operator*(const complex_t&, const Vector<Vector<complex_t>>&)

multiply complex scalar by complex vector “x * A”

LcKernelOperatorOnUnknowns operator*(const complex_t &a, const LcKernelOperatorOnUnknowns &lc)
LcOperatorOnUnknown operator*(const complex_t &a, const LcOperatorOnUnknown &lc)
LcOperatorOnUnknowns operator*(const complex_t &a, const LcOperatorOnUnknowns &lc)
SuLinearForm operator*(const complex_t &c, const SuLinearForm &sulf)

product(left) by a scalar

inline SymbolicFunction &operator*(const complex_t &c, const SymbolicFunction &f)
SymbolicTermMatrix &operator*(const complex_t &c, SymbolicTermMatrix &S)
Parameter operator*(const complex_t &v, const Parameter &p)

product complex and parameter

OperatorOnFunction &operator*(const complex_t &v, UnitaryVector n)

v*n same as f_v*n

OperatorOnUnknown &operator*(const complex_t &val, OperatorOnUnknown &opu)
Matrix<complex_t> operator*(const complex_t &x, const Matrix<real_t> &rA)

multiply real matrix by a complex value

complex x * real matrix A

Vector<complex_t> operator*(const complex_t &x, const Vector<real_t> &rA)

multiply real vector by complex scalar

multiply real vector by complex scalar “x * A”

complex_t operator*(const complex_t &z, const int i)
complex_t operator*(const complex_t &z, const int_t i)
complex_t operator*(const complex_t &z, const number_t n)
LargeMatrix<complex_t> operator*(const complex_t v, const LargeMatrix<real_t> &mat)
OperatorOnFunction &operator*(const Extension &e, const Function &f)

extension of Function

OperatorOnKernel &operator*(const Extension &e, const Kernel &k)

extension of Kernel

OperatorOnFunction &operator*(const Extension &e, OperatorOnFunction &opf)

extension of OperatorOnFunction

OperatorOnKernel &operator*(const Extension &e, OperatorOnKernel &opk)

extension of OperatorOnKernel

OperatorOnUnknown &operator*(const Function&, const Unknown&)

F*u.

OperatorOnUnknown &operator*(const Function&, OperatorOnUnknown&)

product syntax F*Op(u)

OperatorOnFunction &operator*(const Function&, UnitaryVector)

f*n same as timesn(f)/timesncrossn(f)

template<typename T, typename I>
Vector<T> operator*(const HMatrix<T, I> &h, const Vector<T> &x)

Hmatrix * Vector.

BilinearForm operator*(const int&, const BilinearForm&)

product(left) by an integer scalar

LinearForm operator*(const int&, const LinearForm&)

product(left) by a scalar

complex_t operator*(const int i, const complex_t &z)
Parameter operator*(const int v, const Parameter &p)

product int and parameter

BilinearForm operator*(const int_t&, const BilinearForm&)

product(left) by an integer scalar

LinearForm operator*(const int_t&, const LinearForm&)

product(left) by a scalar

complex_t operator*(const int_t i, const complex_t &z)
Parameter operator*(const int_t v, const Parameter &p)

product int_t and parameter

template<typename K>
PolynomialT<K> operator*(const K &k, const MonomialT<K> &m)
template<typename K>
PolynomialT<K> operator*(const K &k, const PolynomialT<K> &p)
template<typename K>
Vector<K> operator*(const K &x, const Vector<K> &a)

multiply vector by a scalar “x * A”

template<typename K>
Vector<Matrix<K>> operator*(const K &x, const Vector<Matrix<K>> &a)

scalar x * vector of matrix

KernelOperatorOnUnknowns operator*(const Kernel&, const OperatorOnUnknown&)

ker * opv

KernelOperatorOnUnknowns operator*(const Kernel&, const Unknown&)

ker * v

OperatorOnKernel &operator*(const Kernel&, UnitaryVector)

ker*n same as ntimes(ker)

KernelOperatorOnTermVector operator*(const Kernel &ker, const TermVector &tv)

ker * tv

KernelOperatorOnTermVectorAndUnknown operator*(const KernelOperatorOnTermVector &koptv, const OperatorOnUnknown &opv)
KernelOperatorOnTermVectorAndUnknown operator*(const KernelOperatorOnTermVector &koptv, const Unknown &v)
KernelOperatorOnTermVectorAndUnknown operator*(const KernelOperatorOnTermVectorAndUnknown&, const OperatorOnUnknown&)
KernelOperatorOnUnknowns operator*(const KernelOperatorOnUnknowns&, const OperatorOnUnknown&)

opker * opv

KernelOperatorOnUnknowns operator*(const KernelOperatorOnUnknowns&, const Unknown&)

opker * v

template<typename K, typename KK>
VectorEigenDense<K> operator*(const KK &k, const VectorEigenDense<K> &vec)
template<typename K, typename KK>
Matrix<K> operator*(const KK &x, const Matrix<K> &a)

scalar x * matrix A

template<typename K, typename KK>
SparseMatrix<K> operator*(const KK &x, const SparseMatrix<K> &a)

scalar x * matrix A

LargeMatrix<complex_t> operator*(const LargeMatrix<complex_t> &mA, const LargeMatrix<real_t> &mB)
LargeMatrix<complex_t> operator*(const LargeMatrix<complex_t> &mat, const real_t v)
std::vector<complex_t> operator*(const LargeMatrix<complex_t> &mat, const std::vector<real_t> &vec)
LargeMatrix<Matrix<complex_t>> operator*(const LargeMatrix<Matrix<complex_t>> &mA, const LargeMatrix<Matrix<real_t>> &mB)
std::vector<Vector<complex_t>> operator*(const LargeMatrix<Matrix<complex_t>> &mat, const std::vector<Vector<real_t>> &vec)
LargeMatrix<Matrix<complex_t>> operator*(const LargeMatrix<Matrix<real_t>> &mA, const LargeMatrix<Matrix<complex_t>> &mB)
std::vector<Vector<complex_t>> operator*(const LargeMatrix<Matrix<real_t>> &mat, const std::vector<Vector<complex_t>> &vec)
template<typename T>
std::vector<Vector<T>> operator*(const LargeMatrix<Matrix<T>> &mat, const std::vector<Vector<T>> &vec)
LargeMatrix<complex_t> operator*(const LargeMatrix<real_t> &mA, const LargeMatrix<complex_t> &mB)
LargeMatrix<complex_t> operator*(const LargeMatrix<real_t> &mat, const complex_t v)
std::vector<complex_t> operator*(const LargeMatrix<real_t> &mat, const std::vector<complex_t> &vec)
template<typename T>
LargeMatrix<T> operator*(const LargeMatrix<T> &mA, const LargeMatrix<T> &mB)
template<typename T>
std::vector<T> operator*(const LargeMatrix<T> &mat, const std::vector<T> &vec)
template<typename T>
LargeMatrix<T> operator*(const LargeMatrix<T> &mat, const T v)

Multiple a largeMatrix with a scalar.

LcKernelOperatorOnUnknowns operator*(const LcKernelOperatorOnUnknowns &lc, const complex_t &a)
LcKernelOperatorOnUnknowns operator*(const LcKernelOperatorOnUnknowns &lc, const real_t &a)
LcOperatorOnUnknown operator*(const LcOperatorOnUnknown &lc, const complex_t &a)
LcOperatorOnUnknown operator*(const LcOperatorOnUnknown &lc, const real_t &a)
LcOperatorOnUnknowns operator*(const LcOperatorOnUnknown &lcopu, const LcOperatorOnUnknown &lcopv)
LcOperatorOnUnknowns operator*(const LcOperatorOnUnknown &lcopu, const OperatorOnUnknown &opv)
LcOperatorOnUnknowns operator*(const LcOperatorOnUnknown &lcopu, const Unknown &v)
LcOperatorOnUnknowns operator*(const LcOperatorOnUnknowns &lc, const complex_t &a)
LcOperatorOnUnknowns operator*(const LcOperatorOnUnknowns &lc, const real_t &a)
TermVector operator*(const LcTerm<TermMatrix>&, const TermVector&)

LcTerm * TermVector.

template<typename TT, typename T>
LcTerm<TT> operator*(const LcTerm<TT> &lc, const T &v)
LinearForm operator*(const LinearForm&, const complex_t&)

product(right) by a scalar

LinearForm operator*(const LinearForm&, const int&)

product(right) by a scalar

LinearForm operator*(const LinearForm&, const int_t&)

product(right) by a scalar

LinearForm operator*(const LinearForm&, const number_t&)

product(right) by a scalar

LinearForm operator*(const LinearForm&, const real_t&)

product(right) by a scalar

template<typename T>
LowRankMatrix<T> operator*(const LowRankMatrix<T> &L1, const T &s)
template<typename T>
std::vector<T> operator*(const LowRankMatrix<T> &lrm, const std::vector<T> &x)
Matrix<complex_t> operator*(const Matrix<complex_t> &cA, const Matrix<real_t> &rB)

multiply complex matrix by a real matrix

complex matrix A x real matrix B

Vector<complex_t> operator*(const Matrix<complex_t> &cA, const Vector<real_t> &rV)

complex matrix * real vector

complex matrix x real vector

OperatorOnFunction &operator*(const Matrix<complex_t> &v, UnitaryVector n)

v*n same as f_v*n

template<typename K>
Matrix<K> operator*(const Matrix<K> &a, const K &x)

matrix A * scalar x

template<typename K>
Matrix<K> operator*(const Matrix<K> &a, const Matrix<K> &b)

matrix A * matrix B

template<typename K, typename V>
Vector<K> operator*(const Matrix<K> &m, const Vector<V> &v)

matrix x vector (template)

template<typename K>
PolynomialsBasisT<K> operator*(const Matrix<K> &mat, const PolynomialsBasisT<K> &ps)
template<typename K>
std::vector<PolynomialT<K>> operator*(const Matrix<K> &mat, const std::vector<PolynomialT<K>> &ps)

matrix * [p1,p2, …]

Matrix<complex_t> operator*(const Matrix<real_t> &rA, const complex_t &x)

multiply real matrix by a complex value

real matrix A * complex x

Matrix<complex_t> operator*(const Matrix<real_t> &rA, const Matrix<complex_t> &cB)

multiply real matrix by a complex matrix

real matrix A x complex matrix B

Vector<complex_t> operator*(const Matrix<real_t> &rA, const Vector<complex_t> &cV)

real matrix * complex vector

real matrix x complex vector

OperatorOnFunction &operator*(const Matrix<real_t> &v, UnitaryVector n)

v*n same as f_v*n

template<typename T>
OperatorOnUnknown &operator*(const Matrix<T> &val, const Unknown &un)

Matrix*u.

template<typename T>
OperatorOnUnknown &operator*(const Matrix<T> &val, OperatorOnUnknown &opu)
MatrixEntry operator*(const MatrixEntry&, const MatrixEntry&)

product of MatrixEntry

VectorEntry operator*(const MatrixEntry &mat, const VectorEntry &vec)

matrix * vector (consistent structure)

matrix * vector

template<typename K>
PolynomialT<K> operator*(const MonomialT<K> &m, const K &k)
template<typename K>
PolynomialT<K> operator*(const MonomialT<K> &m, const PolynomialT<K> &p)
template<typename K>
MonomialT<K> operator*(const MonomialT<K> &m1, const MonomialT<K> &m2)
BilinearForm operator*(const number_t&, const BilinearForm&)

product(left) by an integer scalar

LinearForm operator*(const number_t&, const LinearForm&)

product(left) by a scalar

complex_t operator*(const number_t n, const complex_t &z)
Parameter operator*(const number_t v, const Parameter &p)

product number_t and parameter

OperatorOnUnknown &operator*(const OperatorOnFunction&, const Unknown&)

op(F)*u

OperatorOnUnknown &operator*(const OperatorOnFunction&, OperatorOnUnknown&)

product syntax op(F)*Op(u)

KernelOperatorOnUnknowns operator*(const OperatorOnKernel&, const OperatorOnUnknown&)

opker * opv

KernelOperatorOnTermVector operator*(const OperatorOnKernel &opk, const TermVector &tv)

opker * tv

KernelOperatorOnUnknowns operator*(const OperatorOnUnknown&, const Kernel&)

opu * ker

KernelOperatorOnTermVectorAndUnknown operator*(const OperatorOnUnknown&, const KernelOperatorOnTermVectorAndUnknown&)
KernelOperatorOnUnknowns operator*(const OperatorOnUnknown&, const KernelOperatorOnUnknowns&)

opu * opker

KernelOperatorOnUnknowns operator*(const OperatorOnUnknown&, const OperatorOnKernel&)

opu * opker

LcOperatorOnUnknowns operator*(const OperatorOnUnknown &opu, const LcOperatorOnUnknown &lcopv)
KernelOperatorOnTermVectorAndUnknown operator*(const OperatorOnUnknown &opv, const KernelOperatorOnTermVector &koptv)
Parameter operator*(const Parameter &p, const complex_t &v)

product parameter and complex

Parameter operator*(const Parameter &p, const int v)

product parameter and int

Parameter operator*(const Parameter &p, const int_t v)

product parameter and int_t

Parameter operator*(const Parameter &p, const number_t v)

product parameter and number_t

Parameter operator*(const Parameter &p, const real_t v)

product parameter and real

Parameter operator*(const Parameter &p1, const Parameter &p2)

product of 2 parameters

Point operator*(const Point&, const real_t)

scale a point

template<typename K>
PolynomialBasisT<K> operator*(const PolynomialBasisT<K> &p, const PolynomialBasisT<K> &q)
template<typename K>
PolynomialsBasisT<K> operator*(const PolynomialBasisT<K> &pb, const std::vector<MonomialT<K>> &vp)
template<typename K>
PolynomialT<K> operator*(const PolynomialT<K> &p, const K &k)
template<typename K>
PolynomialT<K> operator*(const PolynomialT<K> &p, const MonomialT<K> &m)
template<typename K>
PolynomialT<K> operator*(const PolynomialT<K> &p1, const PolynomialT<K> &p2)
TermVector operator*(const Projector &P, const TermVector &X)

projection of a TermVector using *

BilinearForm operator*(const real_t&, const BilinearForm&)

product(left) by a real scalar

LinearForm operator*(const real_t&, const LinearForm&)

product(left) by a scalar

OperatorOnUnknown &operator*(const real_t&, const Unknown&)

r*u

LcKernelOperatorOnUnknowns operator*(const real_t &a, const LcKernelOperatorOnUnknowns &lc)
LcOperatorOnUnknown operator*(const real_t &a, const LcOperatorOnUnknown &lc)
LcOperatorOnUnknowns operator*(const real_t &a, const LcOperatorOnUnknowns &lc)
inline SymbolicFunction &operator*(const real_t &r, const SymbolicFunction &f)
OperatorOnFunction &operator*(const real_t &v, UnitaryVector n)

v*n same as f_v*n

OperatorOnUnknown &operator*(const real_t &val, OperatorOnUnknown &opu)
Vector<complex_t> operator*(const real_t &x, const Vector<complex_t> &cA)

multiply real vector by complex scalar

inline Vector<Matrix<complex_t>> operator*(const real_t &x, const Vector<Matrix<complex_t>> &a)

scalar x * vector of matrix

template<typename T>
inline Vector<Vector<T>> operator*(const real_t &x, const Vector<Vector<T>> &A)

multiply vector of vector<T> by a real “x * A”

LargeMatrix<complex_t> operator*(const real_t v, const LargeMatrix<complex_t> &mat)
Parameter operator*(const real_t v, const Parameter &p)

product real and parameter

Point operator*(const real_t, const Point&)

scale a point

template<typename K, typename KK>
SparseMatrix<K> operator*(const SparseMatrix<K> &a, const KK &x)

matrix A * scalar x

template<typename K, typename V>
Vector<K> operator*(const SparseMatrix<K> &m, const std::vector<V> &v)

matrix x vector (template)

std::vector<complex_t> operator*(const std::vector<complex_t> &vec, const LargeMatrix<real_t> &mat)
std::vector<complex_t> operator*(const std::vector<real_t> &vec, const LargeMatrix<complex_t> &mat)
template<typename T>
std::vector<T> operator*(const std::vector<T> &vec, const LargeMatrix<T> &mat)
template<typename T>
std::vector<T> operator*(const std::vector<T> &x, const LowRankMatrix<T> &lrm)
template<typename K, typename V>
Vector<K> operator*(const std::vector<V> &v, const SparseMatrix<K> &m)

vector x matrix (template)

std::vector<Vector<complex_t>> operator*(const std::vector<Vector<complex_t>> &vec, const LargeMatrix<Matrix<real_t>> &mat)
std::vector<Vector<complex_t>> operator*(const std::vector<Vector<real_t>> &vec, const LargeMatrix<Matrix<complex_t>> &mat)
template<typename T>
std::vector<Vector<T>> operator*(const std::vector<Vector<T>> &vec, const LargeMatrix<Matrix<T>> &mat)
SuBilinearForm operator*(const SuBilinearForm&, const complex_t&)

multiply(right) by a scalar

SuLinearForm operator*(const SuLinearForm &sulf, const complex_t &c)

product(right) by a scalar

SuTermMatrix operator*(const SuTermMatrix&, const SuTermMatrix&)

product SuTermMatrix * SuTermMatrix

SuTermVector operator*(const SuTermMatrix &sutM, const SuTermVector &sutV)

Product of a SuTermMatrix M and a SuTermVector V, the result is a SuTermVector R the columns dof indices of M, say (j1,j2, …jn), may be different from the dof indices of V say (k1,k2, … kp).

product SuTermMatrix * SuTermVector

The dof indices of result vector will be always the lines dof indices of the matrix, say (i1,i2, …im). It means that the product M_i,j * V_j is performed only for j=k.

  • when {k1,k2, … kp}={j1,j2, …jn} the product is performed using largematrix product

  • when {k1,k2, … kp} differs from {j1,j2, …jn}, the vector V is extended and reduced to {j1,j2, …jn} and the product is performed using largematrix product

inline SuTermVector operator*(const SuTermVector &s1, const SuTermVector &s2)
SuTermVector operator*(const SuTermVector &sutV, const SuTermMatrix &sutM)

Product of a SuTermVector V and a SuTermMatrix M, the result is a SuTermVector R the lines dof indices of M, say (i1,i2, …in), may be different from the dof indices of V say (k1,k2, … kp).

product SuTermVector * SuTermMatrix

The dof indices of result vector will be always the columns dof indices of the matrix, say (j1,j2, …jm). It means that the product V_i * M_i,j is performed only for i=k.

  • when {k1,k2, … kp}={i1,i2, …in} the product is performed using largematrix product

  • when {k1,k2, … kp} differs from {i1,i2, …in}, the vector V is extended and reduced to {i1,i2, …in} and the product is performed using largematrix product

exists only for particular storage type

inline SymbolicFunction &operator*(const SymbolicFunction &f, const complex_t &c)
inline SymbolicFunction &operator*(const SymbolicFunction &f, const real_t &r)
inline SymbolicFunction &operator*(const SymbolicFunction &f1, const SymbolicFunction &f2)
TermVector operator*(const SymbolicTermMatrix &S, const TermVector &X)
template<typename T>
LowRankMatrix<T> operator*(const T &s, const LowRankMatrix<T> &L1)
template<typename T>
LcTerm<TermMatrix> operator*(const T &t, const TermMatrix &tv)

product of TermMatrix by a real or a complex (template T)

template<typename T>
LcTerm<TermVector> operator*(const T &t, const TermVector &tv)
template<typename TT, typename T>
LcTerm<TT> operator*(const T &v, const LcTerm<TT> &lc)
template<typename T>
LargeMatrix<T> operator*(const T v, const LargeMatrix<T> &mat)

Multiple a largeMatrix with a scalar.

TermMatrix operator*(const TermMatrix&, const TermMatrix&)

product of TermMatrix

TermVector operator*(const TermMatrix&, const TermVector&)

product TermMatrix * TermVector

product of a TermMatrix A and a TermVector X There are 2 cases:

  • TermMatrix has a global representation, say scalar_entries_p !=nullptr or entries_p!=nullptr in that case the product is realized as a standard matrix/vector product Note that TermVector X has to have a global representation consistent with column numbering of TermMatrix if it not the case, global representation of X is computed

  • TermMatrix has a local representation, say scalar_entries_p =0 and entries_p=0 Assume that A has (v1,v2, …, vm) has row unknowns and (u1,u2, …, un) has column unknowns and X has (p1,p2, …, pq) unknowns where pi may belongs to {u1,u2, …, un} but it is not mandatory the result will be always a (v1,v2, …, vm)-TermVector. Only product of matrix block (vi,uj) with vector block pk=uj will be performed For instance: the product of a (u,v)-Termatrix M with a p-TermVector X is a zero v-TermVector: |Mvu 0vp| * [0u Xp]t = [0v] the product of a [(u,p),(v,q)]-Termatrix M with a p-TermVector X is a (v,q)-TermVector: |Mvu Mvp| |0u| |Mvp*Xp| | | | | = | | |Mqu Mqp| |Xp| |Mqp*Xp| Note that the zero blocks are never created; they are not indexed in the map TermVector::suTerms_ ! The real products are made with SuTermMatrix and SuTermVector

SymbolicTermMatrix &operator*(const TermMatrix &M, SymbolicTermMatrix &S)
template<typename T>
TermMatrix operator*(const TermMatrix &tM, const T &t)

product of TermMatrix by a real or a complex (template T)

template<typename T>
LcTerm<TermMatrix> operator*(const TermMatrix &tv, const T &t)

product of TermMatrix by a real or a complex (template T)

TermVector operator*(const TermVector&, const TermMatrix&)

product TermVector * TermMatrix

inline TermVector operator*(const TermVector &s1, const TermVector &s2)
KernelOperatorOnTermVector operator*(const TermVector &tv, const Kernel &ker)

tv * ker

KernelOperatorOnTermVector operator*(const TermVector &tv, const OperatorOnKernel &opker)

tv * opker

template<typename T>
LcTerm<TermVector> operator*(const TermVector &tv, const T &t)

product and division by a real or a complex (template T)

OperatorOnUnknown &operator*(const TermVector &tv, const TestFunction &un)

tv*u

OperatorOnUnknown &operator*(const TermVector &tv, const Unknown &un)

tv*u

OperatorOnUnknown &operator*(const TermVector &tv, OperatorOnUnknown &opu)

tv*opu

TermVector operator*(const TermVector &X, const SymbolicTermMatrix &S)
OperatorOnUnknown &operator*(const TestFunction &un, const TermVector &tv)

u*tv

Transformation operator*(const Transformation &t1, const Transformation &t2)

composition of transformations (general case)

OperatorOnUnknown &operator*(const Unknown&, const complex_t&)

u*r

OperatorOnUnknown &operator*(const Unknown&, const Function&)

u*F

KernelOperatorOnUnknowns operator*(const Unknown&, const Kernel&)

u * ker

KernelOperatorOnUnknowns operator*(const Unknown&, const KernelOperatorOnUnknowns&)

u * opker

OperatorOnUnknown &operator*(const Unknown&, const OperatorOnFunction&)

u*op(F)

OperatorOnUnknown &operator*(const Unknown&, const real_t&)

u*r

OperatorOnUnknown &operator*(const Unknown&, const Value&)

u*val

OperatorOnUnknown &operator*(const Unknown&, UnitaryVector)

u*n same as nx(u)

LcOperatorOnUnknowns operator*(const Unknown &u, const LcOperatorOnUnknown &lcopv)
template<typename T>
OperatorOnUnknown &operator*(const Unknown &un, const Matrix<T> &val)

u*Matrix

OperatorOnUnknown &operator*(const Unknown &un, const TermVector &tv)

u*tv

template<typename T>
OperatorOnUnknown &operator*(const Unknown &un, const Vector<T> &val)

u*Vector

template<typename T> KernelOperatorOnUnknowns operator* (const Unknown &un, T(fun)(const Point &, const Point &, Parameters &))

u * function(Point,Parameters)

template<typename T> OperatorOnUnknown & operator* (const Unknown &un, T(fun)(const Point &, Parameters &))

u * function(Point,Parameters)

template<typename T> KernelOperatorOnUnknowns operator* (const Unknown &un, T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &))

u * function(Vector<Point>,Parameters)

template<typename T> OperatorOnUnknown & operator* (const Unknown &un, T(fun)(const Vector< Point > &, Parameters &))

u * function(Vector<Point>,Parameters)

KernelOperatorOnTermVectorAndUnknown operator*(const Unknown &v, const KernelOperatorOnTermVector &koptv)
OperatorOnUnknown &operator*(const Value&, const Unknown&)

val*u

OperatorOnUnknown &operator*(const Value&, OperatorOnUnknown&)

product syntax V*Op(u)

Vector<complex_t> operator*(const Vector<complex_t> &cA, const real_t &x)

multiply complex vector by real scalar

multiply complex vector by real scalar “A * x”

Vector<complex_t> operator*(const Vector<complex_t> &cV, const Matrix<real_t> &rA)

complex vector * real matrix

complex vector x real matrix

template<typename K>
Vector<K> operator*(const Vector<K> &a, const K &x)

multiply vector by a scalar “A * x”

template<typename K>
Vector<K> operator*(const Vector<K> &a, const Vector<K> &b)

forbidden product of vector

Vector<complex_t> operator*(const Vector<real_t> &rA, const complex_t &x)

multiply real vector by complex scalar

multiply real vector by complex scalar “A * x”

Vector<complex_t> operator*(const Vector<real_t> &rV, const Matrix<complex_t> &cA)

real vector * complex matrix

real vector x complex matrix

template<typename T>
OperatorOnUnknown &operator*(const Vector<T> &val, const Unknown &un)

Vector*u.

template<typename T>
OperatorOnUnknown &operator*(const Vector<T> &val, OperatorOnUnknown &opu)
template<typename K, typename V>
Vector<K> operator*(const Vector<V> &v, const Matrix<K> &m)

vector x matrix (template)

Vector<Vector<complex_t>> operator*(const Vector<Vector<complex_t>>&, const complex_t&)

multiply complex vector by complex scalar “A * x”

template<typename T>
Vector<Vector<T>> operator*(const Vector<Vector<T>> &A, const real_t &x)

multiply vector of vector<T> by a real “A * x”

template<typename K, typename KK>
VectorEigenDense<K> operator*(const VectorEigenDense<K> &vec, const KK &k)
VectorEntry operator*(const VectorEntry &vec, const MatrixEntry &mat)

vector * matrix (consistent structure)

vector * matrix

SymbolicTermMatrix &operator*(LcTerm<TermMatrix> &LC, SymbolicTermMatrix &S)
OperatorOnFunction &operator*(OperatorOnFunction&, UnitaryVector)

opf*n

OperatorOnKernel &operator*(OperatorOnKernel&, UnitaryVector)

opker*n

OperatorOnUnknown &operator*(OperatorOnUnknown&, const Function&)

product syntax Op(u)*F

OperatorOnUnknown &operator*(OperatorOnUnknown&, const OperatorOnFunction&)

product syntax Op(u)*op(F)

OperatorOnUnknown &operator*(OperatorOnUnknown&, const Value&)

product syntax Op(u)*V

OperatorOnUnknowns operator*(OperatorOnUnknown&, OperatorOnUnknown&)

opu * opv

OperatorOnUnknown &operator*(OperatorOnUnknown&, UnitaryVector)

div*n same as ndiv(u)

OperatorOnUnknowns operator*(OperatorOnUnknown&, Unknown&)

opu * v

OperatorOnUnknown &operator*(OperatorOnUnknown &opu, const complex_t &val)
template<typename T>
OperatorOnUnknown &operator*(OperatorOnUnknown &opu, const Matrix<T> &val)
OperatorOnUnknown &operator*(OperatorOnUnknown &opu, const real_t &val)
OperatorOnUnknown &operator*(OperatorOnUnknown &opu, const TermVector &tv)

opu*tv

template<typename T>
OperatorOnUnknown &operator*(OperatorOnUnknown &opu, const Vector<T> &val)
template<typename T> OperatorOnUnknown & operator* (OperatorOnUnknown &opu, T(fun)(const Point &, Parameters &))

opu * function(Point,Parameters)

template<typename T> OperatorOnUnknown & operator* (OperatorOnUnknown &opu, T(fun)(const Vector< Point > &, Parameters &))

opu * function(Vector<Point>,Parameters)

inline real_t operator*(real_t a, const AngleUnit &u)
SymbolicTermMatrix &operator*(SymbolicTermMatrix &S, const complex_t &c)
SymbolicTermMatrix &operator*(SymbolicTermMatrix &S, const TermMatrix &M)
SymbolicTermMatrix &operator*(SymbolicTermMatrix &S, LcTerm<TermMatrix> &LC)
SymbolicTermMatrix &operator*(SymbolicTermMatrix &S1, SymbolicTermMatrix &S2)
template<typename T> KernelOperatorOnUnknowns operator* (T(fun)(const Point &, const Point &, Parameters &), const Unknown &un)

function(Point,Parameters) * u

template<typename T> OperatorOnUnknown & operator* (T(fun)(const Point &, Parameters &), const Unknown &un)

function(Point,Parameters) * u

template<typename T> OperatorOnUnknown & operator* (T(fun)(const Point &, Parameters &), OperatorOnUnknown &opu)

function(Point,Parameters) * opu

template<typename T> KernelOperatorOnUnknowns operator* (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &), const Unknown &un)

function(Vector<Point>,Parameters) * u

template<typename T> OperatorOnUnknown & operator* (T(fun)(const Vector< Point > &, Parameters &), const Unknown &un)

function(Vector<Point>,Parameters) * u

template<typename T> OperatorOnUnknown & operator* (T(fun)(const Vector< Point > &, Parameters &), OperatorOnUnknown &opu)

function(Vector<Point>,Parameters) * opu

OperatorOnFunction &operator*(UnitaryVector n, const complex_t &v)

v*n same as f_v*n

n*v same as n*f_v

OperatorOnFunction &operator*(UnitaryVector n, const Matrix<complex_t> &v)

v*n same as f_v*n

n*v same as n*f_v

OperatorOnFunction &operator*(UnitaryVector n, const Matrix<real_t> &v)

v*n same as f_v*n

n*v same as n*f_v

OperatorOnFunction &operator*(UnitaryVector n, const real_t &v)

v*n same as f_v*n

n*v same as n*f_v

OperatorOnFunction &operator*(UnitaryVector, const Function&)

n*f same as ntimes(f)/ncrossntimes(f)

OperatorOnKernel &operator*(UnitaryVector, const Kernel&)

n*ker same as ntimes(ker)

OperatorOnUnknown &operator*(UnitaryVector, const Unknown&)

n*u same as nx(u)

OperatorOnFunction &operator*(UnitaryVector, OperatorOnFunction&)

n*opf

OperatorOnKernel &operator*(UnitaryVector, OperatorOnKernel&)

n*opker

OperatorOnUnknown &operator*(UnitaryVector, OperatorOnUnknown&)

n*div same as ndiv(u)

OperatorOnUnknowns operator*(Unknown&, OperatorOnUnknown&)

u * opv

OperatorOnUnknowns operator*(Unknown&, Unknown&)

u * v

const BilinearForm &operator+(const BilinearForm&)

same bilinear form

BilinearForm operator+(const BilinearForm&, const BilinearForm&)

sum of bilinear forms

Parameter operator+(const char *v, const Parameter &p)

add char* and parameter

inline SymbolicFunction &operator+(const complex_t &c, const SymbolicFunction &f)
Parameter operator+(const complex_t &v, const Parameter &p)

add complex and parameter

Matrix<complex_t> operator+(const complex_t &x, const Matrix<real_t> &rA)

add a complex scalar to a real matrix

complex x + real matrix A

Vector<complex_t> operator+(const complex_t &x, const Vector<real_t> &rA)

add a scalar to vector

add complex scalar to real vector

complex_t operator+(const complex_t &z, const int i)
complex_t operator+(const complex_t &z, const int_t i)
complex_t operator+(const complex_t &z, const number_t n)
GeomDomain &operator+(const GeomDomain &dom1, const GeomDomain &dom2)

create the domain made of union of elements (same dimension)

Geometry operator+(const Geometry &g1, const Geometry &g2)

union of g1 and g2 (general case)

complex_t operator+(const int i, const complex_t &z)
Parameter operator+(const int v, const Parameter &p)

add int and parameter

complex_t operator+(const int_t i, const complex_t &z)
Parameter operator+(const int_t v, const Parameter &p)

add int_t and parameter

template<typename K>
Vector<K> operator+(const K &x, const Vector<K> &a)

add a scalar to a vect or “x+A”

LcKernelOperatorOnUnknowns operator+(const KernelOperatorOnUnknowns &opkuv, const LcKernelOperatorOnUnknowns &lc)
LcKernelOperatorOnUnknowns operator+(const KernelOperatorOnUnknowns &opkuv1, const KernelOperatorOnUnknowns &opkuv2)
template<typename K, typename KK>
Matrix<K> operator+(const KK &x, const Matrix<K> &a)

scalar x + matrix A

template<typename K, typename KK>
SparseMatrix<K> operator+(const KK &x, const SparseMatrix<K> &a)

scalar x + matrix A

LargeMatrix<complex_t> operator+(const LargeMatrix<complex_t> &matA, const LargeMatrix<real_t> &matB)
LargeMatrix<complex_t> operator+(const LargeMatrix<real_t> &matA, const LargeMatrix<complex_t> &matB)
template<typename T>
LargeMatrix<T> operator+(const LargeMatrix<T> &matA, const LargeMatrix<T> &matB)
LcKernelOperatorOnUnknowns operator+(const LcKernelOperatorOnUnknowns&)

algebraic operations

LcKernelOperatorOnUnknowns operator+(const LcKernelOperatorOnUnknowns &lc, const KernelOperatorOnUnknowns &opkuv)
LcKernelOperatorOnUnknowns operator+(const LcKernelOperatorOnUnknowns &lc1, const LcKernelOperatorOnUnknowns &lc2)
LcOperatorOnUnknown operator+(const LcOperatorOnUnknown&)

algebraic operations

LcOperatorOnUnknown operator+(const LcOperatorOnUnknown &lc, const OperatorOnUnknown &opu)
LcOperatorOnUnknown operator+(const LcOperatorOnUnknown &lc, const Unknown &u)
LcOperatorOnUnknown operator+(const LcOperatorOnUnknown &lc1, const LcOperatorOnUnknown &lc2)
LcOperatorOnUnknowns operator+(const LcOperatorOnUnknowns &lc)
LcOperatorOnUnknowns operator+(const LcOperatorOnUnknowns &lc, const OperatorOnUnknowns &opus)
LcOperatorOnUnknowns operator+(const LcOperatorOnUnknowns &lc1, const LcOperatorOnUnknowns &lc2)
LcTerm<TermMatrix> operator+(const LcTerm<TermMatrix>&, const TermMatrix&)

addition of a TermMatrix to a LcTerm

LcTerm<TermVector> operator+(const LcTerm<TermVector> &lctv, const TermVector &tv)
template<typename TT>
LcTerm<TT> operator+(const LcTerm<TT> &cl)
template<typename TT>
LcTerm<TT> operator+(const LcTerm<TT> &cl1, const LcTerm<TT> &cl2)
LinearForm operator+(const LinearForm&, const LinearForm&)

sum of linear forms

template<typename T>
LowRankMatrix<T> operator+(const LowRankMatrix<T> &L1)
template<typename T>
LowRankMatrix<T> operator+(const LowRankMatrix<T> &L1, const LowRankMatrix<T> &L2)
Matrix<complex_t> operator+(const Matrix<complex_t> &cA, const Matrix<real_t> &rB)

add a real matrix and a complex matrix

complex matrix A + real matrix B

template<typename K, typename KK>
Matrix<K> operator+(const Matrix<K> &a, const KK &x)

matrix A + scalar x

template<typename K>
Matrix<K> operator+(const Matrix<K> &a, const Matrix<K> &b)

sum of two matrices

template<typename K>
Matrix<K> operator+(const Matrix<K> &m)

unary operator+

Matrix<complex_t> operator+(const Matrix<real_t> &rA, const complex_t &x)

add a complex scalar to a real matrix

real matrix A + complex x

Matrix<complex_t> operator+(const Matrix<real_t> &rA, const Matrix<complex_t> &cB)

add a complex matrix and a real matrix

real matrix A + complex matrix B

complex_t operator+(const number_t n, const complex_t &z)
Parameter operator+(const number_t v, const Parameter &p)

add number_t and parameter

LcOperatorOnUnknown operator+(const OperatorOnUnknown &opu, const LcOperatorOnUnknown &lc)
LcOperatorOnUnknown operator+(const OperatorOnUnknown &opu, const OperatorOnUnknown &opv)
LcOperatorOnUnknown operator+(const OperatorOnUnknown &opu, const Unknown &v)
LcOperatorOnUnknowns operator+(const OperatorOnUnknowns&, const OperatorOnUnknowns&)

algebraic operations

LcOperatorOnUnknowns operator+(const OperatorOnUnknowns &opus, const LcOperatorOnUnknowns &lc)
Parameter operator+(const Parameter &p, const char *v)

add parameter and char*

Parameter operator+(const Parameter &p, const complex_t &v)

add parameter and complex

Parameter operator+(const Parameter &p, const int v)

add parameter and int

Parameter operator+(const Parameter &p, const int_t v)

add parameter and int_t

Parameter operator+(const Parameter &p, const number_t v)

add parameter and number_t

Parameter operator+(const Parameter &p, const real_t v)

add parameter and real

Parameter operator+(const Parameter &p, const string_t &v)

add parameter and string

Parameter operator+(const Parameter &p1, const Parameter &p2)

add 2 parameters

Point operator+(const Point&)

same point (completeness)

Point operator+(const Point&, const Point&)

sum of two points

Point operator+(const Point&, const real_t)

sum of two points

template<typename K>
PolynomialT<K> operator+(const PolynomialT<K> &p1, const PolynomialT<K> &p2)
inline SymbolicFunction &operator+(const real_t &r, const SymbolicFunction &f)
Vector<complex_t> operator+(const real_t &x, const Vector<complex_t> &cA)

add a scalar to vector

add real scalar to complex vector

Parameter operator+(const real_t v, const Parameter &p)

add real and parameter

Point operator+(const real_t, const Point&)

sum of two points

template<typename K, typename KK>
SparseMatrix<K> operator+(const SparseMatrix<K> &a, const KK &x)

matrix A + scalar x

template<typename K, typename KK>
SparseMatrix<K> operator+(const SparseMatrix<K> &a, const SparseMatrix<KK> &b)

sum of two matrices

template<typename K>
SparseMatrix<K> operator+(const SparseMatrix<K> &m)

unary operator+

Parameter operator+(const string_t &v, const Parameter &p)

add string and parameter

SuBilinearForm operator+(const SuBilinearForm&, const SuBilinearForm&)

sum of bilinear forms

SuLinearForm operator+(const SuLinearForm &sulf1, const SuLinearForm &sulf2)

sum of linear forms

inline SuTermVector operator+(const SuTermVector &s)
inline SuTermVector operator+(const SuTermVector &s1, const SuTermVector &s2)

binary and unary operators applied to SuTermVector’s, assuming they have the same size

inline SymbolicFunction &operator+(const SymbolicFunction &f)
inline SymbolicFunction &operator+(const SymbolicFunction &f, const complex_t &c)
inline SymbolicFunction &operator+(const SymbolicFunction &f, const real_t &r)
inline SymbolicFunction &operator+(const SymbolicFunction &f1, const SymbolicFunction &f2)
const TermMatrix &operator+(const TermMatrix&)

unary operator+

LcTerm<TermMatrix> operator+(const TermMatrix&, const LcTerm<TermMatrix>&)

addition of a TermMatrix to a LcTerm

LcTerm<TermMatrix> operator+(const TermMatrix&, const TermMatrix&)

addition of TermMatrix

SymbolicTermMatrix &operator+(const TermMatrix &M, SymbolicTermMatrix &S)
const TermVector &operator+(const TermVector &tv)

multiple algebraic operations on TermVector produce a LcTerm object (linear combination of terms) the computation is done by constructor from LcTerm or assign operation of a LcTerm

addition of TermVector

LcTerm<TermVector> operator+(const TermVector &tv, const LcTerm<TermVector> &lctv)
LcTerm<TermVector> operator+(const TermVector &tv1, const TermVector &tv2)
LcOperatorOnUnknown operator+(const Unknown &u, const LcOperatorOnUnknown &lc)
LcOperatorOnUnknown operator+(const Unknown &u, const OperatorOnUnknown &opv)
LcOperatorOnUnknown operator+(const Unknown &u, const Unknown &v)
Vector<complex_t> operator+(const Vector<complex_t> &cA, const real_t &x)

add a scalar to vector

add real scalar to complex vector

Vector<complex_t> operator+(const Vector<complex_t> &cA, const Vector<real_t> &rB)

vector addition

vector addition “ complex A + real B”

template<typename K>
Vector<K> operator+(const Vector<K> &a)

unary + (return same vector)

template<typename K>
Vector<K> operator+(const Vector<K> &a, const K &x)

add a scalar to a vector “A+x”

template<typename K>
Vector<K> operator+(const Vector<K> &a, const Vector<K> &b)

add two vectors

Vector<complex_t> operator+(const Vector<real_t> &rA, const complex_t &x)

add a scalar to vector

add complex scalar to real vector

Vector<complex_t> operator+(const Vector<real_t> &rA, const Vector<complex_t> &cB)

vector addition

vector addition “ real A + complex B”

SymbolicTermMatrix &operator+(LcTerm<TermMatrix> &LC, SymbolicTermMatrix &S)
SymbolicTermMatrix &operator+(SymbolicTermMatrix &S, const TermMatrix &M)
SymbolicTermMatrix &operator+(SymbolicTermMatrix &S, LcTerm<TermMatrix> &LC)
SymbolicTermMatrix &operator+(SymbolicTermMatrix &S1, SymbolicTermMatrix &S2)
BilinearForm operator-(const BilinearForm&)

opposite of a bilinear form

BilinearForm operator-(const BilinearForm&, const BilinearForm&)

difference of bilinear forms

inline SymbolicFunction &operator-(const complex_t &c, const SymbolicFunction &f)
Parameter operator-(const complex_t &v, const Parameter &p)

difference complex and parameter

Matrix<complex_t> operator-(const complex_t &x, const Matrix<real_t> &rA)

complex value - real matrix

complex x - real matrix A

Vector<complex_t> operator-(const complex_t &x, const Vector<real_t> &rA)

subtract real vector from complex scalar

subtract “complex x - A”

complex_t operator-(const complex_t &z, const int i)
complex_t operator-(const complex_t &z, const int_t i)
complex_t operator-(const complex_t &z, const number_t n)
GeomDomain &operator-(const GeomDomain &dom1, const GeomDomain &dom2)

internal tool used by MeshDomain::ficticiousDomain

create the domain made of dom1 elements that are not in dom2

Geometry operator-(const Geometry &g1, const Geometry &g2)

g2 hole of g1 (general case)

complex_t operator-(const int i, const complex_t &z)
Parameter operator-(const int v, const Parameter &p)

difference int and parameter

complex_t operator-(const int_t i, const complex_t &z)
Parameter operator-(const int_t v, const Parameter &p)

difference int_t and parameter

template<typename K>
Vector<K> operator-(const K &x, const Vector<K> &a)

subtract vector from scalar “x-A”

LcKernelOperatorOnUnknowns operator-(const KernelOperatorOnUnknowns &opkuv, const LcKernelOperatorOnUnknowns &lc)
LcKernelOperatorOnUnknowns operator-(const KernelOperatorOnUnknowns &opkuv1, const KernelOperatorOnUnknowns &opkuv2)
template<typename K, typename KK>
Matrix<K> operator-(const KK &x, const Matrix<K> &a)

scalar x - matrix A

template<typename K, typename KK>
SparseMatrix<K> operator-(const KK &x, const SparseMatrix<K> &a)

scalar x - matrix A

LargeMatrix<complex_t> operator-(const LargeMatrix<complex_t> &matA, const LargeMatrix<real_t> &matB)
LargeMatrix<complex_t> operator-(const LargeMatrix<real_t> &matA, const LargeMatrix<complex_t> &matB)
template<typename T>
LargeMatrix<T> operator-(const LargeMatrix<T> &matA, const LargeMatrix<T> &matB)
LcKernelOperatorOnUnknowns operator-(const LcKernelOperatorOnUnknowns &lc)
LcKernelOperatorOnUnknowns operator-(const LcKernelOperatorOnUnknowns &lc, const KernelOperatorOnUnknowns &opkuv)
LcKernelOperatorOnUnknowns operator-(const LcKernelOperatorOnUnknowns &lc1, const LcKernelOperatorOnUnknowns &lc2)
LcOperatorOnUnknown operator-(const LcOperatorOnUnknown &lc)
LcOperatorOnUnknown operator-(const LcOperatorOnUnknown &lc, const OperatorOnUnknown &opu)
LcOperatorOnUnknown operator-(const LcOperatorOnUnknown &lc, const Unknown &u)
LcOperatorOnUnknown operator-(const LcOperatorOnUnknown &lc1, const LcOperatorOnUnknown &lc2)
LcOperatorOnUnknowns operator-(const LcOperatorOnUnknowns &lc)
LcOperatorOnUnknowns operator-(const LcOperatorOnUnknowns &lc, const OperatorOnUnknowns &opus)
LcOperatorOnUnknowns operator-(const LcOperatorOnUnknowns &lc1, const LcOperatorOnUnknowns &lc2)
LcTerm<TermMatrix> operator-(const LcTerm<TermMatrix>&, const TermMatrix&)

substraction of a TermMatrix of a LcTerm

LcTerm<TermVector> operator-(const LcTerm<TermVector> &lctv, const TermVector &tv)
template<typename TT>
LcTerm<TT> operator-(const LcTerm<TT> &cl)
template<typename TT>
LcTerm<TT> operator-(const LcTerm<TT> &cl1, const LcTerm<TT> &cl2)
LinearForm operator-(const LinearForm&)

opposite of a linear form

LinearForm operator-(const LinearForm&, const LinearForm&)

difference of linear forms

template<typename T>
LowRankMatrix<T> operator-(const LowRankMatrix<T> &L1)
template<typename T>
LowRankMatrix<T> operator-(const LowRankMatrix<T> &L1, const LowRankMatrix<T> &L2)
Matrix<complex_t> operator-(const Matrix<complex_t> &cA, const Matrix<real_t> &rB)

real matrix - complex matrix

complex matrix A - real matrix B

template<typename K, typename KK>
Matrix<K> operator-(const Matrix<K> &a, const KK &x)

matrix A - scalar x

template<typename K>
Matrix<K> operator-(const Matrix<K> &a, const Matrix<K> &b)

matrix A - matrix B

template<typename K>
Matrix<K> operator-(const Matrix<K> &m)

unary operator- (negation operator)

Matrix<complex_t> operator-(const Matrix<real_t> &rA, const complex_t &x)

real matrix - complex value

real matrix A - complex x

Matrix<complex_t> operator-(const Matrix<real_t> &rA, const Matrix<complex_t> &cB)

complex matrix - real matrix

real matrix A - complex matrix B

complex_t operator-(const number_t n, const complex_t &z)
Parameter operator-(const number_t v, const Parameter &p)

difference number_t and parameter

LcOperatorOnUnknown operator-(const OperatorOnUnknown &opu, const LcOperatorOnUnknown &lc)
LcOperatorOnUnknown operator-(const OperatorOnUnknown &opu, const OperatorOnUnknown &opv)
LcOperatorOnUnknown operator-(const OperatorOnUnknown &opu, const Unknown &v)
LcOperatorOnUnknowns operator-(const OperatorOnUnknowns &opus, const LcOperatorOnUnknowns &lc)
LcOperatorOnUnknowns operator-(const OperatorOnUnknowns &opus1, const OperatorOnUnknowns &opus2)
Parameter operator-(const Parameter &p)
Parameter operator-(const Parameter &p, const complex_t &v)

difference parameter and complex

Parameter operator-(const Parameter &p, const int v)

difference parameter and int

Parameter operator-(const Parameter &p, const int_t v)

difference parameter and int_t

Parameter operator-(const Parameter &p, const number_t v)

difference parameter and number_t

Parameter operator-(const Parameter &p, const real_t v)

difference parameter and real

Parameter operator-(const Parameter &p1, const Parameter &p2)

difference of 2 parameters

Point operator-(const Point&)

opposite point

Point operator-(const Point&, const Point&)

difference of two points

Point operator-(const Point&, const real_t)

difference of two points

template<typename K>
PolynomialT<K> operator-(const PolynomialT<K> &m)
template<typename K>
PolynomialT<K> operator-(const PolynomialT<K> &p1, const PolynomialT<K> &p2)
inline SymbolicFunction &operator-(const real_t &r, const SymbolicFunction &f)
Vector<complex_t> operator-(const real_t &x, const Vector<complex_t> &cA)

substract complex vector from real scalar

subtract real scalar to complex vector

Parameter operator-(const real_t v, const Parameter &p)

difference real and parameter

Point operator-(const real_t, const Point&)

difference of two points

template<typename K, typename KK>
SparseMatrix<K> operator-(const SparseMatrix<K> &a, const KK &x)

matrix A - scalar x

template<typename K, typename KK>
SparseMatrix<K> operator-(const SparseMatrix<K> &a, const SparseMatrix<KK> &b)

matrix A - matrix B

template<typename K>
SparseMatrix<K> operator-(const SparseMatrix<K> &m)

unary operator- (negation operator)

SuBilinearForm operator-(const SuBilinearForm&)

opposite of bilinear form

SuBilinearForm operator-(const SuBilinearForm&, const SuBilinearForm&)

difference of bilinear forms

SuLinearForm operator-(const SuLinearForm &sulf)

opposite of linear form

SuLinearForm operator-(const SuLinearForm &sulf1, const SuLinearForm &sulf2)

difference of linear forms

inline SuTermVector operator-(const SuTermVector &s)
inline SuTermVector operator-(const SuTermVector &s1, const SuTermVector &s2)
inline SymbolicFunction &operator-(const SymbolicFunction &f)
inline SymbolicFunction &operator-(const SymbolicFunction &f, const complex_t &c)
inline SymbolicFunction &operator-(const SymbolicFunction &f, const real_t &r)
inline SymbolicFunction &operator-(const SymbolicFunction &f1, const SymbolicFunction &f2)
LcTerm<TermMatrix> operator-(const TermMatrix&)

unary operator- (returns a LcTerm)

LcTerm<TermMatrix> operator-(const TermMatrix&, const LcTerm<TermMatrix>&)

substraction of a LcTerm from a TermMatrix

LcTerm<TermMatrix> operator-(const TermMatrix&, const TermMatrix&)

substraction of TermMatrix of a TermMatrix

SymbolicTermMatrix &operator-(const TermMatrix &M, SymbolicTermMatrix &S)
LcTerm<TermVector> operator-(const TermVector &tv)

substraction of TermVector

LcTerm<TermVector> operator-(const TermVector &tv, const LcTerm<TermVector> &lctv)
LcTerm<TermVector> operator-(const TermVector &tv1, const TermVector &tv2)
LcOperatorOnUnknown operator-(const Unknown &u, const LcOperatorOnUnknown &lc)
LcOperatorOnUnknown operator-(const Unknown &u, const OperatorOnUnknown &opv)
LcOperatorOnUnknown operator-(const Unknown &u, const Unknown &v)
Value operator-(const Value &v)
Vector<complex_t> operator-(const Vector<complex_t> &cA, const real_t &x)

substract real scalar from complex vector

subtract real scalar to complex vector

Vector<complex_t> operator-(const Vector<complex_t> &cA, const Vector<real_t> &rB)

vector subtraction A - B

vector subtraction “complex A - real B”

template<typename K>
Vector<K> operator-(const Vector<K> &a)

unary - (return opposite vector)

template<typename K>
Vector<K> operator-(const Vector<K> &a, const K &x)

subtract vector from scalar “A-x”

template<typename K>
Vector<K> operator-(const Vector<K> &a, const Vector<K> &b)

vector subtraction “A-B”

Vector<complex_t> operator-(const Vector<real_t> &rA, const complex_t &x)

subtract scalar from vector A - x

subtract scalar to vector “ A - complex x”

Vector<complex_t> operator-(const Vector<real_t> &rA, const Vector<complex_t> &cB)

vector subtraction A - B

vector subtraction “real A - complex B”

SymbolicTermMatrix &operator-(LcTerm<TermMatrix> &LC, SymbolicTermMatrix &S)
SymbolicTermMatrix &operator-(SymbolicTermMatrix &S, const TermMatrix &M)
SymbolicTermMatrix &operator-(SymbolicTermMatrix &S, LcTerm<TermMatrix> &LC)
SymbolicTermMatrix &operator-(SymbolicTermMatrix &S1, SymbolicTermMatrix &S2)
BilinearForm operator/(const BilinearForm&, const complex_t&)

division by a complex scalar

BilinearForm operator/(const BilinearForm&, const int&)

division by an integer scalar

BilinearForm operator/(const BilinearForm&, const int_t&)

division by an integer scalar

BilinearForm operator/(const BilinearForm&, const number_t&)

division by an integer scalar

BilinearForm operator/(const BilinearForm&, const real_t&)

division by a real scalar

inline SymbolicFunction &operator/(const complex_t &c, const SymbolicFunction &f)
Parameter operator/(const complex_t &v, const Parameter &p)

division complex and parameter

complex_t operator/(const complex_t &z, const int i)
complex_t operator/(const complex_t &z, const int_t i)
complex_t operator/(const complex_t &z, const number_t n)
Parameter operator/(const int v, const Parameter &p)

division int and parameter

Parameter operator/(const int_t v, const Parameter &p)

division int_t and parameter

LcKernelOperatorOnUnknowns operator/(const LcKernelOperatorOnUnknowns &lc, const complex_t &a)
LcKernelOperatorOnUnknowns operator/(const LcKernelOperatorOnUnknowns &lc, const real_t &a)
LcOperatorOnUnknown operator/(const LcOperatorOnUnknown &lc, const complex_t &a)
LcOperatorOnUnknown operator/(const LcOperatorOnUnknown &lc, const real_t &a)
LcOperatorOnUnknowns operator/(const LcOperatorOnUnknowns &lc, const complex_t &a)
LcOperatorOnUnknowns operator/(const LcOperatorOnUnknowns &lc, const real_t &a)
template<typename TT, typename T>
LcTerm<TT> operator/(const LcTerm<TT> &lc, const T &v)
LinearForm operator/(const LinearForm&, const complex_t&)

division by a scalar

LinearForm operator/(const LinearForm&, const int&)

division by a scalar

LinearForm operator/(const LinearForm&, const int_t&)

division by a scalar

LinearForm operator/(const LinearForm&, const number_t&)

division by a scalar

LinearForm operator/(const LinearForm&, const real_t&)

division by a scalar

template<typename T>
LowRankMatrix<T> operator/(const LowRankMatrix<T> &L1, const T &s)
template<typename K, typename KK>
Matrix<K> operator/(const Matrix<K> &a, const KK &x)

matrix A / scalar x

Matrix<complex_t> operator/(const Matrix<real_t> &rA, const complex_t &x)

divide real matrix by a complex value

real matrix A / complex x

template<typename K>
PolynomialT<K> operator/(const MonomialT<K> &m, const K &k)
Parameter operator/(const number_t v, const Parameter &p)

division number_t and parameter

Parameter operator/(const Parameter &p, const complex_t &v)

division parameter and complex

Parameter operator/(const Parameter &p, const int v)

division parameter and int_t

Parameter operator/(const Parameter &p, const int_t v)

division parameter and int

Parameter operator/(const Parameter &p, const number_t v)

division parameter and number_t

Parameter operator/(const Parameter &p, const real_t v)

division parameter and real

Parameter operator/(const Parameter &p1, const Parameter &p2)

division of 2 parameters

Point operator/(const Point&, const real_t)

scale a point

template<typename K>
PolynomialT<K> operator/(const PolynomialT<K> &p, const K &k)
inline SymbolicFunction &operator/(const real_t &r, const SymbolicFunction &f)
Parameter operator/(const real_t v, const Parameter &p)

division real and parameter

template<typename K, typename KK>
SparseMatrix<K> operator/(const SparseMatrix<K> &a, const KK &x)

matrix A / scalar x

SuBilinearForm operator/(const SuBilinearForm&, const complex_t&)

divide by a scalar

SuLinearForm operator/(const SuLinearForm &sulf, const complex_t &c)

division by a scalar

inline SuTermVector operator/(const SuTermVector &s1, const SuTermVector &s2)
inline SymbolicFunction &operator/(const SymbolicFunction &f, const complex_t &c)
inline SymbolicFunction &operator/(const SymbolicFunction &f, const real_t &r)
inline SymbolicFunction &operator/(const SymbolicFunction &f1, const SymbolicFunction &f2)
template<typename T>
LcTerm<TermMatrix> operator/(const TermMatrix &tv, const T &t)

division of TermMatrix by a real or a complex (template T)

inline TermVector operator/(const TermVector &s1, const TermVector &s2)
template<typename T>
LcTerm<TermVector> operator/(const TermVector &tv, const T &t)
Vector<complex_t> operator/(const Vector<complex_t> &cA, const real_t &x)

divide complex vector by real scalar

divide complex vector by real scalar “A / x”

template<typename K>
Vector<K> operator/(const Vector<K> &a, const K &x)

divide vector by a scalar “ A / x”

Vector<complex_t> operator/(const Vector<real_t> &rA, const complex_t &x)

divide real vector by complex scalar

divide real vector by complex scalar “A / x”

Vector<Vector<complex_t>> operator/(const Vector<Vector<complex_t>>&, const complex_t&)

divide complex vector by complex scalar “A / x”

template<typename T>
Vector<Vector<T>> operator/(const Vector<Vector<T>> &A, const real_t &x)

multiply vector of vector<T> by a real “A * x”

template<typename T>
inline VectorEntry operator/(const VectorEntry &v, const T &a)

operation V/=a

SymbolicTermMatrix &operator/(SymbolicTermMatrix &S, const complex_t &c)
inline SymbolicFunction &operator<(const complex_t &c, const SymbolicFunction &f)
bool operator<(const Dof&, const Dof&)

order between dofs

bool operator<(const DofComponent&, const DofComponent&)

less than

inline bool operator<(const DofKey &k1, const DofKey &k2)
bool operator<(const DomUnkDop&, const DomUnkDop&)

less than

bool operator<(const GeomElement&, const GeomElement&)

operator < to sort elements

template<typename K>
bool operator<(const MonomialT<K> &m1, const MonomialT<K> &m2)
bool operator<(const Point&, const Point&)

leather than between two points

inline SymbolicFunction &operator<(const real_t &r, const SymbolicFunction &f)
template<typename T, template<class> class OP, class CP, template<class> class KP, template<class> class SP, template<class> class CNP, typename U>
inline bool operator<(const SmartPtr<T, OP, CP, KP, SP, CNP> &lhs, U *rhs)
inline SymbolicFunction &operator<(const SymbolicFunction &f, const complex_t &c)
inline SymbolicFunction &operator<(const SymbolicFunction &f, const real_t &r)
inline SymbolicFunction &operator<(const SymbolicFunction &f1, const SymbolicFunction &f2)
template<class K>
bool operator<(const Triplet<K> &t1, const Triplet<K> &t2)
template<typename T, template<class> class OP, class CP, template<class> class KP, template<class> class SP, template<class> class CNP, typename U>
inline bool operator<(U *lhs, const SmartPtr<T, OP, CP, KP, SP, CNP> &rhs)
template<typename T>
inline ComparisonFunction<T> operator<(VarComparison, const T &a)
template<typename T>
Collection<T> &operator<<(Collection<T> &ns, const T &n)

insertion utility

template<typename T>
PCollection<T> &operator<<(PCollection<T> &ts, const T &t)

insertion operator

std::ostream &operator<<(std::ostream&, const BilinearForm&)

output BilinearForm

std::ostream &operator<<(std::ostream&, const CompositeDomain&)

print operator

std::ostream &operator<<(std::ostream&, const Constraints&)

print operator

std::ostream &operator<<(std::ostream&, const CrackData&)

print operator

std::ostream &operator<<(std::ostream&, const DifferentialOperator&)

print utility

std::ostream &operator<<(std::ostream&, const Dof&)

print operator

std::ostream &operator<<(std::ostream&, const DofComponent&)

print operator

std::ostream &operator<<(std::ostream&, const DomainInfo&)

print operator

std::ostream &operator<<(std::ostream&, const EigenElements&)

print operator

std::ostream &operator<<(std::ostream&, const Element&)

print operator

std::ostream &operator<<(std::ostream&, const EssentialCondition&)

print operator

std::ostream &operator<<(std::ostream&, const EssentialConditions&)

print operator

std::ostream &operator<<(std::ostream&, const FeSubSpace&)

print operator

std::ostream &operator<<(std::ostream&, const Function&)

print operator

std::ostream &operator<<(std::ostream&, const GeomDomain&)

print geomdomain

std::ostream &operator<<(std::ostream&, const GeomElement&)

outputs geomelement characteristics

std::ostream &operator<<(std::ostream&, const Geometry&)

output Geometry

std::ostream &operator<<(std::ostream&, const GeomMapData&)

print operator

std::ostream &operator<<(std::ostream&, const IntegrationMethod&)

output IntegrationMethod on stream

std::ostream &operator<<(std::ostream&, const Interpolation&)

print operator

std::ostream &operator<<(std::ostream&, const Kernel&)

print operator

std::ostream &operator<<(std::ostream&, const KernelOperatorOnUnknowns&)

outputs OperatorOnUnknown attributes

std::ostream &operator<<(std::ostream&, const LcKernelOperatorOnUnknowns&)

print operator

std::ostream &operator<<(std::ostream&, const LcOperatorOnUnknown&)

print operator

std::ostream &operator<<(std::ostream&, const LcOperatorOnUnknowns&)

print operator

std::ostream &operator<<(std::ostream&, const LinearForm&)

output LinearForm

std::ostream &operator<<(std::ostream&, const MatrixEntry&)

print on ostream

std::ostream &operator<<(std::ostream&, const MatrixStorage&)

print operator

std::ostream &operator<<(std::ostream&, const Mesh&)

print operator

std::ostream &operator<<(std::ostream&, const MeshDomain&)

print operator

std::ostream &operator<<(std::ostream&, const MeshElement&)

prints characteristics and point numbers

std::ostream &operator<<(std::ostream&, const Operand&)

outputs Operand attributes

std::ostream &operator<<(std::ostream&, const OperatorOnUnknown&)

outputs OperatorOnUnknown attributes

std::ostream &operator<<(std::ostream&, const OperatorOnUnknowns&)

outputs OperatorOnUnknown attributes

std::ostream &operator<<(std::ostream&, const Parameter&)

output operator

std::ostream &operator<<(std::ostream&, const Parameters&)

flux insertion (write)

std::ostream &operator<<(std::ostream&, const PhysicalData&)

print operator

std::ostream &operator<<(std::ostream&, const Point&)

ostream insert

std::ostream &operator<<(std::ostream&, const PointsDomain&)

print operator

std::ostream &operator<<(std::ostream&, const Projector&)

output on stream

std::ostream &operator<<(std::ostream&, const Quadrature&)

print operator

std::ostream &operator<<(std::ostream&, const QuadratureIM&)

output on stream

std::ostream &operator<<(std::ostream&, const QuadratureRule&)

print operator

std::ostream &operator<<(std::ostream&, const RefElement&)

output operator

std::ostream &operator<<(std::ostream&, const SetOfConstraints&)

print operator

std::ostream &operator<<(std::ostream&, const SpectralBasis&)

print operator

std::ostream &operator<<(std::ostream&, const SuBilinearForm&)

output SuBilinearForm

std::ostream &operator<<(std::ostream&, const SubSpace&)

print operator

std::ostream &operator<<(std::ostream&, const Term&)

print operator

std::ostream &operator<<(std::ostream&, const Unknown&)

print an unknown

std::ostream &operator<<(std::ostream&, const Value&)

outputs Value in a output stream

std::ostream &operator<<(std::ostream&, const VectorEntry&)

output VectorEntry on stream

std::ostream &operator<<(std::ostream &os, const BoundingBox &bb)

output BoundingBox

inline std::ostream &operator<<(std::ostream &os, const Geodesic &g)
std::ostream &operator<<(std::ostream &os, const GeomRefElement &obj)

prints GeomRefElement object to ostream

print operator

std::ostream &operator<<(std::ostream &os, const GeoNumPair &gp)

outputs GeoNumPair characteristics

template<typename X, typename J>
std::ostream &operator<<(std::ostream &os, const HMatrix<X, J> &hm)
template<typename X, typename J>
std::ostream &operator<<(std::ostream &os, const HMatrixNode<X, J> &hm)
template<class S>
std::ostream &operator<<(std::ostream &os, const KdNode<S> &node)

print operator

template<class S>
std::ostream &operator<<(std::ostream &os, const KdTree<S> &kd)

print operator

template<typename T>
std::ostream &operator<<(std::ostream &os, const LargeMatrix<T> &mat)

output stream operator

std::ostream &operator<<(std::ostream &os, const Matrix<complex_t> &m)

complex matrix flux insertion (write)

flux insertion (write)

std::ostream &operator<<(std::ostream &os, const Matrix<real_t> &m)

real matrix flux insertion (write)

flux insertion (write)

std::ostream &operator<<(std::ostream &os, const MatrixEigenDense<complex_t> &m)

complex matrix flux insertion (write)

flux insertion (write)

std::ostream &operator<<(std::ostream &os, const MatrixEigenDense<real_t> &m)

real matrix flux insertion (write)

flux insertion (write)

std::ostream &operator<<(std::ostream &os, const MinimalBox &mb)

output MinimalBox

template<class S>
std::ostream &operator<<(std::ostream &os, const Node<S> &node)

print operator

std::ostream &operator<<(std::ostream &os, const OperatorOnFunction &opf)
std::ostream &operator<<(std::ostream &os, const OperatorOnKernel &opk)
inline std::ostream &operator<<(std::ostream &os, const ParameterKey &pk)
std::ostream &operator<<(std::ostream &os, const RealPair &rp)

output pair of reals

std::ostream &operator<<(std::ostream &os, const RefDof &obj)

print Reference D.o.F data

print operator

std::ostream &operator<<(std::ostream &os, const ShapeValues &obj)

print shape functions and derivatives to output file stream

print operator

inline std::ostream &operator<<(std::ostream &os, const SpaceMap &sm)
std::ostream &operator<<(std::ostream &os, const std::set<ParameterKey> &pks)
template<typename U>
std::ostream &operator<<(std::ostream &os, const std::vector<U> &v)
std::ostream &operator<<(std::ostream &os, const SuLinearForm &sulf)

output SuLinearForm

std::ostream &operator<<(std::ostream &os, const SuTermVectors &tvs)
template<typename T>
std::ostream &operator<<(std::ostream &os, const Tabular<T> &t)

general vector flux insertion (write)

std::ostream &operator<<(std::ostream &os, const TermVectors &tvs)
std::ostream &operator<<(std::ostream &os, const Transformation &t)

return the scale factor (=1.

output Transformation

if no homothety)

template<typename K>
std::ostream &operator<<(std::ostream &os, const Vector<K> &v)

general vector flux insertion (write)

std::ostream &operator<<(std::ostream &out, const AccessType &at)
std::ostream &operator<<(std::ostream &out, const AdjacentStatus &as)

print operator for enum associated to a dictionary

std::ostream &operator<<(std::ostream &out, const AlgebraicOperator &ao)

print operator for enum associated to a dictionary

template<typename T>
std::ostream &operator<<(std::ostream &out, const ApproximateMatrix<T> &am)
std::ostream &operator<<(std::ostream &out, const BCsub &bcs)
inline std::ostream &operator<<(std::ostream &out, const BezierSpline &sp)
inline std::ostream &operator<<(std::ostream &out, const BSpline &sp)
inline std::ostream &operator<<(std::ostream &out, const C2Spline &sp)
inline std::ostream &operator<<(std::ostream &out, const CatmullRomSpline &sp)
std::ostream &operator<<(std::ostream &out, const ClusteringMethod &cm)

print operator for enum associated to a dictionary

template<typename T>
std::ostream &operator<<(std::ostream &out, const ClusterNode<T> &cn)
template<typename T>
std::ostream &operator<<(std::ostream &out, const ClusterTree<T> &ct)
template<typename T>
std::ostream &operator<<(std::ostream &out, const Collection<T> &ns)

print utility

std::ostream &operator<<(std::ostream &out, const ComputationType &ct)
std::ostream &operator<<(std::ostream &out, const ContinuityOrder &co)
std::ostream &operator<<(std::ostream &out, const DiffOpType &dot)
inline std::ostream &operator<<(std::ostream &out, const DofKey &dk)
std::ostream &operator<<(std::ostream &out, const DofLocalization &dl)

print operator for enum associated to a dictionary

std::ostream &operator<<(std::ostream &out, const DofType &dt)
std::ostream &operator<<(std::ostream &out, const DomainType &dt)

print operator for enum associated to a dictionary

std::ostream &operator<<(std::ostream &out, const EcType &et)

print operator for enum associated to a dictionary

std::ostream &operator<<(std::ostream &out, const EigenSolverType &est)
std::ostream &operator<<(std::ostream &out, const FactorizationType &ft)
std::ostream &operator<<(std::ostream &out, const FEMapType &femt)

print operator for enum associated to a dictionary

std::ostream &operator<<(std::ostream &out, const FESubType &fest)
std::ostream &operator<<(std::ostream &out, const FEType &fet)
std::ostream &operator<<(std::ostream &out, const FuncFormType &fft)
std::ostream &operator<<(std::ostream &out, const FunctType &ft)
std::ostream &operator<<(std::ostream &out, const HMApproximationMethod &hmam)
template<typename T>
std::ostream &operator<<(std::ostream &out, const HMatrixEntry<T> &hme)
std::ostream &operator<<(std::ostream &out, const IEcomputationParameters &iep)
std::ostream &operator<<(std::ostream &out, const IntegrationMethodType &imt)
std::ostream &operator<<(std::ostream &out, const InterpolationType &it)
std::ostream &operator<<(std::ostream &out, const IOFormat &iof)
std::ostream &operator<<(std::ostream &out, const IterativeSolverType &ist)
std::ostream &operator<<(std::ostream &out, const Language &l)
template<typename TT>
std::ostream &operator<<(std::ostream &out, const LcTerm<TT> &lc)

print operator

std::ostream &operator<<(std::ostream &out, const LinearFormType &lft)
inline std::ostream &operator<<(std::ostream &out, const Malyuzhinets &mal)
std::ostream &operator<<(std::ostream &out, const MemoryUnit &mu)

print operator for enum associated to a dictionary

std::ostream &operator<<(std::ostream &out, const MsgType &mt)

print operator for enum associated to a dictionary

inline std::ostream &operator<<(std::ostream &out, const Nurbs &sp)
std::ostream &operator<<(std::ostream &out, const OCShapeType &ocst)
std::ostream &operator<<(std::ostream &out, const OrientationType &ot)
inline std::ostream &operator<<(std::ostream &out, const Parametrization &par)
template<typename T>
std::ostream &operator<<(std::ostream &out, const PCollection<T> &ts)

print utility

template<typename T>
std::ostream &operator<<(std::ostream &out, const PCollectionItem<T> &item)

output PCollectionItem on stream

std::ostream &operator<<(std::ostream &out, const ProjectionType &pt)

print operator for enum associated to a dictionary

std::ostream &operator<<(std::ostream &out, const ProjectorType &pt)

print operator for enum associated to a dictionary

std::ostream &operator<<(std::ostream &out, const QuadRule &qr)
std::ostream &operator<<(std::ostream &out, const ReductionMethodType &rmt)
std::ostream &operator<<(std::ostream &out, const SetOperationType &sot)

print operator for enum associated to a dictionary

std::ostream &operator<<(std::ostream &out, const ShapesType &sh)
std::ostream &operator<<(std::ostream &out, const ShapeType &sh)
std::ostream &operator<<(std::ostream &out, const SobolevType &st)
std::ostream &operator<<(std::ostream &out, const Space &sp)

output space characteristics

std::ostream &operator<<(std::ostream &out, const SpaceType &st)
std::ostream &operator<<(std::ostream &out, const SpecialMatrix &sm)

print operator for enum associated to a dictionary

inline std::ostream &operator<<(std::ostream &out, const Spline &sp)
std::ostream &operator<<(std::ostream &out, const SplineBC &sbc)
std::ostream &operator<<(std::ostream &out, const SplineParametrization &sp)
std::ostream &operator<<(std::ostream &out, const SplineSubtype &sst)
std::ostream &operator<<(std::ostream &out, const SplineType &st)
template<typename T>
std::ostream &operator<<(std::ostream &out, const std::list<T> &l)

print a list

template<typename K, typename T>
std::ostream &operator<<(std::ostream &out, const std::map<K, T> &m)

print a map

template<typename K, typename T>
std::ostream &operator<<(std::ostream &out, const std::multimap<K, T> &m)

print a multimap

template<typename U, typename V>
std::ostream &operator<<(std::ostream &out, const std::pair<U, std::vector<V>> &p)

print a pair with value being a std::vector

template<typename U, typename V>
std::ostream &operator<<(std::ostream &out, const std::pair<U, V> &p)

print a pair

template<typename T>
std::ostream &operator<<(std::ostream &out, const std::set<T> &s)

print a set

std::ostream &operator<<(std::ostream &out, const StorageBuildType &sbt)
std::ostream &operator<<(std::ostream &out, const StorageType &st)
std::ostream &operator<<(std::ostream &out, const StrucType &st)
std::ostream &operator<<(std::ostream &out, const SupportType &st)
inline std::ostream &operator<<(std::ostream &out, const SymbolicFunction &fn)