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 Complexes ComplexVector
-
typedef dimen_t Dimen
-
typedef short unsigned int dimen_t
-
typedef for short unsigned int
-
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 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 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
- 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 MonomialT Monomial
-
typedef number_t Number
-
typedef size_t number_t
-
typedef for size_t
-
typedef Collection<number_t> Numbers
-
collection of Number
-
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 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 std::pair<real_t, real_t> RealPair
-
typedef Vector<real_t> Reals
-
typedef Reals RealVector
-
alias for vector type
-
typedef RK4T<real_t> RK4
-
typedef PCollection<Space> Spaces
-
collection of Space pointers
-
typedef Ball Sphere
-
typedef string_t String
-
typedef Collection<string_t> Strings
-
collection of String
-
typedef PCollection<TestFunction> TestFunctions
-
collection of TestFunction pointers
-
typedef unsigned long long uint_t
-
typedef PCollection<Unknown> Unknowns
-
collection of Unknown pointers
- 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
-
enumerator _noAccess
-
enum AdjacentStatus
-
Values:
-
enumerator _notAdjacent
-
enumerator _adjacentByElement
-
enumerator _adjacentBySide
-
enumerator _adjacentBySideOfSide
-
enumerator _adjacentByVertex
-
enumerator _notAdjacent
-
enum AlgebraicOperator
-
Values:
-
enumerator _product
-
enumerator _innerProduct
-
enumerator _crossProduct
-
enumerator _contractedProduct
-
enumerator _product
-
enum Alignment
-
Values:
-
enumerator _centerAlignment
-
enumerator _leftAlignment
-
enumerator _rightAlignment
-
enumerator _centerAlignment
-
enum AngleUnitType
-
Values:
-
enumerator _deg
-
enumerator _rad
-
enumerator _deg
-
enum ArgType
-
Values:
-
enumerator _pointArg
-
enumerator _vectorOfPointArg
-
enumerator _pointArg
-
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
-
enumerator _Dirichlet
-
enum CalType
-
type of calculation in Fock, Malyuzhinets function
Values:
-
enumerator _defaultCal
-
enumerator _filonCal
-
enumerator _trapezeCal
-
enumerator _approxCal
-
enumerator _interpCal
-
enumerator _laguerreCal
-
enumerator _adaptiveCal
-
enumerator _defaultCal
-
enum CloseNodeRule
-
Values:
-
enumerator _fmmCloseNodeRule
-
enumerator _fmmCloseNodeRule
-
enum ClusteringMethod
-
Values:
-
enumerator _regularBisection
-
enumerator _boundingBoxBisection
-
enumerator _cardinalityBisection
-
enumerator _uniformKdtree
-
enumerator _nonuniformKdtree
-
enumerator _regularBisection
-
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
-
enumerator _noComparison
-
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.
-
enumerator _success
-
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
-
enumerator _undefComputation
-
enum ComputeIntgFlag
-
Values:
-
enumerator _computeI1
-
enumerator _computeI2
-
enumerator _computeBoth
-
enumerator _computeI1
-
enum ConstCastStorage
-
Values:
-
enumerator _constCastSt
-
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
-
enumerator _notRegular
-
enum ConvAngleType
-
Values:
-
enumerator _noAngleConversion
-
enumerator _degToRad
-
enumerator _radToDeg
-
enumerator _noAngleConversion
-
enum CrackType
-
type of crack
Values:
-
enumerator _noCrack
-
enumerator _openCrack
-
enumerator _closedCrack
-
enumerator _noCrack
-
enum Ctype
-
Values:
-
enumerator _rm
-
enumerator rm
-
enumerator _shem
-
enumerator shem
-
enumerator _rm
-
enum DataAccess
-
Values:
-
enumerator _copy
-
enumerator _view
-
enumerator _copy
-
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
-
enumerator _IdComputation
-
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
-
enumerator _id
-
enum DimensionType
-
space or mesh dimension
Values:
-
enumerator _undefDim
-
enumerator _1D
-
enumerator _2D
-
enumerator _3D
-
enumerator _nD
-
enumerator _undefDim
-
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
-
enumerator _noDofCompatibility
-
enum DofLocalization
-
Values:
-
enumerator _nowhere
-
enumerator _onVertex
-
enumerator _onEdge
-
enumerator _onFace
-
enumerator _onElement
-
enumerator _nowhere
-
enum DofType
-
DoF type.
Values:
-
enumerator _feDof
-
enumerator _spDof
-
enumerator _otherDof
-
enumerator _feDof
-
enum DomainExtensionType
-
type of extension if an extended domain
Values:
-
enumerator _noExtension
-
enumerator _vertexExtension
-
enumerator _sideExtension
-
enumerator _ficticiousExtension
-
enumerator _noExtension
-
enum DomainType
-
type of domain
Values:
-
enumerator _undefDomain
-
enumerator _analyticDomain
-
enumerator _meshDomain
-
enumerator _compositeDomain
-
enumerator _pointsDomain
-
enumerator _undefDomain
-
enum ECMethod
-
method to translate essential condition to constraints
Values:
-
enumerator _undefECMethod
-
enumerator _dofEC
-
enumerator _internalNodeEC
-
enumerator _momentEC
-
enumerator _undefECMethod
-
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
-
enumerator _undefEcType
-
enum EigenComputationalMode
-
computational mode for eigen solvers
Values:
-
enumerator _davidson
-
enumerator _krylovSchur
-
enumerator _buckling
-
enumerator _cayley
-
enumerator _cshiftRe
-
enumerator _cshiftIm
-
enumerator _davidson
-
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
-
enumerator _eigenValueOnly
-
enum EigenSolverType
-
Eigen solvers.
Values:
-
enumerator _intern
-
enumerator _arpack
-
enumerator _intern
-
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
-
enumerator _decr_module
-
enum EllipsoidParametrizationType
-
Values:
-
enumerator _thetaphi
-
enumerator _stereographic
-
enumerator _bistereographic
-
enumerator _thetaphi
-
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
-
enumerator _noFactorization
-
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
-
enumerator _standardMap
-
enum FESubType
-
finite element subfamily
Values:
-
enumerator _standard
-
enumerator standard
-
enumerator _GaussLobattoPoints
-
enumerator GaussLobattoPoints
-
enumerator _firstFamily
-
enumerator firstFamily
-
enumerator _secondFamily
-
enumerator secondFamily
-
enumerator _standard
-
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
-
enumerator _Lagrange
-
enum FieldPart
-
Values:
-
enumerator _totalField
-
enumerator _diffractedField
-
enumerator _wedgeField
-
enumerator _totalField
-
enum FieldType
-
Values:
-
enumerator _noFieldType
-
enumerator _terminator
-
enumerator _lightOP
-
enumerator _lightFock
-
enumerator _shadowFock
-
enumerator _creeping
-
enumerator _focal
-
enumerator _noFieldType
-
enum FuncFormType
-
type of function (C++ function or TermVector)
Values:
-
enumerator _analytical
-
enumerator _interpolated
-
enumerator _analytical
-
enum FunctionPart
-
regular/singular part
Values:
-
enumerator _allFunction
-
enumerator allFunction
-
enumerator _regularPart
-
enumerator regularPart
-
enumerator _singularPart
-
enumerator singularPart
-
enumerator _allFunction
-
enum FunctType
-
type of functions (one Point variable, or two)
Values:
-
enumerator _function
-
enumerator _kernel
-
enumerator _function
-
enum GaussianGenerator
-
Values:
-
enumerator _BoxMullerGenerator
-
enumerator _MarsagliaGenerator
-
enumerator _BoxMullerGenerator
-
enum GeodesicType
-
Values:
-
enumerator _geodesic
-
enumerator _parametrizedGeodesic
-
enumerator _meshedGeodesic
-
enumerator _analyticGeodesic
-
enumerator _geometricGeodesic
-
enumerator _compositeGeodesic
-
enumerator _geodesic
-
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
-
enumerator _gesNone
-
enum GeometryRelationType
-
enum to describe the relative position of 2 geometries
Values:
-
enumerator _inside
-
enumerator _contains
-
enumerator _intersects
-
enumerator _outside
-
enumerator _inside
-
enum GeoOperation
-
Values:
-
enumerator _noneGeOp
-
enumerator _plusGeOp
-
enumerator _minusGeOp
-
enumerator _commonGeOp
-
enumerator _loopGeOp
-
enumerator _extrusionGeOp
-
enumerator _noneGeOp
-
enum Gtype
-
Values:
-
enumerator dual
-
enumerator nodal
-
enumerator dual
-
enum HMAdmissibilityRule
-
Values:
-
enumerator _noRule
-
enumerator _boxesRule
-
enumerator _noRule
-
enum HMApproximationMethod
-
Enumerated list of available HMatrix approximation method.
Values:
-
enumerator _noHMApproximation
-
enumerator _svdCompression
-
enumerator _rsvdCompression
-
enumerator _r3svdCompression
-
enumerator _acaFull
-
enumerator _acaPartial
-
enumerator _acaPlus
-
enumerator _noHMApproximation
-
enum HMatrixMethod
-
Values:
-
enumerator _standardHM
-
enumerator _denseHM
-
enumerator _standardHM
-
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
-
enumerator _undefIM
-
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
-
enumerator _undefFormat
-
enum Iptype
-
Values:
-
enumerator _grow
-
enumerator grow
-
enumerator _iprandom
-
enumerator iprandom
-
enumerator _grow
-
enum IterativeSolverType
-
Iterative solvers.
Values:
-
enumerator _noIterativeSolver
-
enumerator _cg
-
enumerator _cgs
-
enumerator _qmr
-
enumerator _bicg
-
enumerator _bicgstab
-
enumerator _gmres
-
enumerator _sor
-
enumerator _ssor
-
enumerator _noIterativeSolver
-
enum JumpType
-
type of jump
Values:
-
enumerator _nojump
-
enumerator _jump
-
enumerator _mean
-
enumerator _nojump
-
enum KeepStatus
-
Values:
-
enumerator _keep
-
enumerator _nokeep
-
enumerator _keep
-
enum KernelType
-
Values:
-
enumerator _generalKernel
-
enumerator _tensorKernel
-
enumerator _generalKernel
-
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
-
enumerator _en
-
enum LinearFormType
-
type of linear form
Values:
-
enumerator _undefLf
-
enumerator _intg
-
enumerator _doubleIntg
-
enumerator _bilinearAsLinear
-
enumerator _linearCombination
-
enumerator _composedLf
-
enumerator _explicitLf
-
enumerator _userLf
-
enumerator _undefLf
-
enum MatrixApproximationType
-
Values:
-
enumerator _lowRankApproximation
-
enumerator _fmmApproximation
-
enumerator _lowRankApproximation
-
enum MatrixConditioning
-
Enumerated list of matrix properties regarding invertibility.
Values:
-
enumerator _well_conditioned_matrix
-
enumerator _bad_conditioned_matrix
-
enumerator _non_invertible_matrix
-
enumerator _well_conditioned_matrix
-
enum MatrixPart
-
part of matrices
Values:
-
enumerator _all
-
enumerator _lower
-
enumerator _upper
-
enumerator _all
-
enum MemoryUnit
-
memory units
Values:
-
enumerator _byte
-
enumerator _kilobyte
-
enumerator _megabyte
-
enumerator _gigabyte
-
enumerator _terabyte
-
enumerator _byte
-
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
-
enumerator _defaultGenerator
-
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
-
enumerator _defaultMeshOption
-
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.
-
enumerator _errorsEigen
-
enum MsgType
-
Message types enumeration.
Values:
-
enumerator _error
-
enumerator _warning
-
enumerator _info
-
enumerator _error
-
enum Objtype
-
Objtype.
Values:
-
enumerator _cut
-
enumerator cut
-
enumerator _vol
-
enumerator vol
-
enumerator _cut
-
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
-
enumerator _undefOCShape
-
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
-
enumerator _undefOrientationType
-
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
-
enumerator _pk_none
-
enum Partitioning
-
type of partitioning
Values:
-
enumerator _nonePartition
-
enumerator _linearPartition
-
enumerator _splinePartition
-
enumerator _nonePartition
-
enum PolynomialSpace
-
Values:
-
enumerator _Pk
-
enumerator _PHk
-
enumerator _Qk
-
enumerator _Qks
-
enumerator _Rk
-
enumerator _SHk
-
enumerator _Dk
-
enumerator _DQk
-
enumerator _DQ2k
-
enumerator _DQ3k
-
enumerator _Pk
-
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
-
enumerator _noPrec
-
enum ProjectionType
-
Values:
-
enumerator _noProjection
-
enumerator _givenProjection
-
enumerator _dotnProjection
-
enumerator _crossnProjection
-
enumerator _noProjection
-
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
-
enumerator _noProjectorType
-
enum Ptype
-
Ptype.
Values:
-
enumerator _rec
-
enumerator rec
-
enumerator recursive
-
enumerator _kway
-
enumerator kway
-
enumerator _rec
-
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
-
enumerator _defaultRule
-
enum ReductionMethodType
-
reduction method to deal with essential conditions
Values:
-
enumerator _noReduction
-
enumerator _pseudoReduction
-
enumerator _realReduction
-
enumerator _penalizationReduction
-
enumerator _dualReduction
-
enumerator _noReduction
-
enum Rtype
-
Values:
-
enumerator _fm
-
enumerator fm
-
enumerator _greedy
-
enumerator greedy
-
enumerator _sep2sided
-
enumerator sep2sided
-
enumerator _sep1sided
-
enumerator sep1sided
-
enumerator _fm
-
enum SetOperationType
-
type of composition of domains
Values:
-
enumerator _union
-
enumerator _intersection
-
enumerator _union
-
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
-
enumerator _noShapes
-
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
-
enumerator _noShape
-
enum SingularityType
-
Values:
-
enumerator _notsingular
-
enumerator _r_
-
enumerator _logr
-
enumerator _loglogr
-
enumerator _notsingular
-
enum SmartPointerNullType
-
Values:
-
enumerator _smPtrNull
-
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
-
enumerator _L2
-
enum SorSolverType
-
SOR solver type.
Values:
-
enumerator _diagSorS
-
enumerator _upperSorS
-
enumerator _lowerSorS
-
enumerator _matrixVectorSorS
-
enumerator _diagSorS
-
enum SpaceType
-
space type
Values:
-
enumerator _feSpace
-
enumerator _spSpace
-
enumerator _subSpace
-
enumerator _prodSpace
-
enumerator _feSpace
-
enum SpecialMatrix
-
enumeration for special matrices
Values:
-
enumerator _zeroMatrix
-
enumerator zeroMatrix
-
enumerator _idMatrix
-
enumerator idMatrix
-
enumerator _onesMatrix
-
enumerator onesMatrix
-
enumerator _hilbertMatrix
-
enumerator hilbertMatrix
-
enumerator _zeroMatrix
-
enum SplineBC
-
spline boundary condition
Values:
-
enumerator _undefBC
-
enumerator _naturalBC
-
enumerator _clampedBC
-
enumerator _periodicBC
-
enumerator _undefBC
-
enum SplineParametrization
-
spline parametrization type
Values:
-
enumerator _undefParametrization
-
enumerator _xParametrization
-
enumerator _uniformParametrization
-
enumerator _chordalParametrization
-
enumerator _centripetalParametrization
-
enumerator _undefParametrization
-
enum SplineSubtype
-
subtype of spline
Values:
-
enumerator _noSplineSubtype
-
enumerator _SplineInterpolation
-
enumerator _SplineApproximation
-
enumerator _noSplineSubtype
-
enum SplineType
-
type of spline
Values:
-
enumerator _noSpline
-
enumerator _C2Spline
-
enumerator _CatmullRomSpline
-
enumerator _BSpline
-
enumerator _BezierSpline
-
enumerator _Nurbs
-
enumerator _noSpline
-
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
-
enumerator _csRow
-
enum StorageBuildType
-
storage build type
Values:
-
enumerator _undefBuild
-
enumerator _feBuild
-
enumerator _dgBuild
-
enumerator _diagBuild
-
enumerator _ecBuild
-
enumerator _globalBuild
-
enumerator _otherBuild
-
enumerator _undefBuild
-
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
-
enumerator _noStorage
-
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
-
enumerator _noSplitRule
-
enum StrucType
-
structure of matrices and vectors
Values:
-
enumerator _scalar
-
enumerator _vector
-
enumerator _matrix
-
enumerator _vectorofvector
-
enumerator _vectorofmatrix
-
enumerator _matrixofmatrix
-
enumerator _undefStrucType
-
enumerator _scalar
-
enum SupportType
-
DoF support type.
Values:
-
enumerator _undefSupport
-
enumerator _pointSupport
-
enumerator _faceSupport
-
enumerator _edgeSupport
-
enumerator _elementSupport
-
enumerator _undefSupport
-
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
-
enumerator _idop
-
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
-
enumerator _noSymmetry
-
enum TermType
-
Values:
-
enumerator _termUndef
-
enumerator _termVector
-
enumerator _termMatrix
-
enumerator _sutermVector
-
enumerator _sutermMatrix
-
enumerator _termUndef
-
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.
-
enumerator _passed
-
enum Trans_uvw
-
Values:
-
enumerator _uvw
-
enumerator _puv
-
enumerator _puw
-
enumerator _pvw
-
enumerator _su
-
enumerator _sv
-
enumerator _sw
-
enumerator _uvw
-
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
-
enumerator _noTransform
-
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.
-
enumerator _A
-
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
-
enumerator _n
-
enum UnknownType
-
type of unknown
Values:
-
enumerator _feUnknown
-
enumerator _spUnknown
-
enumerator _mixedUnknown
-
enumerator _feUnknown
-
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
-
enumerator _none
-
enum VarComparison
-
Values:
-
enumerator _index
-
enumerator _color
-
enumerator _index
-
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
-
enumerator _varUndef
Functions
- Parameter _nbIterations (0, "nbiterations")
- Parameter _residue (0.,"residue")
-
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
-
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, 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 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 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
-
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&)
-
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)
-
template<typename K, typename IteratorM>
inline void assemblyMat(K &mat, IteratorM itM, number_t nbu)
-
template<typename K, typename IteratorM>
inline void assemblyMat(Matrix<K> &mat, IteratorM 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 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
-
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)
-
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
-
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)
-
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.
-
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 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, 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)
-
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<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
-
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.
-
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)
-
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
-
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 real_t conj(const real_t&)
-
inline SymbolicFunction &conj(const SymbolicFunction &f)
-
TermMatrix conj(const TermMatrix &tm)
-
TermVector conj(const TermVector &tv)
-
conjugate TermVector
-
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)
-
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)
-
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
-
complex_t crossProduct(const complex_t &x, const complex_t &y)
-
complex_t crossProduct(const complex_t &x, const real_t &y)
-
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
-
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
-
real_t crossProduct2D(const Point &O, const Point &A, const Point &B)
-
returns the cross product OAxOB (2D)
-
template<typename K>
K crossProduct2D(const Vector<K> &u, const Vector<K> &v)
-
cross product in 2D, return a scalar
-
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 ¶ms, 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)
-
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:
-
tv – TermVector 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)
-
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)
-
template<typename K>
K dot(const Vector<K> &u, const Vector<K> &v)
-
inner product for real and complex
-
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)
-
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>
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 §ionMesh, const std::vector<Transformation*> &trs, const Parameter &p)
-
extrude a mesh using a list of transformations
-
inline Mesh extrude(const Mesh §ionMesh, const std::vector<Transformation*> &trs, const Parameter &p1, const Parameter &p2)
-
inline Mesh extrude(const Mesh §ionMesh, const std::vector<Transformation*> &trs, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
inline Mesh extrude(const Mesh §ionMesh, const std::vector<Transformation*> &trs, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
-
inline Mesh extrude(const Mesh §ionMesh, const std::vector<Transformation*> &trs, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
-
Mesh extrude(const Mesh §ionMesh, 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 §ionMesh, const Transformation &tr, const Parameter &p)
-
extrude a mesh using a transformation
-
inline Mesh extrude(const Mesh §ionMesh, const Transformation &tr, const Parameter &p1, const Parameter &p2)
-
inline Mesh extrude(const Mesh §ionMesh, const Transformation &tr, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
inline Mesh extrude(const Mesh §ionMesh, const Transformation &tr, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
-
inline Mesh extrude(const Mesh §ionMesh, const Transformation &tr, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
-
Mesh extrude(const Mesh §ionMesh, 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 §ionMesh, par_fun f, const Parameter &p)
-
extrude a mesh using a parametrization function
-
inline Mesh extrude(const Mesh §ionMesh, par_fun f, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
inline Mesh extrude(const Mesh §ionMesh, par_fun f, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
-
inline Mesh extrude(const Mesh §ionMesh, par_fun f, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
-
Mesh extrude(const Mesh §ionMesh, 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
-
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
-
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)
-
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 number_t getBasisIndex()
-
inline Vector<real_t> &getBx()
-
inline Vector<real_t> &getBy()
-
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 Dof &getDof()
-
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()
-
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 const Vector<real_t> &getNormalVectorFrom(const Parameters &pa)
-
inline Vector<real_t> &getNx()
-
inline const Vector<real_t> &getNxVectorFrom(const Parameters &pa)
-
inline Vector<real_t> &getNy()
-
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> &getTx()
-
inline Vector<real_t> &getTy()
-
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)\)
-
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)
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<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)
-
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<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
-
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, 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, 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 ¶ms)
-
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
-
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")
-
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
-
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 ¶ms, DiffOpType d)
-
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
-
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)
-
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, 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 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, 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 —————–— u1 u2 v1 v2 c1 |cu1 0 0 0 | | f1 ——-— ——— c2 | 0 cu2 0 0 | = | f2 ==> Cu = |cu1 0 | = fu= | f1 Cv = |cv1 cv2| = fv= | f3 c3 | 0 cv1 cv2 | | f3 | 0 cu2 | | f2 ———
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 returnedCase 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 —————-— u v c1 |cu1 0 0 0 | = | f1 ——— 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, typename V>
T minTpl(const T &a, const U &b, const V &c)
-
returns minimum of 3 values
-
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)
-
template<typename T>
ApproximateMatrix<T> &multMatrix(ApproximateMatrix<T> &A, LargeMatrix<T> &L, ApproximateMatrix<T> &AL)
-
template<typename T>
ApproximateMatrix<T> &multMatrix(LargeMatrix<T> &L, ApproximateMatrix<T> &A, ApproximateMatrix<T> &LA)
-
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)
-
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)
-
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
-
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)
-
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)
-
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)
-
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
-
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<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)
-
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<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)
-
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)
-
number_t numberOfCols(const real_t &v)
-
number_t numberOfRows(const complex_t &v)
-
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)
-
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
-
template<typename K>
bool operator!=(const Matrix<K> &a, const Matrix<K> &b)
-
matrix comparison (element by element)
-
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 …)
-
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<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)
-
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)
-
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)
-
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.
-
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, 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)
-
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)
-
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)
-
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)
-
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 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
-
inline SymbolicFunction &operator+(const complex_t &c, const SymbolicFunction &f)
-
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)
-
complex_t operator+(const int i, const complex_t &z)
-
complex_t operator+(const int_t i, const complex_t &z)
-
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)
-
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
-
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)
-
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)
-
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
-
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+
-
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, const K &x)
-
add a scalar to a vector “A+x”
-
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)
-
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
-
complex_t operator-(const int i, const complex_t &z)
-
complex_t operator-(const int_t i, const complex_t &z)
-
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)
-
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
-
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)
-
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)
-
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
-
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)
-
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, 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)
-
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)
-
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)
-
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)
-
template<typename K>
PolynomialT<K> operator/(const PolynomialT<K> &p, const K &k)
-
inline SymbolicFunction &operator/(const real_t &r, const SymbolicFunction &f)
-
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 DofComponent&, const DofComponent&)
-
less than
-
bool operator<(const GeomElement&, const GeomElement&)
-
operator < to sort elements
-
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<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 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 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 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 HMatrixNode<X, J> &hm)
-
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
-
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)
-
std::ostream &operator<<(std::ostream &out, const SymType &st)
-
std::ostream &operator<<(std::ostream &out, const TermType &tt)
-
std::ostream &operator<<(std::ostream &out, const TermVector &t)
-
inline std::ostream &operator<<(std::ostream &out, const Timer &T)
-
std::ostream &operator<<(std::ostream &out, const TransformType &tt)
-
std::ostream &operator<<(std::ostream &out, const UnitaryVector &uv)
-
std::ostream &operator<<(std::ostream &out, const UnknownType &ut)
-
std::ostream &operator<<(std::ostream &out, const ValueType &vt)
-
inline SymbolicFunction &operator<=(const complex_t &c, const SymbolicFunction &f)
-
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<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)
-
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&)
-
equality
-
bool operator==(const GeomElement&, const GeomElement&)
-
overload operator == to sort elements
-
template<typename K>
bool operator==(const Matrix<K> &a, const Matrix<K> &b)
-
matrix comparison (element by element)
-
bool operator==(const OperatorOnFunction&, const OperatorOnFunction&)
-
same operator on function
-
bool operator==(const OperatorOnKernel&, const OperatorOnKernel&)
-
same operator on kernel
-
bool operator==(const OperatorOnUnknown&, const OperatorOnUnknown&)
-
compare OperatorOnUnknown (same unknowns, same diff operators, same functions …)
-
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<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)
-
inline SymbolicFunction &operator>(const complex_t &c, const SymbolicFunction &f)
-
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<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)
-
inline SymbolicFunction &operator>=(const complex_t &c, const SymbolicFunction &f)
-
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<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)
-
std::istream &operator>>(std::istream&, Parameter&)
-
insertion operator
-
OperatorOnUnknown &operator^(const complex_t&, const Unknown&)
-
c^u
-
OperatorOnUnknown &operator^(const complex_t &val, OperatorOnUnknown &opu)
-
OperatorOnUnknown &operator^(const Function&, const Unknown&)
-
F^u.
-
OperatorOnUnknown &operator^(const Function&, OperatorOnUnknown&)
-
cross product syntax F^Op(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)
-
Matrix^u.
-
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&)
-
cross 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)
-
OperatorOnUnknown &operator^(const real_t&, const Unknown&)
-
r^u
-
inline SymbolicFunction &operator^(const real_t &r, const SymbolicFunction &f)
-
OperatorOnUnknown &operator^(const real_t &val, OperatorOnUnknown &opu)
-
inline SuTermVector operator^(const SuTermVector &s, const real_t &p)
-
inline SymbolicFunction &operator^(const SymbolicFunction &f, const real_t &r)
-
inline SymbolicFunction &operator^(const SymbolicFunction &f1, const SymbolicFunction &f2)
-
inline TermVector operator^(const TermVector &s, const real_t &p)
-
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)
-
tv^u
-
OperatorOnUnknown &operator^(const TermVector &tv, const Unknown &un)
-
tv^u
-
OperatorOnUnknown &operator^(const TermVector &tv, OperatorOnUnknown &opu)
-
tv^opu
-
OperatorOnUnknown &operator^(const TestFunction &un, const TermVector &tv)
-
u^tv
-
inline UnitaryVector operator^(const UnitaryVector &n1, const UnitaryVector &n2)
-
cross product of unitary vector (_nx^_ny) -> _nxcrossny
-
OperatorOnUnknown &operator^(const Unknown&, const complex_t&)
-
u^c
-
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 -ncross(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&)
-
cross product syntax V^Op(u)
-
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)
-
OperatorOnUnknown &operator^(OperatorOnUnknown&, const Function&)
-
cross product syntax Op(u)^F
-
OperatorOnUnknown &operator^(OperatorOnUnknown&, const OperatorOnFunction&)
-
cross product syntax Op(u)^op(F)
-
OperatorOnUnknown &operator^(OperatorOnUnknown&, const Value&)
-
cross product syntax Op(u)^V
-
OperatorOnUnknowns operator^(OperatorOnUnknown&, OperatorOnUnknown&)
-
opu ^ opv
-
OperatorOnUnknown &operator^(OperatorOnUnknown&, UnitaryVector)
-
-n^(n^u) or -n^curl(u) same as -ncrossncross(u) or -ncrosscurl(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^v
-
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
-
OperatorOnFunction &operator^(UnitaryVector, const Function&)
-
n^f same as ncross(f)
-
OperatorOnKernel &operator^(UnitaryVector, const Kernel&)
-
n^ker same as ncross(ker)
-
OperatorOnUnknown &operator^(UnitaryVector, const Unknown&)
-
n^u same as ncross(u)
-
OperatorOnFunction &operator^(UnitaryVector, OperatorOnFunction&)
-
n^opf
-
OperatorOnKernel &operator^(UnitaryVector, OperatorOnKernel&)
-
n^opker
-
OperatorOnUnknown &operator^(UnitaryVector, OperatorOnUnknown&)
-
n^(n^u) or n^curl(u) same as ncrossncross(u) or ncrosscurl(u)
-
OperatorOnUnknowns operator^(Unknown&, OperatorOnUnknown&)
-
u ^ opv
-
OperatorOnUnknowns operator^(Unknown&, Unknown&)
-
u ^ v
-
OperatorOnUnknown &operator|(const complex_t&, const Unknown&)
-
c|u
-
OperatorOnUnknown &operator|(const complex_t &val, OperatorOnUnknown &opu)
-
OperatorOnUnknown &operator|(const Function&, const Unknown&)
-
F|u.
-
OperatorOnUnknown &operator|(const Function&, OperatorOnUnknown&)
-
innerproduct syntax F|Op(u)
-
OperatorOnFunction &operator|(const Function&, UnitaryVector)
-
f|n same as ndot(f)
-
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 ndot(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
-
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)
-
Matrix|u.
-
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&)
-
innerproduct 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)
-
OperatorOnUnknown &operator|(const real_t&, const Unknown&)
-
r|u
-
OperatorOnUnknown &operator|(const real_t &val, OperatorOnUnknown &opu)
-
TermVector operator|(const TermVector&, const GeomDomain&)
-
restrict TermVector to a GeomDomain
-
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)
-
tv|u
-
OperatorOnUnknown &operator|(const TermVector &tv, const Unknown &un)
-
tv|u
-
OperatorOnUnknown &operator|(const TermVector &tv, OperatorOnUnknown &opu)
-
tv|opu
-
complex_t operator|(const TermVector &tv1, const TermVector &tv2)
-
main operator for inner or hermitian products
-
OperatorOnUnknown &operator|(const TestFunction &un, const TermVector &tv)
-
u|tv
-
inline UnitaryVector operator|(const UnitaryVector &n1, const UnitaryVector &n2)
-
inner product of unitary vector (_nx|_ny) -> _nxdotny
-
OperatorOnUnknown &operator|(const Unknown&, const complex_t&)
-
u|c
-
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 ndot(u)
-
LcOperatorOnUnknowns operator|(const Unknown &u, const LcOperatorOnUnknown &lcopv)
-
OperatorOnUnknown &operator|(const Unknown &un, const GeomDomain &dom)
-
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&)
-
innerproduct syntax V|Op(u)
-
OperatorOnFunction &operator|(const Vector<complex_t> &v, UnitaryVector n)
-
v|n same as f_v|n
-
OperatorOnFunction &operator|(const Vector<real_t> &v, UnitaryVector n)
-
v|n same as f_v|n
-
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)
-
OperatorOnFunction &operator|(OperatorOnFunction&, UnitaryVector)
-
opf|n
-
OperatorOnKernel &operator|(OperatorOnKernel&, UnitaryVector)
-
opker|n
-
OperatorOnUnknown &operator|(OperatorOnUnknown&, const Function&)
-
innerproduct syntax Op(u)|F
-
OperatorOnUnknown &operator|(OperatorOnUnknown&, const OperatorOnFunction&)
-
innerproduct syntax Op(u)|op(F)
-
OperatorOnUnknown &operator|(OperatorOnUnknown&, const Value&)
-
innerproduct syntax Op(u)|V
-
OperatorOnUnknowns operator|(OperatorOnUnknown&, OperatorOnUnknown&)
-
opu | opv
-
OperatorOnUnknown &operator|(OperatorOnUnknown&, UnitaryVector)
-
grad(u)|n same as ndotgrad(u)
-
OperatorOnUnknowns operator|(OperatorOnUnknown&, Unknown&)
-
opu | v
-
OperatorOnUnknown &operator|(OperatorOnUnknown &opu, const complex_t &val)
-
OperatorOnUnknown &operator|(OperatorOnUnknown &opu, const GeomDomain &dom)
-
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 Space &operator|(Space &sp, const GeomDomain &dom)
-
- Parameters:
-
dom – return sub-space or trace space on domain of a space, created if not exist
- 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 Vector<complex_t> &v)
-
n|v same as n|f_v
-
OperatorOnFunction &operator|(UnitaryVector n, const Vector<real_t> &v)
-
n|v same as n|f_v
-
OperatorOnFunction &operator|(UnitaryVector, const Function&)
-
n|f same as ndot(f)
-
OperatorOnKernel &operator|(UnitaryVector, const Kernel&)
-
n|ker same as ndot(ker)
-
OperatorOnUnknown &operator|(UnitaryVector, const Unknown&)
-
n|u same as ndot(u)
-
OperatorOnFunction &operator|(UnitaryVector, OperatorOnFunction&)
-
n|opf
-
OperatorOnKernel &operator|(UnitaryVector, OperatorOnKernel&)
-
n|opker
-
OperatorOnUnknown &operator|(UnitaryVector, OperatorOnUnknown&)
-
n|grad(u) same as ndotgrad(u)
-
OperatorOnUnknowns operator|(Unknown&, OperatorOnUnknown&)
-
u | opv
-
OperatorOnUnknowns operator|(Unknown&, Unknown&)
-
u | v
-
template<typename T>
ComparisonFunction<T> operator||(const ComparisonFunction<T> &cof1, const ComparisonFunction<T> &cof2)
-
inline SymbolicFunction &operator||(const SymbolicFunction &f1, const SymbolicFunction &f2)
-
CircArc operator~(const CircArc &c)
-
parametrization c+(a-c)cos(t)+(b-c)sin(t) t=(1-x)*thetamin + x*thetamax with x=pt[0] in [0,1]
copy a CircArc and reverse its orientation
-
EllArc operator~(const EllArc &e)
-
parametrization c+(a-c)cos(s)+(b-c)sin(s) with s = thetamin+ t*(thetamax-thetamin), t in [0,1]
copy a EllArc and reverse its orientation
-
ParametrizedArc operator~(const ParametrizedArc &s)
-
copy a ParametrizedArc and reverse its orientation
-
inline SymbolicTermMatrix &operator~(const TermMatrix &M)
-
string_t opName(SymbolicOperation o)
-
std::vector<std::vector<real_t>> outwardNormalsOfTriangle(const Point &T1, const Point &T2, const Point &T3)
-
computation of outward normals to the triangle whose vertices are T1, T2 and T3 normals[0] : outward normal of [T2T3] normals[1] : outward normal of [T1T3] normals[2] : outward normal of [T1T2]
outward normals to a triangle with given vertices
-
inline Vector<real_t> parametrization_BezierSpline(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_BSpline(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_C2Spline(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_CatmullRomSpline(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_CircArc(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_EllArc(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_Ellipse(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_EllipsoidSidePart(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_Nurbs(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_Parallelogram(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_ParametrizedArc(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_Piecewise(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_Quadrangle(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_Segment(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_SplineArc(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_SplineSurface(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline Vector<real_t> parametrization_Triangle(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call (Duffy)
-
inline Vector<real_t> parametrization_TrunkSidePart(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline void parfun_error(const string_t &com, DiffOpType d)
-
inline void parmap_error(const string_t &com, number_t d)
-
void parseEigenPars(const std::vector<Parameter> ps, const number_t nevmax, std::set<ParameterKey> &usedParams, EigPars &ep)
-
Parser of user parameters for eigen solvers (internal tool) Returns the list of parameter keys specified by the user (usedParams) and the parameter values to be used (ep).
Nota: the solver parameter is skipped.
-
template<typename T>
std::vector<T> &permute(std::vector<T> &v, std::vector<T> &vp, const std::vector<number_t> &p)
-
permutation of a vector v: vector to be permuted vp: permuted vector p: permutation (index starts from 0) permutation is driven by the permutation vector p that may be smaller than the vector v (but not larger!): vp[i]= v[p[i]] i=0, p.size()
-
template<typename T>
std::vector<T> &permuteInv(std::vector<T> &v, std::vector<T> &vp, const std::vector<number_t> &p)
-
inverse permutation of a vector v: vector to be permuted vp: permuted vector p: permutation (index starts from 0) permutation is driven by the permutation vector p that may be smaller than the vector v (but not larger!): vp[p[i]]= v[i] i=0, p.size()
-
SymbolicFunction phi_(_phi)
-
string_t physicalDomain(const std::vector<string_t> &sidenames, const string_t &sid, std::vector<PhysicalData> &pids)
-
create geo Physical domain string from sidenames and the type of side domain sd = “P” or “L” or “E” or “S”
create geo Physical domain string from sidenames and type of side domain sd = “P” or “L” or “E” or “S”
-
string_t physicalDomain(const std::vector<string_t> &sidenames, const Strings &sids, std::vector<PhysicalData> &pids)
-
create geo Physical domain string from sidenames and the type of side domain sd = “P” or “L” or “E” or “S”
create geo Physical domain string from sidenames and type of side domain sd = “P” or “L” or “E” or “S”
-
string_t physicalDomain(const string_t &domName, const string_t &sid, dimen_t dim, std::vector<PhysicalData> &pids)
-
create geo Physical domain string from sidenames and the type of side domain sd = “P” or “L” or “E” or “S”
create geo Physical domain string from domain name, surface id, and dimension
-
string_t physicalDomain(const string_t &domName, const Strings &sids, dimen_t dim, std::vector<PhysicalData> &pids)
-
create geo Physical domain string from sidenames and the type of side domain sd = “P” or “L” or “E” or “S”
create geo Physical domain string from domain name, surface ids, and dimension
-
string_t physicalDomainForExtrusion(const Geometry &g, const std::vector<string_t> &sidenames, const std::vector<std::pair<number_t, number_t>> &nbSidesPerComponent, const string_t &sd, const std::map<string_t, Strings> &inputs, std::vector<PhysicalData> &pids, real_t angle)
-
create geo Physical domain string from sidenames and the type of side domain sd = “P” or “L” or “E” or “S” for extrusion geometries
create geo Physical domain string from sidenames and the type of side domain sd = “P” or “L” or “E” or “S”
-
string_t physicalDomains(const std::vector<PhysicalData> &pids)
-
create geo Physical domain string from sidenames and the type of side domain sd = “P” or “L” or “E” or “S”
- static const real_t pi_over4 (pi_/4.)
-
around pi
-
void pictureCrack(const std::set<GeomElement*> &elts1, const std::set<GeomElement*> &elts2, const string_t &fn)
-
Vector<real_t> planeNormal(const Point &p, bool fromParameters, Parameters &pars)
-
function returning the plane normal stored in Parameters pars
-
inline Geometry planeSurfaceFrom(const Geometry &c, string_t domName = "")
-
definition of a geometry 2D from an union of boundaries 1D
-
void plot(const TermVector &tv, IOFormat iof)
-
plot a TermVector using external call of appropriate viewer
plotting a TermVector
-
inline Vector<real_t> point_to_xyz(const Point &p, Parameters &pa = defaultParameters)
-
const void *pointer(const Parameter&)
-
cast to const void *
-
bool pointInElement(const Point &P, const GeomElement &E, real_t tol)
-
int pointOrientation2D(const Point &A, const Point &B, const Point &C, real_t tol)
-
determines if points A, B and C are colinear (returns 0) or a clockwise triangle (returns 1) or a counter-clockwise triangle (returns 2). A, B and C are supposed to be 2D points (not checked)
determines if points A, B and C are colinear, a clockwise triangle or a counter-clockwise triangle
-
Quadrature *pointQuadrature(QuadRule rule, number_t deg)
-
template<class Geom>
Geom pointReflect(const Geom &g, const Parameter &p1)
-
apply a point reflection on a Geom (1 key) (template external)
-
template<class Geom>
Geom pointReflect(const Geom &g, const Point &c = Point(0., 0., 0.))
-
apply a point reflection on a Geom (template external)
-
inline Geometry pointReflect(const Geometry &g, const Parameter &p1)
-
apply a point reflection on a Geometry (1 key) (template external)
-
inline Geometry pointReflect(const Geometry &g, const Point &c = Point(0., 0., 0.))
-
apply a point reflection on a Geometry (template external)
-
Mesh pointReflect(const Mesh &m, const Parameter &p1)
-
apply a point reflection on a Mesh (1 key)
apply a point reflection on a Mesh (1 keys) (external)
-
Mesh pointReflect(const Mesh &m, const Parameter &p1, const Parameter &p2)
-
apply a point reflection on a Mesh (2 keys)
apply a point reflection on a Mesh (2 keys) (external)
-
Mesh pointReflect(const Mesh &m, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
apply a point reflection on a Mesh (3 keys)
apply a point reflection on a Mesh (3 keys) (external)
-
inline Point pointReflect(const Point &g, const Parameter &p1)
-
apply a point reflection on a Point (1 key) (template external)
-
inline Point pointReflect(const Point &g, const Point &c = Point(0., 0., 0.))
-
apply a point reflection on a Point (template external)
-
inline SuTermVector pow(const SuTermVector &s, const real_t &p)
-
inline SymbolicFunction &pow(const SymbolicFunction &f, const double &p)
-
inline TermVector pow(const TermVector &s, const real_t &p)
-
inline SymbolicFunction &power(const real_t &r, const SymbolicFunction &f)
-
inline SymbolicFunction &power(const SymbolicFunction &f, const real_t &r)
-
inline SymbolicFunction &power(const SymbolicFunction &f1, const SymbolicFunction &f2)
-
inline void preComputationFE(Space *subsp, const MeshDomain *dom, std::set<Quadrature*> &quads, dimen_t nbc, bool der1, bool der2, bool invertJacobian, bool nor, bool mapquad, bool useAux, bool isogeo)
-
void preComputationIE(const GeomDomain &dom, const Space *subsp, std::set<Quadrature*> &quads, dimen_t nbc, bool useAux, bool der1, bool der2, bool nor, bool extendedDomain, bool isogeo)
-
precompute geometry data and shape values on any element for any quadrature involved restricted to one order geometric element, take large place but computation is then faster in case of IE!!!
precompute geometry data and shape values on any element for any quadrature involved
dom: integration domain subsp: subspace providing the list of elements quads: list of quadratures nbc: number of components of the unknown useAux: use relt->qshvs_aux to store shapevalues (occurs when relt->qshvs_ is already used) der1: compute shape first derivatives if true der2: compute shape second derivatives if true nor: compute normal if true extendedDomain: true when dealing with an extended domain isogeo : if true, use domain parametrization in geometric computation
-
void preComputationIE_old(const Space *subsp, std::set<Quadrature*> &quads, dimen_t nbc, bool der1, bool der2, bool nor)
-
precompute geometry data and shape values on any element for any quadrature involved restricted to one order geometric element, take large place but computation is then faster in case of IE!!!
subsp: subspace providing the list of elements quads: list of quadratures nbc: number of components of the unknown der1: compute shape first derivatives if true der2: compute shape second derivatives if true nor: compute normal if true
-
TermVector prepareLinearSystem(TermMatrix&, TermVector&, MatrixEntry*&, VectorEntry*&, StorageType, AccessType, bool)
-
prepare linear system AX=B (internal tool)
-
void print(const Parameter &p)
-
void print(const Parameters&)
-
extern print to default ostream
-
void printAllInMemory(PrintStream &os, size_t vb)
-
void printAllInMemory(std::ostream &os, size_t vb)
-
template<typename T>
void printCoo(std::ostream &os, const Matrix<T> &v, number_t i, number_t j, real_t tol = theTolerance)
-
void printDense(std::ostream&, const complex_t&, number_t)
-
print complex scalar in dense format
-
void printDense(std::ostream&, const real_t&, number_t)
-
print real scalar in dense format
-
template<typename T>
void printDense(std::ostream &os, const Matrix<T> &v, number_t k)
-
print row of Matrix in dense format
-
void printListDiffOp(CoutStream&)
-
print the list of differential operators (check utility)
-
void printListDiffOp(std::ostream&)
-
print the list of differential operators (check utility)
-
inline void printMatrixStorages(PrintStream &os)
-
void printMatrixStorages(std::ostream&)
-
print list of MatrixStorage’s
-
template<typename Iterator>
void printRowWise(std::ostream &os, const string_t &title, number_t perRow, number_t width, Iterator it1, Iterator it2)
-
prints container of integer type on opened ostream with a constant number of entries per row; requires “operator<<” this is a stl-like utility: iterators are either stl::iterators or C-pointers
-
template<typename Iterator>
void printRowWise(std::ostream &os, const string_t &title, number_t perRow, number_t width, number_t prec, Iterator it1, Iterator it2)
-
prints container of real or complex type on opened ostream with a constant number of entries per row; requires “operator<<” this is a stl-like utility: iterators are either stl::iterators or C-pointers
-
template<typename K>
void printVector(std::ostream &os, const string_t &s, const std::vector<K> &v)
-
RefElement *prismLagrangeStd(const Interpolation *interp_p)
-
prismLagrangeStd construction of a prismatic Lagrange Reference Element by interpolation number
Extern class related functions and declarations.
-
Quadrature *prismQuadrature(QuadRule, number_t)
-
find or create quadrature rule over the unit prism
-
bool prismValid(const std::set<std::pair<number_t, Point>, SortPointsByXAndY> &face1, const std::set<std::pair<number_t, Point>, SortPointsByXAndY> &face2)
-
determines if a prism defined by its triangular faces is valid or not faces must coincide first point of each face has coordinates xmin and ymin
-
TermVector projection(const TermVector &X, Space &W, const Unknown &u, ProjectorType pt, KeepStatus keep)
-
TermVector projection(const TermVector &X, Space &W, dimen_t nbcW, const Unknown &u, ProjectorType pt, KeepStatus keep)
-
TermVector projection(const TermVector &X, Space &W, dimen_t nbcW, ProjectorType pt, KeepStatus keep)
-
TermVector projection(const TermVector &X, Space &W, ProjectorType pt, KeepStatus keep)
-
Point projectionOfPointOnPlane(const Point &M, const Point &P1, const Point &P2, const Point &P3, real_t &h, bool only3D)
-
orthogonal projection of point M on plane defined by 3 non aligned given points (P1, P2, and P3) returns the projected point P and the distance h between M and the plane
orthogonal projection of a point on a plane
-
std::pair<Point, Point> projectionOfSegmentOnPlane(const Point &S1, const Point &S2, const Point &P1, const Point &P2, const Point &P3, real_t &h)
-
orthogonal projection of segment defined by the points T1 and T2 on the parallel plane defined by the 3 non aligned given points S1, S2, and S3 returns the projected points and the distance h between the segment and the plane
orthogonal projection of a segment on a parallel plane
-
std::vector<Point> projectionOfTriangleOnPlane(const Point &T1, const Point &T2, const Point &T3, const Point &P1, const Point &P2, const Point &P3, real_t &h)
-
orthogonal projection of triangle defined by the points T1, T2 and T3 on the parallel plane defined by the 3 non aligned given points P1, P2, and P3 returns the projected points and the distance h between the triangle and the plane
orthogonal projection of a triangle on a parallel plane
-
Point projectionOnQuadrangle(const Point &M, const Point &Q1, const Point &Q2, const Point &Q3, const Point &Q4, real_t &h)
-
projection (minimal distance) of point M on quadrangle given by vertices Q1, Q2, Q3, Q4 (assuming Q1, Q2, Q3, Q4 are coplanar) returns the projected point P and the distance h=MP (2D-3D)
projection (minimal distance) of point M on quadrangle given points Q1, Q2, Q3 and Q4 (assuming Q1, Q2, Q3 and Q4 are coplanar)
-
Point projectionOnSegment(const Point &M, const Point &A, const Point &B, real_t &h)
-
projection (minimal distance) of a point M on segment [AB] returns the projected point P and the distance h=MP
projection (minimal distance) of a point M on the segment defined points A, B
-
Point projectionOnStraightLine(const Point &M, const Point &A, const Point &B, real_t &h, bool only3D)
-
orthogonal projection of a point M on a straight line defined by 2 points (A and B) returns the projected point P and the distance h=MP
orthogonal projection of a point on a straight line
-
Point projectionOnTetrahedron(const Point &M, const Point &T1, const Point &T2, const Point &T3, const Point &T4, real_t &h)
-
projection (minimal distance) of point M on tetrahedron given vertices T1, T2, T3 and T4 returns the projected point P and the distance h=MP (3D)
projection (minimal distance) of point M on tetrahedron given points T1, T2, T3 and T4
-
Point projectionOnTriangle(const Point &M, const Point &T1, const Point &T2, const Point &T3, real_t &h)
-
projection (minimal distance) of point M on triangle given vertices T1, T2, and T3 returns the projected point P and the distance h=MP (2D-3D)
projection (minimal distance) of point M on triangle given vertices T1, T2, and T3
-
RefElement *pyramidLagrangeStd(const Interpolation *interp_p)
-
pyramidLagrangeStd construction of a pyramidatic Lagrange Reference Element by interpolation number
Extern class related functions and declarations.
-
Quadrature *pyramidQuadrature(QuadRule, number_t)
-
find or create quadrature rule over the unit pyramid
-
template<typename T, typename K>
void QR(const LargeMatrix<T> &mat, LargeMatrix<T> *&matR, bool computeQ, LargeMatrix<T> *&matQ, std::vector<K> *rhs, bool &withColPermutation, std::vector<number_t> *&numcol_p, number_t &stop, real_t epsStop = 100 * theEpsilon)
-
QR factorization of rectangular matrix pxn using Housolder method generic algorithm using a column algorithm with dynamic storage creation of matrix results.
mat: matrix to factorize matR: upper triangular matrix p x n stored as ColCsStorage (pointer) matQ: unitary matrix of size p x p stored as RowCsStorage (pointer) computeQ: if true the matrix Q is computed else not rhs: right hand side vector pointer (modified), if 0 no rhs withColPermutation: if true, column may be permuted (more stable factorization). if false and algorithm fails, withColPermutation is forced to true and algorithm is rerun numcol_p: renumbering of columns if they have been permuted (pointer) stop: iteration number when the algorithm stops: stop = nbr when algorithm exits normally
Note 1 : to avoid unsightly rounding effect in reduction, values < 10*theEspsilon (~10^-15) are rounded to 0 Note 2 : when there are constraint redanduncies, it may occur some average effects. For instance, two Dirichlet conditions at the same point (in Lagrange interpolation) with different right hand side produce a Dirichlet condition with a mean of right hand sides It may be inconvenient !
-
void QR(const MatrixEntry &mat, MatrixEntry &matR, bool computeQ, MatrixEntry &matQ, VectorEntry *rhs, bool &withColPermutation, std::vector<number_t> *&numcol, number_t &stop, real_t epsStop)
-
QR factorization of rectangular matrix pxn with p<=n using Housolder method generic algorithm using a column algorithm with dynamic storage creation of matrix results mat: matrix to factorize matR: upper triangular matrix p x n stored as ColCsStorage matQ: unitary matrix of size p x p stored as RowCsStorage computeQ: if true the matrix Q is computed else not rhs: right hand side vector pointer (if 0 not reduction for rhs) withColPermutation: if true, column may be permuted (more stable factorization), may be forced by algorithm numcol_p: renumbering of columns if they have been permuted (pointer) stop: iteration number when the algorithm stops: stop = nbr when algorithm exits normally.
QR factorisation.
-
template<>
void qr(const real_t*, number_t, number_t, real_t*, real_t*)
-
general template QR using Eigen, assuming A, Q, R are pointers to first value of dense row matrix A: pointer to dense row matrix m,n: number of rows and cols of A Q, R: pointer to QR factors as dense row matrices, has to be allocated before
-
template<>
void qr(const real_t *A, number_t m, number_t n, real_t *Q, real_t *R)
-
general template QR using Eigen, assuming A, Q, R are pointers to first value of dense row matrix A: pointer to dense row matrix m,n: number of rows and cols of A Q, R: pointer to QR factors as dense row matrices, has to be allocated before
-
template<typename T>
void qr(const T *A, number_t m, number_t n, T *Q, T *R)
-
general template QR using Eigen, assuming A, Q, R are pointers to first value of dense row matrix A: pointer to dense row matrix m,n: number of rows and cols of A Q, R: pointer to QR factors as dense row matrices, has to be allocated before
-
template<typename T, typename K>
void QRSolve(const LargeMatrix<T> &mat, LargeMatrix<T> *mat2, std::vector<K> *rhs)
-
template<typename T, typename K>
void QRSolve(const LargeMatrix<T> &mat, std::vector<std::vector<std::pair<number_t, K>>> &rhss)
-
solve upper triangular system pxp with diag = Id with a list of right hand sides each right hand side is a vector of pairs (row index, value) using a column algorithm with dynamic storage update p | 1 x … x | | 0 1 … x | at = | … | | 0 0 1 x | | 0 0 1 |
mat: upper triangular matrix rhss: list of right hand sides
rhss is overwritten !
-
void QRSolve(const MatrixEntry &mat, MatrixEntry *matR, VectorEntry *rhs)
-
solve an pxp upper triangular system mat: pxp upper triangular matrix with its diagonal coeffs = 1, matR: rectangular matrix p x m, understood as a list of right hand side vectors of size p (if 0 no computation for matR) rhs: a unique right hand side vector pointer (if 0 no computation for rhs)
QR solver (only in scalar representation)
At the end, rhs contains the vector x solution of mat * x = rhs and matR contains the vectors x1, x2, …xm solutions of mat * xj = matRj Note: at the end, matR is stored using a cs column storage
-
Quadrature *quadrangleQuadrature(QuadRule, number_t)
-
find or create quadrature rule over the unit square
-
std::vector<complex_t> quadratic(complex_t a, complex_t b, complex_t c)
-
computes roots of degree 2 complex polynomial
-
std::vector<complex_t> quadratic(real_t a, real_t b, real_t c)
-
computes roots of degree 2 real polynomial
-
template<typename T>
LowRankMatrix<T> &r3svd(const LargeMatrix<T> &lm, LowRankMatrix<T> &lrm, real_t eps = theTolerance, number_t t = 0, number_t p = 0, number_t q = 0, number_t maxit = 0)
-
r3svd of a LargeMatrix
R3SVD compression method of a LargeMatrix to a LowRankMatrix Lr T: type of the result lm: LargeMatrix to be compressed eps: energy threshold t: number of sampling p: number of over sampling q: power number (q=0 gives the standard r3svd) maxit: maximum of iterations if t = 0, the parameters t, p, q, maxit are determined by function regarding the matrix dimensions lrm: output LowRankMatrix.
-
template<typename M, typename T>
void r3svd(M &A, real_t eps, number_t &rk, std::vector<T> &U, std::vector<T> &D, std::vector<T> &V, number_t t = 0, number_t p = 0, number_t q = 0, number_t maxit = 0)
-
improved Random SVD compression method of a matrix of class M from https://arxiv.org/ftp/arxiv/papers/1605/1605.08134.pdf T: type of the result A: matrix of class M, requires the member functions: M::numberOfRows(), M::numberOfCols(), M::squaredNorm() M::multMatrixRow(T* M, T* R, number_t p) i.e M*matRow M::multLeftMatrixRow(T* M, T* R, number_t p) i.e matRow*M eps: energy threshold rk: rank of r3svd on output U, V: vectors storing dense row matrices S: vector storing S t: number of sampling p: number of over sampling q: power number (q=0 gives the standard r3svd) maxit: maximum of iterations if t = 0, the parameters t, p, q, maxit are determined by function regarding the matrix dimensions
-
template<typename T>
void r3svd(Matrix<T> &A, Matrix<T> &U, Vector<T> &D, Matrix<T> &V, real_t eps = theTolerance, number_t t = 0, number_t ts = 0, number_t q = 0, number_t maxit = 0)
-
Improved random SVD with precision truncation T: type of the matrix (real or complex) A: Matrix to be be factorized eps: energy threshold U,D,V: SVD factors A~U*D*V’ (output) t, ts: number of sampling and oversampling q: power number (q=0 gives the standard r3svd) maxit: maximum of restart if t = 0, the parameters t, p, q and maxit are determined by function regarding the matrix dimensions.
-
template<typename T>
void r3svd(T *A, number_t m, number_t n, real_t eps, number_t &rk, T *U, T *D, T *V, number_t t = 0, number_t p = 0, number_t q = 0, number_t maxit = 0)
-
improved Random SVD compression method of a row dense matrix given by pointer from https://arxiv.org/ftp/arxiv/papers/1605/1605.08134.pdf
T: type of the result A: pointer to the first element of the dense matrix to be compressed, stored as row major access (dense row) m, n: number of rows and cols of matrix to be compressed eps: energy threshold rk: rank of r3svd on output U, V: pointer to dense row matrices, has to be allocated before D: pointer to S vector, has to be allocated before t: number of sampling p: number of over sampling q: power number (q=0 gives the standard r3svd) maxit: maximum of iterations if t = 0, the parameters t, p, q, maxit are determined by function regarding the matrix dimensions
note: may be used when A is a pointer to a m x n col dense matrix, by permuting arguments when calling: r3svd(A,n,m,eps,V,D,U, t, p ,q, maxit) produces the R3SVD of A = U*D*V’ where U, V are pointers to row dense matrices!
-
SymbolicFunction r_(_r)
- AngleUnit rad_ (_rad, defaultAngleUnit, 0.)
-
template<typename T, typename N>
void ranks(const std::map<T, N> &M, const std::vector<T> &V, std::vector<N> &R)
-
return in R the ranks of V components in U vector, not assuming that U and V are sorted, N index starts from 1 except if V[k] is not found in map then R[k]=0 faster than previous ranks function but requires a map
-
template<typename T, typename N>
void ranks(const std::vector<T> &U, const std::vector<T> &V, std::vector<N> &R)
-
return in R ranks of V components in U vector, not assuming that U and V are sorted index starts from 1 expansive if U and V are large
-
template<typename itT, typename itN>
void ranks(itT itu_b, itT itu_e, itT itv_b, itT itv_e, itN itr_b)
-
return in R ranks of V components in U container, not assuming that U and V are sorted (index starts from 1) expansive if U and V are large itu_b, itu_e: begin and end iterator for container U itv_b, itv_e: begin and end iterator for container V itr_b: begin iterator for container R (R has to be sized to V size before)
itN must support conversion from Number
-
template<class T_>
void readfmt2(T_ &data, const string_t &filename, const vector<CrackData> &crackData, number_t &nb_geom_Pts, vector<real_t> &PointCoords, vector<number_t> &nodeNum, bool &planeDomain, bool &curveDomain, number_t &nb_elts, vector<GELT> &gelts, ELTDEFMAP &elMap, dimen_t &elementDimx, const GMSHMAP &gmMap, set<number_t> &domSet, map<number_t, set<number_t>> &crackedDomSet, map<number_t, number_t> &it_inCrackData, map<number_t, string_t> &domNameMap, bool &isMadeOfSimplices_)
-
template<class T_>
void readfmt4(T_ &data, const string_t &filename, const vector<CrackData> &crackData, number_t &nb_geom_Pts, vector<real_t> &PointCoords, vector<number_t> &nodeNum, bool &planeDomain, bool &curveDomain, number_t &nb_elts, vector<GELT> &gelts, ELTDEFMAP &elMap, dimen_t &elementDimx, const GMSHMAP &gmMap, set<number_t> &domSet, map<number_t, set<number_t>> &crackedDomSet, map<number_t, number_t> &it_inCrackData, map<number_t, string_t> &domNameMap, bool &isMadeOfSimplices_)
-
inline void readInt(FILE *data, number_t &Val)
-
inline void readInt(std::ifstream &data, number_t &Val)
-
void readItem(std::istream&, complex_t&, bool isreal = false)
-
read complex item from istream
-
void readItem(std::istream&, real_t&, bool isreal = true)
-
read real item from istream
-
template<class T_>
void readPartitionedEntities(T_ &data, size_t numEnt, Mn_Pnn &parentDT, Mn_Sn &partparttag, Mn_Sn &partphystag)
-
string_t readPlyElement(PlyElement &e, std::istream &data)
-
read element and its properties
-
inline void readRea(FILE *data, real_t &Val)
-
inline void readRea(std::ifstream &data, real_t &Val)
-
inline bool readStr(FILE *data, string_t &Val)
-
inline bool readStr(std::ifstream &data, string_t &Val)
-
real_t real(const Parameter&)
-
cast to real_t
-
inline SymbolicFunction &real(const SymbolicFunction &f)
-
TermMatrix real(const TermMatrix &tm)
-
return real part as a real TermMatrix
-
TermVector real(const TermVector &tv)
-
extracts real part
-
Vector<Vector<real_t>> real(const Vector<Vector<complex_t>> &a)
-
abs of a vector of complex vectors
real part of a vector of complex vectors
-
Vector<Vector<real_t>> real(const Vector<Vector<real_t>> &a)
-
abs of a vector of real vectors
real part of a vector of real vectors
-
real_t real_const_fun(const Point &P, Parameters &pa)
-
Matrix<real_t> real_matrix_const_fun(const Point &P, Parameters &pa)
-
Vector<real_t> real_vector_const_fun(const Point &P, Parameters &pa)
-
inline real_t realPart(const complex_t&)
-
inline real_t realPart(const real_t&)
-
inline SuTermVector realPart(const SuTermVector &s)
-
mathematical function applied to SuTermVector
-
template<typename T1_iterator, typename R_iterator>
void realTpl(T1_iterator b1, T1_iterator e1, R_iterator Rb)
-
returns real part of vector entries: R[i] = real(T1[i])
-
void rebuild(GeomDomain &dom, const ComparisonFunction<> &cr)
-
rebuild one plain domain
rebuild 1 plain domain
-
void rebuild(GeomDomain &dom, const ComparisonFunction<> &cr, GeomDomain &sdom)
-
rebuild one plain domain and one side domain
rebuild 1 plain domain and one side domain rebuild 2 plain domains
-
void rebuild(GeomDomain &dom1, const ComparisonFunction<> &cr1, GeomDomain &dom2, const ComparisonFunction<> &cr2)
-
rebuild 2 plain domains
-
void rebuild(GeomDomain &dom1, const ComparisonFunction<> &cr1, GeomDomain &dom2, const ComparisonFunction<> &cr2, GeomDomain &sdom)
-
rebuild 2 plain domains and one side domain
-
void rebuild(GeomDomain &dom1, const ComparisonFunction<> &cr1, GeomDomain &dom2, const ComparisonFunction<> &cr2, GeomDomain &sdom1, GeomDomain &sdom2)
-
rebuild 2 plain domains and two side domains
-
void rebuild(std::vector<GeomDomain*> &doms, const std::vector<ComparisonFunction<>> &crs, const std::set<GeomDomain*> &sidedoms)
-
rebuild some plain domains from some values given by a single unknown TermVector and criteria the rebuilding works as follow:
rebuild some plain domains
rebuild each of given domains by using ComparisonFunction and element color
update side domains related to given domains (boundary or interface)
ComparaisonFunction’s are objects that handles simple boolean expressions involving boolean operator (e.g. _color == 0) For instance to update two domains dom1, dom2 distinguished by values 0 and 1 rebuild(tv, dom1, _color==0, dom2, _color==1);
doms: list of domain to be rebuilt crs: list of comparison criteria sidedoms: set of side domains to be rebuilt, if empty rebuild all side domains found rebuild some plain domains
-
template<typename T, typename Iterator>
T rectangle(number_t n, real_t h, Iterator itb, T &intg)
-
uniform rectangle method from a list of n values uniformaly distributed (step h) n: number of values h: step itb: first position in the list of values intg: value of integral: h sum k=1,n v_k
-
template<typename T>
T rectangle(T (*f)(real_t), real_t a, real_t b, number_t n)
-
uniform rectangle method on [a,b] interval from a function and a number of subdivisions
-
template<typename T>
T rectangle(T (*f)(real_t, Parameters&), Parameters &pars, real_t a, real_t b, number_t n)
-
uniform rectangle method on [a,b] interval from a function with parameters and a number of subdivisions
-
void reduceMatrix(MatrixEntry *&mat, std::vector<DofComponent> &cdofsr, std::vector<DofComponent> &cdofsc, std::vector<DofComponent> &redcdofsr, std::vector<DofComponent> &redcdofsc, const Constraints *cu, const Constraints *cv)
-
full reduction of a pseudo-reduced matrix, assuming scalar matrix entries create a new storage from old one by eliminating row en col index related to eliminated dof note: cdofsr and cdofsc are not modified !!!
full reduction of a pseudo-reduced matrix, assuming scalar matrix entries
mat: the matrix to be reduced cdofsr: row dof numbering of mat cdofsc: col dof numbering of mat redcdofsr: row dof numbering of reduced mat redcdofsc: col dof numbering of reduced mat cu, cv: u and v constraint pointers
-
template<class Geom>
Geom reflect2d(const Geom &g, const Parameter &p1)
-
apply a reflection 2d on a Geom (1 key) (template external)
-
template<class Geom>
Geom reflect2d(const Geom &g, const Parameter &p1, const Parameter &p2)
-
apply a reflection 2d on a Geom (2 keys) (template external)
-
template<class Geom>
Geom reflect2d(const Geom &g, const Point &c, real_t dx, real_t dy = 0.)
-
apply a reflection 2d on a Geom (template external)
-
template<class Geom>
Geom reflect2d(const Geom &g, const Point &c = Point(0., 0.), std::vector<real_t> d = std::vector<real_t>(2, 0.))
-
apply a reflection 2d on a Geom (template external)
-
inline Geometry reflect2d(const Geometry &g, const Parameter &p1)
-
apply a reflection 2d on a Geometry (1 key) (template external)
-
inline Geometry reflect2d(const Geometry &g, const Parameter &p1, const Parameter &p2)
-
apply a reflection 2d on a Geometry (2 keys) (template external)
-
inline Geometry reflect2d(const Geometry &g, const Point &c, real_t dx, real_t dy = 0.)
-
apply a reflection 2d on a Geometry (template external)
-
inline Geometry reflect2d(const Geometry &g, const Point &c = Point(0., 0.), std::vector<real_t> d = std::vector<real_t>(2, 0.))
-
apply a reflection 2d on a Geometry (template external)
-
Mesh reflect2d(const Mesh &m, const Parameter &p1)
-
apply a reflection2d on a Mesh (1 key)
apply a reflection 2D on a Mesh (1 key) (external)
-
Mesh reflect2d(const Mesh &m, const Parameter &p1, const Parameter &p2)
-
apply a reflection2d on a Mesh (2 keys)
apply a reflection 2D on a Mesh (2 keys) (external)
-
Mesh reflect2d(const Mesh &m, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
apply a reflection2d on a Mesh (3 keys)
apply a reflection 2D on a Mesh (3 keys) (external)
-
Mesh reflect2d(const Mesh &m, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
-
apply a reflection2d on a Mesh (4 keys)
apply a reflection 2D on a Mesh (4 keys) (external)
-
Mesh reflect2d(const Mesh &m, const Point &c, real_t ux, real_t uy = 0.)
-
apply a reflection2d on a Mesh (external)
apply a reflection 2D on a Mesh (external)
-
Mesh reflect2d(const Mesh &m, const Point &c, std::vector<real_t> u = std::vector<real_t>(2, 0.))
-
apply a reflection2d on a Mesh (external)
apply a reflection 2D on a Mesh (external)
-
inline Point reflect2d(const Point &g, const Parameter &p1)
-
apply a reflection 2d on a Point (1 key) (template external)
-
inline Point reflect2d(const Point &g, const Parameter &p1, const Parameter &p2)
-
apply a reflection 2d on a Point (2 keys) (template external)
-
inline Point reflect2d(const Point &g, const Point &c, real_t dx, real_t dy = 0.)
-
apply a reflection 2d on a Point (template external)
-
inline Point reflect2d(const Point &g, const Point &c = Point(0., 0.), std::vector<real_t> d = std::vector<real_t>(2, 0.))
-
apply a reflection 2d on a Point (template external)
-
template<class Geom>
Geom reflect3d(const Geom &g, const Parameter &p1)
-
apply a reflection 3d on a Geom (1 key) (template external)
-
template<class Geom>
Geom reflect3d(const Geom &g, const Parameter &p1, const Parameter &p2)
-
apply a reflection 3d on a Geom (2 keys) (template external)
-
template<class Geom>
Geom reflect3d(const Geom &g, const Point &c, real_t nx, real_t ny, real_t nz = 0.)
-
apply a reflection 3d on a Geom (template external)
-
template<class Geom>
Geom reflect3d(const Geom &g, const Point &c = Point(0., 0., 0.), std::vector<real_t> n = std::vector<real_t>(3, 0.))
-
apply a reflection 3d on a Geom (template external)
-
inline Geometry reflect3d(const Geometry &g, const Parameter &p1)
-
apply a reflection 3d on a Geometry (1 key) (template external)
-
inline Geometry reflect3d(const Geometry &g, const Parameter &p1, const Parameter &p2)
-
apply a reflection 3d on a Geometry (2 keys) (template external)
-
inline Geometry reflect3d(const Geometry &g, const Point &c, real_t nx, real_t ny, real_t nz = 0.)
-
apply a reflection 3d on a Geometry (template external)
-
inline Geometry reflect3d(const Geometry &g, const Point &c = Point(0., 0., 0.), std::vector<real_t> n = std::vector<real_t>(3, 0.))
-
apply a reflection 3d on a Geometry (template external)
-
Mesh reflect3d(const Mesh &m, const Parameter &p1)
-
apply a reflection3d on a Mesh (1 key)
apply a reflection 3D on a Mesh (1 key) (external)
-
Mesh reflect3d(const Mesh &m, const Parameter &p1, const Parameter &p2)
-
apply a reflection3d on a Mesh (2 keys)
apply a reflection 3D on a Mesh (2 keys) (external)
-
Mesh reflect3d(const Mesh &m, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
apply a reflection3d on a Mesh (3 keys)
apply a reflection 3D on a Mesh (3 keys) (external)
-
Mesh reflect3d(const Mesh &m, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
-
apply a reflection3d on a Mesh (4 keys)
apply a reflection 3D on a Mesh (4 keys) (external)
-
Mesh reflect3d(const Mesh &m, const Point &c, real_t ux, real_t uy, real_t uz = 0.)
-
apply a reflection3d on a Mesh (external)
apply a reflection 3D on a Mesh (external)
-
Mesh reflect3d(const Mesh &m, const Point &c, std::vector<real_t> u = std::vector<real_t>(3, 0.))
-
apply a reflection3d on a Mesh (external)
apply a reflection 3D on a Mesh (external)
-
inline Point reflect3d(const Point &g, const Parameter &p1)
-
apply a reflection 3d on a Point (1 key) (template external)
-
inline Point reflect3d(const Point &g, const Parameter &p1, const Parameter &p2)
-
apply a reflection 3d on a Point (2 keys) (template external)
-
inline Point reflect3d(const Point &g, const Point &c, real_t nx, real_t ny, real_t nz = 0.)
-
apply a reflection 3d on a Point (template external)
-
inline Point reflect3d(const Point &g, const Point &c = Point(0., 0., 0.), std::vector<real_t> n = std::vector<real_t>(3, 0.))
-
apply a reflection 3d on a Point (template external)
-
template<typename T, template<class> class OP, class CP, template<class> class KP, template<class> class SP, template<class> class CNP>
inline void release(SmartPtr<T, OP, CP, KP, SP, CNP> &sp, typename SP<T>::StoredType &p)
-
string_t &removeChar(string_t &s, char c)
-
remove all char c from string s
-
void removeElts(std::set<GeomElement*> &elts, const std::set<number_t> &vSideCrack)
-
bool removeEndParenthesis(string_t &s)
-
void removePlusMinus(string_t &s)
-
template<typename K>
void removeSmallValue(MatrixEigenDense<K> &mat)
-
std::vector<number_t> renumber(const Space *sp1, const Space *sp2)
-
renumber dofs of a space (sp2) along dof numbering of space (sp1) if the spaces are the same nothing is done: the result is of size 0 if the spaces are not the same: rn is the renumbering vector if sp2 is larger than sp1 : exemple sp1 = 8 4 5 1 4 7 6 sp2 = 3 5 7 4 rn = 0 3 6 5 0 means that 3 does not belong to sp1 3 means that 5 is the third element of sp1 … if sp1 is larger than sp2 : exemple sp1 = 4 3 6 8 sp2 = 1 2 3 4 5 6 7 8 9 rn = 0 0 2 1 0 3 0 8 0 0 means that 1,2,5, … does not belong to sp1 2 means that 3 is the second element of sp1 …
renumber dofs of a space along dof numbering of an another space
return sub-space or trace space on domain of a space, created if not exist
-
std::vector<number_t> renumber(const std::vector<DofComponent> &cdv1, const std::vector<DofComponent> &cdv2)
-
renumber cdofs vector (cdv2) along cdofs vector (cdv1) assuming cdof of cdv1 are unique if cdv1=cdv2 nothing is done: the result is of size 0 if cdv1!=cdv2 : rn is the renumbering vector ex: cdv1 = cd8 cd4 cd5 cd1 cd4 cd7 cd6 cdv2 = cd3 cd5 cd7 cd4 rn = 0 3 6 5 0 means that cd3 does not belong to cdv1 3 means that cd5 is the third cdofs of cdv1 …
renumbering cdofs utility
-
string_t &replaceChar(string_t &s, char c1, char c2)
-
replace all char c1 by char c2 in string s
replace char c1 by char c2 in string s
-
string_t &replaceString(string_t &s, const string_t &s1, const string_t &s2)
-
replace all string s1 by string s2 in string s
replace string s1 by string s2 in string s
-
template<typename T, template<class> class OP, class CP, template<class> class KP, template<class> class SP, template<class> class CNP>
inline void reset(SmartPtr<T, OP, CP, KP, SP, CNP> &sp, typename SP<T>::StoredType p)
-
void resetThreadData()
-
void resizeThreadData(number_t)
-
resize global vectors currentNxs, currentNys, …
-
string_t rightPath(const string_t &path)
-
adapt path to OS format (WIN/LINUX like)
-
template<typename T>
Vector<T> rk4(T &(*f)(real_t, const T &y, T &fty), real_t a, real_t b, real_t dt, const T &y0)
-
OperatorOnUnknown &rot(const Unknown &un)
-
OperatorOnKernel &rot_x(const Kernel&)
-
curl_x(k)
-
OperatorOnKernel &rot_x(OperatorOnKernel&)
-
curl_x(opk)
-
OperatorOnKernel &rot_y(const Kernel&)
-
curl_y(k)
-
OperatorOnKernel &rot_y(OperatorOnKernel&)
-
curl_y(opk)
-
template<class Geom>
Geom rotate2d(const Geom &g, const Parameter &p1)
-
apply a rotation 2d on a Geom (1 key) (template external)
-
template<class Geom>
Geom rotate2d(const Geom &g, const Parameter &p1, const Parameter &p2)
-
apply a rotation 2d on a Geom (2 keys) (template external)
-
template<class Geom>
Geom rotate2d(const Geom &g, const Point &c = Point(0., 0.), real_t angle = 0.)
-
apply a rotation 2d on a Geom (template external)
-
inline Geometry rotate2d(const Geometry &g, const Parameter &p1)
-
apply a rotation 2d on a Geometry (1 key) (template external)
-
inline Geometry rotate2d(const Geometry &g, const Parameter &p1, const Parameter &p2)
-
apply a rotation 2d on a Geometry (2 keys) (template external)
-
inline Geometry rotate2d(const Geometry &g, const Point &c = Point(0., 0.), real_t angle = 0.)
-
apply a rotation 2d on a Geometry (template external)
-
Mesh rotate2d(const Mesh &m, const Parameter &p1)
-
apply a rotation on a Mesh (1 key)
apply a rotation 2D on a Mesh (1 key) (external)
-
Mesh rotate2d(const Mesh &m, const Parameter &p1, const Parameter &p2)
-
apply a rotation on a Mesh (2 keys)
apply a rotation 2D on a Mesh (2 keys) (external)
-
Mesh rotate2d(const Mesh &m, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
apply a rotation on a Mesh (3 keys)
apply a rotation 2D on a Mesh (3 keys) (external)
-
Mesh rotate2d(const Mesh &m, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
-
apply a rotation on a Mesh (4 keys)
apply a rotation 2D on a Mesh (4 keys) (external)
-
Mesh rotate2d(const Mesh &m, const Point &c, real_t angle = 0.)
-
apply a rotation on a Mesh (external)
apply a rotation 2D on a Mesh (external)
-
inline Point rotate2d(const Point &g, const Parameter &p1)
-
apply a rotation 2d on a Point (1 key) (template external)
-
inline Point rotate2d(const Point &g, const Parameter &p1, const Parameter &p2)
-
apply a rotation 2d on a Point (2 keys) (template external)
-
inline Point rotate2d(const Point &g, const Point &c = Point(0., 0.), real_t angle = 0.)
-
apply a rotation 2d on a Point (template external)
-
template<class Geom>
Geom rotate3d(const Geom &g, const Parameter &p1)
-
apply a rotation 3d on a Geom (1 key) (template external)
-
template<class Geom>
Geom rotate3d(const Geom &g, const Parameter &p1, const Parameter &p2)
-
apply a rotation 3d on a Geom (2 keys) (template external)
-
template<class Geom>
Geom rotate3d(const Geom &g, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
apply a rotation 3d on a Geom (3 keys) (template external)
-
template<class Geom>
Geom rotate3d(const Geom &g, const Point &c, real_t dx, real_t dy, real_t angle)
-
apply a rotation 3d on a Geom (template external)
-
template<class Geom>
Geom rotate3d(const Geom &g, const Point &c, real_t dx, real_t dy, real_t dz, real_t angle)
-
apply a rotation 3d on a Geom (template external)
-
template<class Geom>
Geom rotate3d(const Geom &g, const Point &c = Point(0., 0., 0.), std::vector<real_t> d = std::vector<real_t>(3, 0.), real_t angle = 0.)
-
apply a rotation 3d on a Geom (template external)
-
template<class Geom>
Geom rotate3d(const Geom &g, real_t dx, real_t dy, real_t angle)
-
apply a rotation 3d on a Geom (template external)
-
template<class Geom>
Geom rotate3d(const Geom &g, real_t dx, real_t dy, real_t dz, real_t angle)
-
apply a rotation 3d on a Geom (template external)
-
inline Geometry rotate3d(const Geometry &g, const Parameter &p1)
-
apply a rotation 3d on a Geometry (1 key) (template external)
-
inline Geometry rotate3d(const Geometry &g, const Parameter &p1, const Parameter &p2)
-
apply a rotation 3d on a Geometry (2 keys) (template external)
-
inline Geometry rotate3d(const Geometry &g, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
apply a rotation 3d on a Geometry (3 keys) (template external)
-
inline Geometry rotate3d(const Geometry &g, const Point &c, real_t dx, real_t dy, real_t angle)
-
apply a rotation 3d on a Geometry (template external)
-
inline Geometry rotate3d(const Geometry &g, const Point &c, real_t dx, real_t dy, real_t dz, real_t angle)
-
apply a rotation 3d on a Geometry (template external)
-
inline Geometry rotate3d(const Geometry &g, const Point &c = Point(0., 0., 0.), std::vector<real_t> d = std::vector<real_t>(3, 0.), real_t angle = 0.)
-
apply a rotation 3d on a Geometry (template external)
-
inline Geometry rotate3d(const Geometry &g, real_t dx, real_t dy, real_t angle)
-
apply a rotation 3d on a Geometry (template external)
-
inline Geometry rotate3d(const Geometry &g, real_t dx, real_t dy, real_t dz, real_t angle)
-
apply a rotation 3d on a Geometry (template external)
-
Mesh rotate3d(const Mesh &m, const Parameter &p1)
-
apply a rotation on a Mesh (1 key)
apply a rotation 3D on a Mesh (4 keys) (external)
-
Mesh rotate3d(const Mesh &m, const Parameter &p1, const Parameter &p2)
-
apply a rotation on a Mesh (2 keys)
apply a rotation 3D on a Mesh (4 keys) (external)
-
Mesh rotate3d(const Mesh &m, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
apply a rotation on a Mesh (3 keys)
apply a rotation 3D on a Mesh (4 keys) (external)
-
Mesh rotate3d(const Mesh &m, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4)
-
apply a rotation on a Mesh (4 keys)
apply a rotation 3D on a Mesh (4 keys) (external)
-
Mesh rotate3d(const Mesh &m, const Parameter &p1, const Parameter &p2, const Parameter &p3, const Parameter &p4, const Parameter &p5)
-
apply a rotation on a Mesh (5 keys)
apply a rotation 3D on a Mesh (4 keys) (external)
-
Mesh rotate3d(const Mesh &m, const Point &c, real_t ux, real_t uy, real_t angle)
-
apply a rotation on a Mesh (external)
apply a rotation 3D on a Mesh (external)
-
Mesh rotate3d(const Mesh &m, const Point &c, real_t ux, real_t uy, real_t uz, real_t angle)
-
apply a rotation on a Mesh (external)
apply a rotation 3D on a Mesh (external)
-
Mesh rotate3d(const Mesh &m, const Point &c, std::vector<real_t> u = std::vector<real_t>(3, 0.), real_t angle = 0.)
-
apply a rotation on a Mesh (external)
apply a rotation 3D on a Mesh (external)
-
Mesh rotate3d(const Mesh &m, real_t ux, real_t uy, real_t angle)
-
apply a rotation on a Mesh (external)
apply a rotation 3D on a Mesh (external)
-
Mesh rotate3d(const Mesh &m, real_t ux, real_t uy, real_t uz, real_t angle)
-
apply a rotation on a Mesh (external)
apply a rotation 3D on a Mesh (external)
-
inline Point rotate3d(const Point &g, const Parameter &p1)
-
apply a rotation 3d on a Point (1 key) (template external)
-
inline Point rotate3d(const Point &g, const Parameter &p1, const Parameter &p2)
-
apply a rotation 3d on a Point (2 keys) (template external)
-
inline Point rotate3d(const Point &g, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
apply a rotation 3d on a Point (3 keys) (template external)
-
inline Point rotate3d(const Point &g, const Point &c, real_t dx, real_t dy, real_t angle)
-
apply a rotation 3d on a Point (template external)
-
inline Point rotate3d(const Point &g, const Point &c, real_t dx, real_t dy, real_t dz, real_t angle)
-
apply a rotation 3d on a Point (template external)
-
inline Point rotate3d(const Point &g, const Point &c = Point(0., 0., 0.), std::vector<real_t> d = std::vector<real_t>(3, 0.), real_t angle = 0.)
-
apply a rotation 3d on a Point (template external)
-
inline Point rotate3d(const Point &g, real_t dx, real_t dy, real_t angle)
-
apply a rotation 3d on a Point (template external)
-
inline Point rotate3d(const Point &g, real_t dx, real_t dy, real_t dz, real_t angle)
-
apply a rotation 3d on a Point (template external)
-
OperatorOnUnknown &rotG(const Unknown &un, const complex_t &ax, const complex_t &ay, const complex_t &az, const complex_t &at)
-
OperatorOnUnknown &rotS(const Unknown &un)
-
inline complex_t round(const complex_t &z, real_t prec)
-
inline real_t round(const real_t &x, real_t prec)
-
inline complex_t roundToZero(const complex_t &v, real_t asZero = std::sqrt(theEpsilon))
-
inline real_t roundToZero(const real_t &v, real_t asZero = std::sqrt(theEpsilon))
-
round to zero for scalars
-
template<typename T>
std::vector<T> roundToZero(const std::vector<T> &v, real_t asZero = std::sqrt(theEpsilon))
-
round to zero for vectors
-
TermMatrix roundToZero(const TermMatrix &tm, real_t aszero = 10 * theEpsilon)
-
return the 0 rounded TermMatrix)
return the 0 rounded TermMatrix
-
template<typename T>
Vector<T> roundToZero(const Vector<T> &v, real_t asZero = std::sqrt(theEpsilon))
-
template<typename T>
LowRankMatrix<T> &rsvd(const LargeMatrix<T> &lm, LowRankMatrix<T> &lrm, number_t r = 0, real_t eps = theTolerance)
-
rsvd of a LargeMatrix
RSVD compression method of a LargeMatrix to a LowRankMatrix Lr T: type of the result lm: LargeMatrix to be compressed r: prescribed rank of truncature, if 0 not used, the real rank at output eps: prescribed precision, if rk > 0 not used r=0 and eps=0 gives the full svd lrm: LowRankMatrix.
-
template<typename M, typename T>
void rsvd(M &A, number_t r, std::vector<T> &U, std::vector<T> &D, std::vector<T> &V)
-
Random SVD compression method of a matrix of class M T: type of the result A: matrix of class M, requires the member functions: M::numberOfRows(), M::numberOfCols() M::multMatrixRow(T* M, T* R, number_t p) i.e M*matRow M::multLeftMatrixRow(T* M, T* R, number_t p) i.e matRow*M r: prescribed rank >0 of truncature U, V: vectors storing dense row matrices S: vector storing S.
-
template<typename M, typename T>
void rsvd(M &A, real_t eps, number_t &rk, std::vector<T> &U, std::vector<T> &D, std::vector<T> &V)
-
Random SVD compression method of a matrix of class M from the paper: Stephanie Chaillat, George Biros.
FaIMS: A fast algorithm for the inverse medium problem with multiple frequencies and multiple sources for the scalar Helmholtz equation. Journal of Computational Physics, Elsevier, 2012, 231 (12), pp.4403-4421. T: type of the result A: matrix of class M, requires the member functions: M::numberOfRows(), M::numberOfCols() M::multMatrixRow(T* M, T* R, number_t p) i.e M*matRow M::multLeftMatrixRow(T* M, T* R, number_t p) i.e matRow*M eps: desired precision for the SVD matrix rk: rank of rsvd on output U, V: vectors storing dense row matrices S: vector storing S
-
template<typename T>
void rsvd(Matrix<T> &A, Matrix<T> &U, Vector<T> &D, Matrix<T> &V, number_t r = 0, real_t eps = theTolerance)
-
Random SVD with either rank or precision truncation T: type of the matrix (real or complex) A: Matrix to be be factorized U,D,V: SVD factors A~U*D*V’ (output) r: prescribed rank eps: energy threshold if r > 0, the SVD is restricted to the first r singular values else it is restricted to the first singular values smaller than eps.
-
template<typename T>
void rsvd(T *A, number_t m, number_t n, number_t r, T *U, T *D, T *V)
-
Random SVD compression method of a row dense matrix given by pointer T: type of the result A: pointer to the first element of the dense matrix to be compressed, stored as row major access (dense row) m, n: number of rows and cols of matrix to be compressed r: prescribed rank >0 of truncature U, V: pointer to dense row matrices, has to be allocated before S: pointer to S vector, has to be allocated before.
note: may be used when A is a pointer to a m x n col dense matrix, by permuting arguments when calling: rsvd(A,n,m,rk,V,D,U) produces the RSVD of A = U*D*V’ where U, V are pointers to row dense matrices!
-
template<typename T>
void rsvd(T *A, number_t m, number_t n, real_t eps, number_t &rk, T *U, T *D, T *V)
-
Random SVD compression method of a row dense matrix given by pointer from the paper: Stephanie Chaillat, George Biros.
FaIMS: A fast algorithm for the inverse medium problem with multiple frequencies and multiple sources for the scalar Helmholtz equation. Journal of Computational Physics, Elsevier, 2012, 231 (12), pp.4403-4421. T: type of the result A: pointer to the first element of the dense matrix to be compressed, stored as row major access (dense row) m, n: number of rows and cols of matrix to be compressed eps: desired precision for the SVD matrix rk: rank of rsvd on output U, V: pointer to dense row matrices, has to be allocated before S: pointer to S vector, has to be allocated before
note: may be used when A is a pointer to a m x n col dense matrix, by permuting arguments when calling: rsvd(A,n,m,eps,V,D,U) produces the RSVD of A = U*D*V’ where U, V are pointers to row dense matrices!
-
inline Geometry ruledSurfaceFrom(const Geometry &c, string_t domName = "")
-
definition of a geometry 2D from an union of boundaries 1D
-
bool sameDofs(const SuTermVector&, const SuTermVector&)
-
tensor cross product => vector SuTermVector in 3D, scalar SuTermVector in 2D
check if 2 SuTermVector have same dofs
-
bool sameOrientation(std::vector<const Point*> border1, std::vector<const Point*> border2)
-
determine if 2 lists of points ordered differently have the same orientation It is supposed that every point in each list is also in the other one
determine if 2 geometries (list of vertices) have the same orientation
-
bool sameStorage(const MatrixStorage &sto1, const MatrixStorage &sto2)
-
compare two storages, they are same if all the coefficients are travelled in the same way
test if two storages are similar
storage pointers are the same
storage types are the same, sizes are the same and storage structure are the same
-
void saveCircArcToGeo(const CircArc &a, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a circle arc in a geo file
-
void saveComponentExtraDataToGeo(const Geometry &g, number_t nloops, std::ofstream &fout)
-
writing the surface/volume definition (Plane Surface or Volume command in geo)
-
void saveComponentToGeo(Geometry &g, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a component of composite geometry in a geo file whatever the dimension
-
void saveConeToGeo(const Cone &c, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a conical volume in a geo file
writing a cone in a geo file
-
void saveCylinderToGeo(const Cylinder &c, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a cylindrical volume in a geo file
-
void saveEllArcToGeo(const EllArc &a, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing an elliptic arc in a geo file
-
void saveEllipseToGeo(const Ellipse &e, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing an elliptic surface or a disk in a geo file
-
void saveEllipsoidToGeo(const Ellipsoid &e, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing an ellipsoidal volume or a ball in a geo file
-
void saveExtByCompositionToGeo(const Geometry &g, const Transformation &t, std::ofstream &fout, const std::map<string_t, Strings> &inputs)
-
writing an extrusion by a composition of translations and rotations in a geo file
-
void saveExtByRotation2dToGeo(const Geometry &g, const Rotation2d &r, std::vector<int_t> nnodesPerLine, std::ofstream &fout, const std::map<string_t, Strings> &inputs)
-
writing an extrusion by Rotation2d in a geo file
-
void saveExtByRotation3dToGeo(const Geometry &g, const Rotation3d &r, std::vector<int_t> nnodesPerLine, std::ofstream &fout, const std::map<string_t, Strings> &inputs)
-
writing an extrusion by Rotation3d in a geo file
-
void saveExtByRotationSideNamesToGeo(const Geometry &g, const std::vector<string_t> &sidenames, const std::vector<std::pair<number_t, number_t>> &nbSidesPerComponent, const real_t angle, std::ofstream &fout, const std::map<string_t, Strings> &inputs, std::vector<PhysicalData> &pids)
-
writing sidenames of an extrusion by Rotation2d in a geo file
writing sidenames of an extrusion by Rotation2d or Rotation3d in a geo file
-
void saveExtByTranslationSideNamesToGeo(const Geometry &g, const std::vector<string_t> &sidenames, const std::vector<std::pair<number_t, number_t>> &nbSidesPerComponent, const Translation &t, std::ofstream &fout, const std::map<string_t, Strings> &inputs, std::vector<PhysicalData> &pids)
-
writing sidenames of an extrusion by Translation in a geo file
-
void saveExtByTranslationToGeo(const Geometry &g, const Translation &t, std::vector<int_t> nnodesPerLine, std::ofstream &fout, const std::map<string_t, Strings> &inputs)
-
writing an extrusion by Translation in a geo file
-
void saveExtrusionComponentToGeo(const Geometry &g, const Transformation &t, std::vector<int_t> nnodesPerLine, std::ofstream &fout, const std::map<string_t, Strings> &inputs)
-
writing an extrusion in a geo file
-
std::vector<std::pair<number_t, number_t>> saveExtrusionGeometryToGeo(const Geometry &g, ShapeType sh, real_t angle, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing an extrusion geometry in a geo file whatever the dimension
-
string_t saveExtrusionInputsAsString(const std::map<string_t, Strings> &inputs)
-
writing extrusion inputs as string
-
void saveExtrusionSideNamesToGeo(const Geometry &g, const std::vector<string_t> &sidenames, const std::vector<std::pair<number_t, number_t>> &nbSidesPerComponent, const Transformation &t, std::ofstream &fout, const std::map<string_t, Strings> &inputs, std::vector<PhysicalData> &pids)
-
writing sidenames of an extrusion in a geo file
-
void saveHexahedronToGeo(const Hexahedron &h, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a hexahedron in a geo file
-
void saveParallelepipedToGeo(const Parallelepiped &p, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a parallelepiped, a cuboid or a cube in a geo file
-
void saveParametrizedArcToGeo(const ParametrizedArc &a, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a parametrized arc in a geo file
-
void saveParametrizedSurfaceToGeo(const ParametrizedSurface &s, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a parametrized surface (split in triangle or nurbs) in a geo file split the parametrized surface s in s.nbParts elementary surface either quadrangle or triangle or nurbs (s.shapePart)
writing a parametrized surface in a geo file
-
void savePolygonToGeo(const Polygon &p, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a triangle in a geo file
writing a polygon in a geo file
-
void savePolyhedronToGeo(const Polyhedron &p, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a polyhedral volume in a geo file
writing a polyhedron in a geo file
-
void saveQuadrangleToGeo(const Quadrangle &q, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a quadrangle, a rectangle or a square in a geo file
-
void saveRevConeToGeo(const RevCone &c, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a revolution conical volume in a geo file
writing a revolution cone in a geo file
-
void saveRevCylinderToGeo(const RevCylinder &c, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a prism in a geo file
writing a revolution cylindrical volume in a geo file
-
void saveRevTrunkToGeo(const RevTrunk &t, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a prism in a geo file
writing a revolution trunk in a geo file
-
void saveSegmentToGeo(const Segment &s, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a segment in a geo file
-
void saveSplineArcToGeo(const SplineArc &a, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a spline arc in a geo file spline in standard gmsh factory corresponds to Catmull-Rom spline spline in occ gmsh factory corresponds to C2 spline
writing a parametrized arc in a geo file
-
void saveTetrahedronToGeo(const Tetrahedron &t, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a tetrahedron in a geo file
-
void saveToBrepGeo(Geometry &g, ShapeType sh, number_t order, MeshPattern pattern, StructuredMeshSplitRule splitDirection, const string_t &geofile, const string_t &brepfile)
-
writing a 2D/3D geometry in a geo file using Open Cascade way and Brep format
-
inline void saveToFile(const string_t &filename, const EigenElements &evs)
-
inline void saveToFile(const string_t &filename, const EigenElements &evs, const Parameter &p1)
-
inline void saveToFile(const string_t &filename, const EigenElements &evs, const Parameter &p1, const Parameter &p2)
-
inline void saveToFile(const string_t &filename, const EigenElements &evs, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
void saveToFile(const string_t &filename, const EigenElements &evs, const std::vector<Parameter> &ps)
-
save eigenvalues into one file and eigenvectors into separate files
-
inline void saveToFile(const string_t &filename, const EigenElements &evs, IOFormat iof)
-
void saveToFile(const string_t &filename, const GeomDomain &dom, IOFormat iof)
-
inline void saveToFile(const string_t &filename, const Mesh &m)
-
inline void saveToFile(const string_t &filename, const Mesh &m, const Parameter &p1, const Parameter &p2)
-
inline void saveToFile(const string_t &filename, const Mesh &m, IOFormat iof, bool withDomains = false)
-
void saveToFile(const string_t &filename, const Space *sp, const list<SuTermVector*> &sutvs, IOFormat iof, string_t dataName, bool aFilePerDomain)
-
save a list of SuTermVectors on a same Space to files
input/output function
-
inline void saveToFile(const string_t &filename, const std::list<const TermVector*> &tvs)
-
inline void saveToFile(const string_t &filename, const std::list<const TermVector*> &tvs, const Parameter &p1)
-
inline void saveToFile(const string_t &filename, const std::list<const TermVector*> &tvs, const Parameter &p1, const Parameter &p2)
-
inline void saveToFile(const string_t &filename, const std::list<const TermVector*> &tvs, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
void saveToFile(const string_t &filename, const std::list<const TermVector*> &tvs, const std::vector<Parameter> &ps)
-
inline void saveToFile(const string_t &filename, const SvdElements &evs)
-
inline void saveToFile(const string_t &filename, const SvdElements &evs, const Parameter &p1)
-
inline void saveToFile(const string_t &filename, const SvdElements &evs, const Parameter &p1, const Parameter &p2)
-
inline void saveToFile(const string_t &filename, const SvdElements &evs, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
void saveToFile(const string_t &filename, const SvdElements &evs, const std::vector<Parameter> &ps)
-
save singular values into one file and singular vectors into separate files
-
inline void saveToFile(const string_t &filename, const SvdElements &evs, IOFormat iof)
-
inline void saveToFile(const string_t &filename, const TermMatrix &A)
-
save TermMatrix to file (dense or Matlab format)
-
inline void saveToFile(const string_t &filename, const TermMatrix &A, const Parameter &p1)
-
save TermMatrix to file (dense or Matlab format)
-
inline void saveToFile(const string_t &filename, const TermMatrix &A, const Parameter &p1, const Parameter &p2)
-
save TermMatrix to file (dense or Matlab format)
-
inline void saveToFile(const string_t &filename, const TermMatrix &A, StorageType st, bool enc = false)
-
save TermMatrix to file (dense or Matlab format)
-
void saveToFile(const string_t &filename, const TermVector &tv)
-
inline void saveToFile(const string_t &filename, const TermVector &tv, bool aFilePerDomain)
-
void saveToFile(const string_t &filename, const TermVector &tv, const Parameter &p1)
-
void saveToFile(const string_t &filename, const TermVector &tv, const Parameter &p1, const Parameter &p2)
-
void saveToFile(const string_t &filename, const TermVector &tv, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
inline void saveToFile(const string_t &filename, const TermVector &tv, IOFormat iof, bool aFilePerDomain = true)
-
inline void saveToFile(const string_t &filename, const TermVector &tv, string_t dataName, bool aFilePerDomain = true)
-
void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2)
-
inline void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2, bool aFilePerDomain)
-
void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2, const Parameter &p1)
-
void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2, const Parameter &p1, const Parameter &p2)
-
void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2, const TermVector &tv3)
-
inline void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2, const TermVector &tv3, bool aFilePerDomain)
-
void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2, const TermVector &tv3, const Parameter &p1)
-
void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2, const TermVector &tv3, const Parameter &p1, const Parameter &p2)
-
void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2, const TermVector &tv3, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2, const TermVector &tv3, const TermVector &tv4)
-
inline void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2, const TermVector &tv3, const TermVector &tv4, bool aFilePerDomain)
-
void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2, const TermVector &tv3, const TermVector &tv4, const Parameter &p1)
-
void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2, const TermVector &tv3, const TermVector &tv4, const Parameter &p1, const Parameter &p2)
-
void saveToFile(const string_t &filename, const TermVector &tv1, const TermVector &tv2, const TermVector &tv3, const TermVector &tv4, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
inline void saveToFile(const string_t &filename, const TermVectors &tvs)
-
inline void saveToFile(const string_t &filename, const TermVectors &tvs, bool aFilePerDomain)
-
inline void saveToFile(const string_t &filename, const TermVectors &tvs, const Parameter &p1)
-
inline void saveToFile(const string_t &filename, const TermVectors &tvs, const Parameter &p1, const Parameter &p2)
-
inline void saveToFile(const string_t &filename, const TermVectors &tvs, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
void saveToFile(const string_t &filename, const TermVectors &tvs, const std::vector<Parameter> &ps)
-
save TermVectors to files
-
inline void saveToFile(const string_t &filename, const TermVectors &tvs, IOFormat iof, bool aFilePerDomain = false)
-
inline void saveToFile(const string_t &filename, const TermVectors &tvs, string_t dataName = "", bool aFilePerDomain = false)
-
void saveToFile(const string_t &fn, const TermVector &tv, const string_t &dataName, IOFormat format, bool aFilePerDomain)
-
save 1 TermVector to files with a specific format (alias of the version with a list of TermVectors)
-
void saveToFile(const string_t &fn, const TermVector &tv1, const TermVector &tv2, const TermVector &tv3, const TermVector &tv4, IOFormat format, bool aFilePerDomain)
-
save 4 TermVector to files with a specific format (alias of the version with a list of TermVectors)
-
void saveToFile(const string_t &fn, const TermVector &tv1, const TermVector &tv2, const TermVector &tv3, const TermVector &tv4, string_t dataName, bool aFilePerDomain)
-
save 4 TermVectors to files with a specific data name (alias of the version with a list of TermVectors)
-
void saveToFile(const string_t &fn, const TermVector &tv1, const TermVector &tv2, const TermVector &tv3, IOFormat format, bool aFilePerDomain)
-
save 3 TermVector to files with a specific format (alias of the version with a list of TermVectors)
-
void saveToFile(const string_t &fn, const TermVector &tv1, const TermVector &tv2, const TermVector &tv3, string_t dataName, bool aFilePerDomain)
-
save 3 TermVectors to files with a specific data name (alias of the version with a list of TermVectors)
-
void saveToFile(const string_t &fn, const TermVector &tv1, const TermVector &tv2, IOFormat format, bool aFilePerDomain)
-
save 2 TermVector to files with a specific format (alias of the version with a list of TermVectors)
-
void saveToFile(const string_t &fn, const TermVector &tv1, const TermVector &tv2, string_t dataName, bool aFilePerDomain)
-
save 2 TermVectors to files with a specific data name (alias of the version with a list of TermVectors)
-
void saveToGeo(Geometry &g, number_t order, const string_t &filename)
-
writing a 1D geometry in a geo file
-
void saveToGeo(Geometry &g, ShapeType sh, number_t order, MeshPattern pattern, StructuredMeshSplitRule splitDirection, const string_t &filename, std::set<CrackData> &cracks)
-
writing a 2D/3D geometry in a geo file
-
void saveToMsh(ostream &fout, const Space *sp, const list<SuTermVector*> &sutvs, const vector<Point> &coords, const vector<pair<ShapeType, vector<number_t>>> &elementsInfo, const GeomDomain *dom, string_t dataName)
-
save a list of SuTermVectors on the same Space to msh files
-
void saveToMsh(std::ostream &fout, const Space*, const std::list<SuTermVector*>&, const std::vector<Point> &coords, const splitvec_t &elementsInfo, const GeomDomain *dom, string_t dataName = "")
-
void saveToMtlb(ostream &fout, const Space *sp, const list<SuTermVector*> &sutvs, const vector<Point> &coords, const vector<pair<ShapeType, vector<number_t>>> &elementsInfo, const GeomDomain *dom, string_t dataName)
-
save a list of SuTermVectors on the same Space to Matlab - Octave files
-
void saveToMtlb(std::ostream &fout, const Space*, const std::list<SuTermVector*>&, const std::vector<Point> &coords, const splitvec_t &elementsInfo, const GeomDomain *dom, string_t dataName = "")
-
void saveToVtk(ostream &fout, const Space *sp, const list<SuTermVector*> &sutvs, const vector<Point> &coords, const vector<pair<ShapeType, vector<number_t>>> &elementsInfo, const GeomDomain *dom, string_t dataName)
-
save a list of SuTermVectors on the same Space to vtk files
-
void saveToVtk(std::ostream &fout, const Space*, const std::list<SuTermVector*>&, const std::vector<Point> &coords, const splitvec_t &elementsInfo, const GeomDomain *dom, string_t dataName = "")
-
void saveToVtkVtu(ostream &fout, const Space *sp, const list<SuTermVector*> &sutvs, const vector<Point> &coords, const vector<pair<ShapeType, vector<number_t>>> &elementsInfo, const GeomDomain *dom, string_t dataName)
-
save a list of SuTermVectors on the same Space to vtk xml files for unstructured grid type meshes
-
void saveToVtkVtu(std::ostream &fout, const Space*, const std::list<SuTermVector*>&, const std::vector<Point> &coords, const splitvec_t &elementsInfo, const GeomDomain *dom, string_t dataName = "")
-
void saveToXyzVs(ostream &fout, const Space *sp, const list<SuTermVector*> &sutvs, const vector<Point> &coords, string_t dataName, bool writeHeader)
-
save a list of SuTermVectors v’s on the same Space as raw file x [y [z]] v1 [v2 …] the ouput of coordinates depends of the dimension of mesh nodes when vi is a complex output vi.real vi.imag when vi is a real vector output vi_x vi_y [vi_z] when vi is a complex vector output vi_x.real vi_x.imag vi_y.real vi_y.imag [vi_z.real vi_z.imag]
-
void saveTriangleToGeo(const Triangle &t, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a triangle in a geo file
-
void saveTrunkToGeo(const Trunk &t, ShapeType sh, std::ofstream &fout, std::vector<PhysicalData> &pids, bool withLoopsStorage, bool withSideNames)
-
writing a cylindrical volume in a geo file
writing a trunk in a geo file
-
template<typename scalar1, typename T1_iterator, typename R_iterator>
void scaledVectorTpl(const scalar1 &s, T1_iterator b1, T1_iterator e1, T1_iterator b2, R_iterator Rb)
-
Scaled vector R[i] = s * ( T1[i] - T2 [i] )
-
template<typename K, typename K1, typename K2>
void scaleVector(const K &k, const Vector<K1> &v, Vector<K2> &r)
-
complex_t scatteredFieldDiskDirichlet(const Point &p, Parameters ¶m)
-
Exact solution to the Helmholtz 2D problem outside a sphere: Field scattered by solid sphere of radius Rad of an incoming field Phi_w= exp^{(i*K*x}).
‘Exact solutions’ to the Helmholtz 2D problem outside a disk
Field scattered by solid disk of radius Rad of an incoming field Phi_w= exp^{(i*k*x}).
with Dirichlet boundary condition on the sphere
-
complex_t scatteredFieldDiskNeumann(const Point&, Parameters&)
-
Vector<complex_t> scatteredFieldMaxwellExn(const Point &p, Parameters ¶m)
-
Exact solution to the Maxwell 3D problem outside a sphere: Field scattered by solid sphere of radius Rad of an incoming vector field Phi_w= (1,0,0)*exp^{(i*K*z}).
‘Exact solutions’ to the Maxwell 3D problem outside a sphere
Field scattered by solid sphere of radius R of an incoming field Phi_w= exp^{(i*k*z}). with tangential boundary condition Exn = 0 (electric field) on the sphere:
\(\Phi(\rho,\theta \phi) = \sum_{n=1..\infty} i^n * (2n+1) * cos\phi*e_rho*c_rho[n] + cos\phi*e_theta*c_theta[n] + sin\phi*c_phi[n]\)
with
[ \(\sin\theta*\cos\phi\) ] [ \(\cos\theta*\cos\phi\) ] [ \(-\sin\phi\) ]
e_rho =[ \(\sin\theta*\sin\phi\) ] e_theta =[ \(\cos\theta*\sin\phi\) ] e_phi =[ \(\cos\phi\) ]
[ \(\cos\theta\) ] [ \(-\sin\theta\) ] [ 0 ] and
\(c_rho[n] = - A_n(K*R) * H_{n}(K*rho)/K*rho ) * Ps_n(\cos\theta)\)
c_theta[n] =
c–phi[n] =
where
A_n(r) = -i^{n-1} (2*n+1) real(hnp(r)) / hnp(r) where hnp(r) = d/dr[H_{n}](r) + H_{n}(r)
B_n(r) = -i^{n-1} (2*n+1) real(H_{n}(r)) / H_{n}(r) and
H_{n} = h_n^{(1)} = j_n + i*y_n is the spherical hankel function of first kind and order n
j_n: spherical bessel function of the first kind and order n
y_n: spherical bessel function of the second kind and order n
with electric field boundary condition Exn=0 on the sphere
Some computed values for K=1 X_1 X_2 X_3 Phi_1 Phi_2 Phi_3 1.0 0.0 0.0 | (1.75532926384 , 1.62107824182 ) (0 , 0 ) (-6.02796306309e-18,-1.58122117268e-18) 0.0 1.0 0.0 | (-1 , 4.81409564708e-17) (0 , 0 ) (0 , 0 ) 0.0 0.0 1.0 | (-5.40302305868e-01,-8.41470984808e-01) (0 , 0 ) (0 , 0 ) 1.0 1.0 1.0 | (-1.69184878965e-01, 1.61131192686e-01) (2.06589901137e-01, 2.52914553648e-01) (1.19848010392e-01, 3.28542217311e-01) 1.0 1.0 1.2 | (-1.86022424304e-01, 9.18508880491e-02) (1.49911272089e-01, 2.01342400004e-01) (9.37804387189e-02, 3.03355869671e-01) 1.0 1.0 1.4 | (-1.91775499206e-01, 3.34280295554e-02) (1.07142066815e-01, 1.59632591445e-01) (6.64556013889e-02, 2.71335010720e-01) 1.0 1.0 1.6 | (-1.88260942630e-01,-1.51180741005e-02) (7.54265673653e-02, 1.27220194457e-01) (4.11641109484e-02, 2.38176631400e-01) 1.0 1.0 1.8 | (-1.77261848423e-01,-5.51624601093e-02) (5.20175373132e-02, 1.02356587880e-01) (1.91974583103e-02, 2.06737287161e-01) 1.0 1.0 2.0 | (-1.60341338903e-01,-8.78244555191e-02) (3.47085585869e-02, 8.32071602821e-02) (8.24999561215e-04, 1.78106610047e-01) 1.2 1.4 1.0 | (-1.93790114095e-01, 7.12577504506e-02) (1.44884948487e-01, 2.06529528004e-01) (1.39532076671e-02, 1.97067304047e-01) 1.2 1.4 1.2 | (-1.90729686988e-01, 2.88712762800e-02) (1.12819966807e-01, 1.81439122245e-01) (9.10642428927e-03, 1.94073277948e-01) 1.2 1.4 1.4 | (-1.83137187727e-01,-1.04437244804e-02) (8.50160197427e-02, 1.57350273961e-01) (7.19355647585e-04, 1.84905785693e-01) 1.2 1.4 1.6 | (-1.70990951385e-01,-4.55518271208e-02) (6.17400731503e-02, 1.35416184077e-01) (-9.27523672141e-03, 1.71746716026e-01) 1.2 1.4 1.8 | (-1.54657449587e-01,-7.58575264387e-02) (4.27052811485e-02, 1.16028225273e-01) (-1.95184324637e-02, 1.56344795623e-01) 1.2 1.4 2.0 | (-1.34728108413e-01,-1.01074590219e-01) (2.73910156223e-02, 9.91350581457e-02) (-2.91430511034e-02, 1.39939464554e-01)
-
complex_t scatteredFieldSphereDirichlet(const Point&, Parameters&)
-
Field scattered by solid sphere of radius Rad of an incoming field Phi_w= exp^{(i*k*x}).
Exact solution to the Helmholtz 3D problem outside a sphere: Field scattered by solid sphere of radius Rad of an incoming field Phi_w= exp^{(i*K*x}).
with Dirichlet boundary condition on the sphere: Series representation of Bessel spherical functions and Legendre polynomials
\(\Phi(\rho,\phi) = \sum_{n=0}^\infty A\_n(K*Rad) h_n^{(1)}(K*\rho) P_n(cos(\phi))\)
where \(A_n(r) = i^n (2*n+1) { j_n(kR)/ h_n^{(1)}(kR)}\)
with Dirichlet boundary condition on the sphere
-
complex_t scatteredFieldSphereNeumann(const Point &p, Parameters ¶m)
-
Exact solution to the Helmholtz 3D problem outside a sphere: Field scattered by solid sphere of radius Rad of an incoming field Phi_w= exp^{(i*K*x}).
‘Exact solutions’ to the Helmholtz 3D problem outside a sphere
Field scattered by solid sphere of radius Rad of an incoming field Phi_w= exp^{(i*k*x}). with Neumann boundary condition on the sphere: Series representation of Bessel spherical functions and Legendre polynomials
\(\Phi(\rho,\phi) = \sum_{n=0}^\infty A\_n(K*Rad) h_n^{(1)}(K*\rho) P_n(cos(\phi))\)
where \(A_n(r) = - i^n (2*n+1) { d/dr[j_n](r) / d/dr[h_n^{(1)}](r) }\) and
h_n^{(1)} = H_{n} = j_n + i*y_n is the spherical hankel function of first kind and order n
j_n: spherical bessel function of the first kind and order n
y_n: spherical bessel function of the second kind and order n
— for spherical Bessel functions, see
HANDBOOK Of MATHEMATICAL FUNCTIONS, Ed. M.ABRAMOWITZ & I.A. STEGUN
Chap. 10 : Bessel Functions of Fractional Order (p.437-494)
http://www.math.sfu.ca/~cbm/aands/page_437.htm — for Legendre polynomials, see
with Neumann boundary condition on the sphere
-
TermVector schurSolve(TermMatrix &A, const TermVector &B, const Unknown &row_v, const Unknown &col_u, bool keepA)
-
Schur Solver, only for 2x2 unknowns TermMatrix:
|A11 A12 ||X1| |B1| | || | = | | |A21 A22 ||X2| |B1|
A: multiple unknowns TermMatrix B: multiple unknowns TermVector row_v, col_u: unknowns pair defining the diagonal block used as pivot (say A11) keepA: true if TermMatrix has to be preserved (TermVector B is always preserved)
-
string_t securedPath(const string_t &path)
-
adapt path to OS format and check if path exists
-
Quadrature *segmentQuadrature(QuadRule, number_t)
-
find or create quadrature rule over the unit segment
-
RefElement *selectRefHexahedron(const Interpolation *int_p)
-
selectRefHexahedron construction of a Reference Element by interpolation type and interpolation subtype
-
RefElement *selectRefPrism(const Interpolation *interp_p)
-
selectRefPrism construction of a prismatic Reference Element by interpolation subtype and number
-
RefElement *selectRefPyramid(const Interpolation *interp_p)
-
selectRefPyramid construction of a pyramidatic Reference Element by interpolation subtype and number
-
RefElement *selectRefQuadrangle(const Interpolation *interp_p)
-
selectRefQuadrangle construction of a Reference Element by interpolation type and interpolation subtype
-
RefElement *selectRefSegment(const Interpolation *interp_p)
-
segment construction of a 1D Reference Element by interpolation type and interpolation subtype
-
RefElement *selectRefTetrahedron(const Interpolation *interp_p)
-
tetrahedronConstructor construction of a Reference Element by interpolation type and interpolation subtype
-
RefElement *selectRefTriangle(const Interpolation *interp_p)
-
selectReferenceTriangle construction of a Reference Element by interpolation type and interpolation subtype
-
inline void setB(Vector<real_t> &p)
-
inline void setBasisIndex(number_t i)
-
inline void setBx(Vector<real_t> &p)
-
inline void setBx(Vector<real_t> *p)
-
inline void setBy(Vector<real_t> &p)
-
inline void setBy(Vector<real_t> *p)
-
void setColor(const GeomDomain &dom, const TermVector &tv, ColoringRule cr)
-
set color of geom elements of domain according to vertex values and a coloring rule dom: the domain to colorize val: a single unknown TermVector containing the values used to colorize cr: the ColoringRule, i.e.
set color of geom elements of domain according to vertex values and a coloring rule
a function of the form: real_t cr(const Geomelement& gelt, const std::vector<real_t>& v) returning the color of the geometric element (see defaultColoringRule function for instance)
-
void setColor(const GeomDomain &dom, const TermVector &tv, VectorColoringRule vcr)
-
set color of geom elements of domain according to vertex vector values and a vector coloring rule dom: the domain to colorize val: a single unknown TermVector containing the vector values used to colorize vcr: the vector ColoringRule, i.e.
set color of geom elements of domain according to vertex vector values and a vector coloring rule
a function of the form: real_t vcr(const Geomelement& gelt, const std::vector<Vector<real_t> >& v) returning the color of the geometric element (see defaultColoringRule function for instance)
-
void setColor(const GeomDomain &dom, real_t r)
-
set color of geom elements dom: the domain to colorize col: color value
set the color of geom elements
-
inline void setDefaultCharacteristicLength(real_t h)
-
set the characteristic length
-
inline void setDerivative(number_t i)
-
inline void setDof(Dof *p)
-
inline void setDomain(GeomDomain *p)
-
inline void setDomainx(GeomDomain *p)
-
inline void setDomainy(GeomDomain *p)
-
inline void setElement(GeomElement *p)
-
inline void setElement(GeomElement *p, number_t t)
-
inline void seteol(number_t n = 0)
-
manage eol variable by adding n spaces after carriage return
-
void setGlobalVerboseLevel(const number_t)
-
set a maximum value for all verbose levels setGlobalVerboseLevel(0) sets all levels to zero
-
inline void setN(Vector<real_t> &p)
-
void setNewHandler()
-
defines a new trace handler
-
inline void setNx(Vector<real_t> &p)
-
inline void setNx(Vector<real_t> *p)
-
inline void setNy(Vector<real_t> &p)
-
inline void setNy(Vector<real_t> *p)
-
void setRanks(Unknown &u1, number_t r1, Unknown &u2, number_t r2, Unknown &u3, number_t r3, Unknown &u4, number_t r4)
-
template<typename T>
void setRefCountedAlloc(bool isAlloc, RefCounted<T> &ref)
-
inline void setT(Vector<real_t> &p)
-
inline void setTx(Vector<real_t> &p)
-
inline void setTx(Vector<real_t> *p)
-
inline void setTy(Vector<real_t> &p)
-
inline void setTy(Vector<real_t> *p)
-
int_t shapeDim(ShapeType sh)
-
dimension of a shape type (return -1 if not defined)
dimension of a shape type
-
GeomDomain &sides(GeomDomain &dom)
-
access to domain defined from all sides of elements of domain dom, create it if not defined
-
inline SymbolicFunction &sign(const SymbolicFunction &f)
-
template<typename T>
int sign(T val)
-
inline real_t signe(real_t x)
-
std::vector<real_t> signedDistancesToTriangleEdges(const Point &M, const Point &T1, const Point &T2, const Point &T3)
-
signed distances of a point M to the three edges of the triangle whose vertices are T1, T2 and T3
signed distances of a point to the 3 edges of a triangle
-
void simplexVertexOutput(std::ofstream &os, const int refNum, const int v1, const int v2, const int v3, const int v4)
-
template<typename T, typename Iterator>
T simpson(number_t n, real_t h, Iterator itb, T &intg)
-
uniform Simpson method from a list of n (odd) values uniformaly distributed (step h) n: number of values h: step itb: first position in the list of values intg: value of integral
-
template<typename T>
T simpson(T (*f)(real_t), real_t a, real_t b, number_t n)
-
uniform Simpson method on [a,b] interval from a function and a number of intervals
-
template<typename T>
T simpson(T (*f)(real_t, Parameters&), Parameters &pars, real_t a, real_t b, number_t n)
-
uniform Simpson method on [a,b] interval from a function with parameters and a number of intervals
-
inline SuTermVector sin(const SuTermVector &s)
-
inline SymbolicFunction &sin(const SymbolicFunction &f)
-
inline TermVector sin(const TermVector &s)
-
inline SuTermVector sinh(const SuTermVector &s)
-
inline SymbolicFunction &sinh(const SymbolicFunction &f)
-
inline TermVector sinh(const TermVector &s)
-
inline number_t sizeOf(const complex_t &x)
-
inline number_t sizeOf(const real_t &x)
-
inline number_t sizeOf(const std::vector<complex_t> &x)
-
inline number_t sizeOf(const std::vector<real_t> &x)
-
std::vector<number_t> skylinePointer(const std::vector<number_t>&, const std::vector<number_t>&)
-
get the skyline pointers from cs pointers
-
inline bool smallPivot(complex_t piv)
-
inline bool smallPivot(real_t piv)
-
template<typename T>
const SmartPtr<typename RemoveConst<T>::type> smartPtrConstCast(const SmartPtr<T> &rhs)
-
template<typename T>
SmartPtr<typename RemoveConst<T>::type> smartPtrConstCast(SmartPtr<T> &rhs)
-
inline Spaces spaces(const Domains &doms, const Interpolation &inte, bool opt = true)
-
inline Spaces spaces(const Domains &doms, const Interpolations &ints, bool opt = true)
-
build a collection of space according to collections of domains and collection of interpolations
-
inline Spaces spaces(const GeomDomain &dom, const Interpolations &ints, bool opt = true)
-
std::vector<real_t> sphericalbesselJ0N(real_t x, number_t N)
-
spherical Bessel function of the first kind and orders 0..N
-
void sphericalbesselJ0NTest(std::ostream &out)
-
std::vector<real_t> sphericalbesselY0N(real_t x, number_t N)
-
spherical Bessel function of the second kind and orders 0..N
-
void sphericalHarmonics(const Point &x, std::vector<std::vector<complex_t>> &ylm)
-
This function computes spherical harmonics Y_{l}^{m} up to order n on the unit sphere; order n is computed by n=ylm.size()-1 and spherical harmonics ylm are computed for l=0,..,n and m=0,..,l.
Spherical harmonics and derivatives
Spherical harmonics Y^{m}_l up to order n (l=0,..,n; m=0,..,l) on the unit sphere We use here the normalized definition, in which harmonics form an orthonormal basis in L^2(unit_sphere). In spherical coordinates
\(r = \sqrt{x*^2+y^2+z^2} , \cos\theta = z/r, \tan\phi = y/x\)
with \(\theta in [0, Pi], \phi in [0, 2*Pi]\), we have the following formula:
\(Y^{m}_{l} = \sqrt{(2*l+1)/4Pi * (l-m)!/(l+m)!} * P^{m}_{l}(\cos\theta) * \exp(i*m*\phi)\)
where \(P^{m}_{l}\) is the m-th associated Legendre polynomial of order l.
\(Y^{m}_{l}\) satisfies for negative m: \(Y^{m}_{l} = (-1)^{m} Y^{-m}_{l}*\) where (terminal) * denotes the complex conjugate.
For spherical harmonics see
http://en.wikipedia.org/wiki/Spherical_harmonics and for associated Legendre functions
http://en.wikipedia.org/wiki/Associated_Legendre_polynomials
Y_{l}^{m}= \((-1)^{(|m|-m) /2} \sqrt{ (2l+1)/4\pi*(l-|m|)!/(l+|m|)! } P_{l}^{|m|}(\cos(\theta)) e^{im \phi}\)
which yields for m positive
Y_{l}^{m}= \(\sqrt{ (2l+1)/4\pi*(l-m)!/(l+m)! } P_{l}^{m}(\cos(\theta)) e^{im \phi}\)
Argument ylm is a “triangular 2d array” defined as a std::vector of vectors
the 1st std::vector carries the values: Y_{0}^{0} the 2nd one carries the values: Y_{1}^{0} Y_{1}^{1} and for l=2,..,n the l-th std::vector carries the values: Y_{l}^{0} Y_{l}^{1} .. Y_{l}^{l} if the size of std::vector ylm[l] is l+1.
For a given int n, container ylm can be declared (and defined) prior to call to this function by std::vector<std::vector<complex_t> > ylm(n+1); for (int l=0; l<=n; l++) ylm[l]=std::vector<complex_t>(l+1);
-
void sphericalHarmonicsSurfaceGrad(const Point&, std::vector<std::vector<Vector<complex_t>>>&)
-
Spherical harmonics surface gradient gradS_Y^{m}_l up to order n (l=0,..,n; m=0,..,l) on the unit sphere.
This function computes spherical harmonics surface gradients gradY_{l}^{m} up to order n on the unit sphere; order n is computed by n=ylm.size()-1 and spherical harmonics ylm are computed for l=0,..,n and m=0,..,l.
Case ( \(\sin(\theta) = 0\)) : . gradS_Y_{l}^{1} = \(\sqrt{ (2l+1)/4\pi * (l-1)! / (l+1)! } * e^{i \phi} * . (P_{l}^{'1}(\cos(\theta)) e_\theta - i (\cos(\theta))^{l+1} \cos(\phi) l(l+1)/2 * e_\phi)\) . where \(e_\theta\) and \(e_\phi\) are the unit tangent std::vector on the unit sphere. . gradS_Y_{l}^{m}(x) = 0 if m =/= 1
Case ( \(\sin(\theta) /= 0\)) : . gradS_Y_{0}^{0}(x) = 0 . For l > 0 : . gradS_Y_{l}^{m} = \(\sqrt{ (2l+1)/4\pi * (l-m)! / (l+m)! } * e^{im \phi} * . ( P_{l}^{'|m|}(\cos(\theta)) e_\theta + im * P_{l}^{|m|}(\cos(\theta)) e_\phi)\) . where \(e_\theta\) and \(e_\phi\) are the unit tangent std::vector on the unit sphere.
Argument gradylm is a “triangular 2d array of 3d-vectors” defined as a vector of vectors of complex_t-Vectors. the 1st std::vector carries the 3d-vectorial values: gradY_{0}^{0} the 2nd one carries the 3d-vectorial values: gradY_{1}^{0} gradY_{1}^{1} and for l=2,..,n the l-th std::vector carries the 3d-vectorial values: gradY_{l}^{0} gradY_{l}^{1} .. gradY_{l}^{l} where the size of std::vector gradylm[l] is l+1.
For a given int n, container gradylm can be declared (and defined) prior to call to this function by std::vector<std::vector<Vector<complex_t> > > gradylm(n+1); for (int l=0; l<=n; l++) { gradylm[l]=std::vector<Vector<complex_t> >(l+1); for (int m=0; m<=l; m++) gradylm[l][m]=Vector<complex_t>(spaceDim); } where “spaceDim” is previously defined as the dimension space (necessarily 3 here). TELL DANIEL: We may put a test that stops the program if spaceDim is not 3.
-
void sphericalHarmonicsSurfaceGradTest(const Point&, const number_t, std::ostream&)
-
output function for test of Spherical harmonics and derivatives
-
void sphericalHarmonicsTest(const Point&, const number_t, std::ostream&)
-
output function for test of Spherical harmonics
-
inline Strings split(const string_t &s, char delim = ' ')
-
split a string into vector of strings using blank space as default delimiter
-
std::vector<std::vector<number_t>> splitHexahedronQ1ToTetrahedraP1(std::vector<number_t> nodeNumbers)
-
return nodes numbers of first order tetrahedron elements when splitting first order hexahedron
-
std::vector<std::vector<number_t>> splitHexahedronQ2ToHexahedraQ1(std::vector<number_t> nodeNumbers)
-
return nodes numbers of first order hexahedron elements when splitting second order hexahedron
-
std::vector<std::vector<number_t>> splitHexahedronQ2ToTetrahedraP1(std::vector<number_t> nodeNumbers)
-
return nodes numbers of first order tetrahedron elements when splitting second order hexahedron
-
std::vector<std::vector<number_t>> splitHexahedronQ3ToHexahedraQ1(std::vector<number_t> nodeNumbers)
-
return nodes numbers of first order hexahedron elements when splitting third order hexahedron
-
std::vector<std::vector<number_t>> splitHexahedronQ3ToTetrahedraP1(std::vector<number_t> nodeNumbers)
-
return nodes numbers of first order tetrahedron elements when splitting third order hexahedron
-
bool splitNumbersFind(std::vector<std::vector<number_t>> splitnum, std::vector<number_t> num)
-
return nodes numbers by removing duplicates
-
std::vector<std::vector<number_t>> splitNumbersMerge(std::vector<std::vector<number_t>> splitnum1, std::vector<std::vector<number_t>> splitnum2)
-
std::vector<std::vector<number_t>> splitNumbersUnique(std::vector<std::vector<number_t>> splitnum)
-
return nodes numbers by removing duplicates
-
std::vector<std::vector<number_t>> splitTetrahedronP2ToTetrahedraP1(std::vector<number_t> nodeNumbers)
-
return nodes numbers of first order tetrahedron elements when splitting second order tetrahedron
-
std::vector<std::vector<number_t>> splitTetrahedronP3ToTetrahedraP1(std::vector<number_t> nodeNumbers)
-
return nodes numbers of first order tetrahedron elements when splitting third order tetrahedron
-
inline SuTermVector sqrt(const SuTermVector &s)
-
inline SymbolicFunction &sqrt(const SymbolicFunction &f)
-
inline TermVector sqrt(const TermVector &s)
-
static const real_t sqrt2_over_pi(std::sqrt(two_over_pi))
-
inline SuTermVector squared(const SuTermVector &s)
-
inline SymbolicFunction &squared(const SymbolicFunction &f)
-
inline TermVector squared(const TermVector &s)
-
void storeEigenVector(const TermMatrix *A_p, ValueType vt, bool singleUnknown, VectorEntry *eigvec, TermVector &resVec)
-
Utility function to store data of an eigenvector into a TermVector.
-
void storeElSides(const GeomElement *el_p, number_t noelt, SIDELTMAP &parentEl)
-
string_t str(const Parameter&)
-
cast to string_t
-
template<typename T>
T stringto(const string_t &s)
-
returns string converted to T
-
template<>
inline const void *stringto(const string_t &s)
-
returns string converted to T
-
string_t struct2Str(StrucType s)
-
inline StrucType strucType(const complex_t &x)
-
inline StrucType strucType(const real_t &x)
-
real_t struveNotH0(real_t x)
-
Struve function of order 0, H_0(x) returns H_0(x) for any |x|<=8, H_0(x)-Y_0(x) for any |x|>8.
-
std::pair<real_t, real_t> struveNotH01(real_t x)
-
returns both H_0(x) and H_1(x) for any |x|<8, returns H_0(x)-Y_0(x) and H_1(x)-Y_1(x) for any |x|>8.
-
real_t struveNotH1(real_t x)
-
Struve function of order 1, H_1(x) returns H_1(x) for any |x|<=‡8, H_1(x)-Y_1(x) for any |x|>8.
-
Space &subSpace(Space &sp, const GeomDomain &dom)
-
return sub-space or trace space on domain of a space, created if not exist
-
Geometry surfaceFrom(const Geometry &c, string_t domName, bool isPlaneSurface)
-
definition of a geometry 2D from its boundary 1D
definition of a geometry 2D from an union of boundaries 1D
-
Vector<real_t> surfToArcParametrizationu0(const Point &p, Parameters &pars, DiffOpType d)
-
Vector<real_t> surfToArcParametrizationu1(const Point &p, Parameters &pars, DiffOpType d)
-
Vector<real_t> surfToArcParametrizationv0(const Point &p, Parameters &pars, DiffOpType d)
-
Vector<real_t> surfToArcParametrizationv1(const Point &p, Parameters &pars, DiffOpType d)
-
template<typename T>
LowRankMatrix<T> &svd(const LargeMatrix<T> &lm, LowRankMatrix<T> &lrm, number_t r = 0, real_t eps = theTolerance)
-
svd of a LargeMatrix
SVD compression method of a LargeMatrix to a LowRankMatrix Lr produce the best matrix approximation Lr of rank r (see Eckart-Young-Mirsky theorem)
T: type of the result lm: LargeMatrix to be compressed r: prescribed rank of truncature, if 0 not used, the real rank at output eps: prescribed precision, if rk > 0 not used r=0 and eps=0 gives the full svd lrm: LowRankMatrix
-
template<typename T>
void svd(Matrix<T> &A, Matrix<T> &U, Vector<T> &D, Matrix<T> &V, number_t r = 0, real_t eps = 0.)
-
SVD or truncated SVD with either rank or precision truncation T: type of the matrix (real or complex) A: Matrix to be be factorized U,D,V: SVD factors A=U*D*V’ or A~U*D*V’ (output) r: prescribed rank eps: singularvalue threshold if r > 0, the SVD is restricted to the first r singular values else it is restricted to the first singular values smaller than eps rmk: r=0 and eps=0 gives the full svd.
-
template<typename T>
void svd(T *A, number_t m, number_t n, T *U, T *D, T *V, number_t &rk, real_t eps = 0.)
-
general template svd using Eigen, assuming A, U, V are pointers to first value of DENSE ROW matrix A: pointer to dense row matrix m,n: number of rows and cols of A U, V: pointer to dense row matrices, has to be allocated before S: pointer to S vector, has to be allocated before rk: prescribed rank of truncature, if 0 not used, the real rank at output eps: prescribed precision, if rk > 0 not used r=0 and eps=0 gives the full svd
note: may be used when A is a pointer to a m x n col dense matrix, by permuting arguments when calling: svd(A,n,m,V,D,U,rk,eps) produces the SVD of A produces the SVD of A = U*D*V’ where U, V are pointers to row dense matrices!
-
SvdElements svd(TermMatrix *A, const std::vector<Parameter> &ps)
-
Main entry point for SVD decomposition using Arpack.
-
bool symAmd(number_t nbr, number_t nbc, const std::vector<number_t> &colIndices, const std::vector<number_t> &rowPointer, std::vector<number_t> &colPerm)
-
inline SymbolicTermMatrix &symb(const TermMatrix &M)
-
Vector<real_t> symbolic_curabc(const Point&, Parameters&, DiffOpType)
-
to deal with symbolic paramerization curvilinear abcissa
-
Vector<real_t> symbolic_curvature(const Point&, Parameters&, DiffOpType)
-
to deal with symbolic paramerization curvature
-
Vector<real_t> symbolic_f(const Point&, Parameters&, DiffOpType)
-
to deal with symbolic paramerization f
-
Vector<real_t> symbolic_invParametrization(const Point&, Parameters&, DiffOpType)
-
to deal with symbolic paramerization invParametrization
-
Vector<real_t> symbolic_length(const Point&, Parameters&, DiffOpType)
-
to deal with symbolic paramerization length
-
Vector<real_t> symbolic_normal(const Point&, Parameters&, DiffOpType)
-
to deal with symbolic paramerization normal
-
Vector<real_t> symbolic_tangent(const Point&, Parameters&, DiffOpType)
-
to deal with symbolic paramerization tangent
-
inline SuTermVector tan(const SuTermVector &s)
-
inline SymbolicFunction &tan(const SymbolicFunction &f)
-
inline TermVector tan(const TermVector &s)
-
inline Vector<real_t> tangent_Piecewise(const Point &pt, Parameters &pars, DiffOpType d = _id)
-
extern parametrization call
-
inline SuTermVector tanh(const SuTermVector &s)
-
inline SymbolicFunction &tanh(const SymbolicFunction &f)
-
inline TermVector tanh(const TermVector &s)
-
SuTermVector tensorCrossProduct(const SuTermVector &tv1, const SuTermVector &tv2)
-
tensor cross product => vector SuTermVector in 3D, scalar SuTermVector in 2D
tensor hermitian product => scalar SuTermVector
-
TermVector tensorCrossProduct(const TermVector &s1, const TermVector &s2)
-
tensor cross product of single unknown vector TermVector => single unknown vector/scalar TermVector (in 3D/2D)
-
SuTermVector tensorHermitianProduct(const SuTermVector &tv1, const SuTermVector &tv2)
-
tensor hermitian product => scalar SuTermVector (conjugate tv2 if it is complex) produce vector of hermitian product of components SuTermVector must have same same dofs and same number of components the SutermVector result has unknown and space of tv1
tensor inner product => scalar SuTermVector (not conjugate)
-
TermVector tensorHermitianProduct(const TermVector &s1, const TermVector &s2)
-
tensor hermitian product of single unknown vector TermVector => single unknown scalar TermVector
-
void tensorHexahedronSideNumbering(number_t *&sh1, number_t *&sh2, number_t &p, const int interpNum, const number_t qq1, const number_t qq2, const number_t qq3, const number_t qq4, const short int sens)
-
correspondence between segment and quadrangular face numbering
correspondence between segment and hexahedron face local numbering
Examples of local numbering of Lagrange Pk 1D elements
2----1 2---3---1 2---4---3---1 2---5---4---3---1 2---6---5---4---3---1 k=1 k=2 k=3 k=4 k=5
point number p has coordinates defined by
( x = coords[s2h[0][p]], y = coords[s2h[1][p]], z = coords[s2h[3][p]] )
where coords are coordinates of the associated 1D Lagrange reference element
and
shape functions are defined by tensor product of shape functions of the 1D reference element
w3_p(x,y,z) = w1_{s2h[0][p]}(x) * w1_{s2h[1][p]}(y) * w1_{s2h[2][p]}(z)
where w1_k is the k-th shape function of the associated 1D Lagrange reference element
-
SuTermVector tensorInnerProduct(const SuTermVector &tv1, const SuTermVector &tv2)
-
tensor inner product => scalar SuTermVector (not conjugate when tv2 is complex) produce vector of inner product of components SuTermVector must have same same dofs and same number of components the SutermVector result has unknown and space of tv1
-
TermVector tensorInnerProduct(const TermVector &s1, const TermVector &s2)
-
tensor inner product of single unknown vector TermVector => single unknown scalar TermVector (not conjugate)
-
template<class ST_>
void tensorNumbering(const int interpNum, number_t **&s2h)
-
template<class ST_>
void tensorNumbering(const int interpNum, std::vector<number_t> &s2t)
-
template<>
void tensorNumbering<subdivision::Hexahedron>(const int interpNum, number_t **&s2h)
-
template<>
void tensorNumbering<subdivision::Quadrangle>(const int interpNum, std::vector<number_t> &s2t)
-
template<>
void tensorNumbering<subdivision::Tetrahedron>(const int interpNum, number_t **&s2h)
-
template<>
void tensorNumbering<subdivision::Triangle>(const int interpNum, std::vector<number_t> &s2t)
-
void tensorNumberingHexahedron(const int interpNum, number_t **&s2h)
-
tensorNumberingHexahedron: correspondence between segment and hexahedron local numbering
correspondence between segment and hexahedron local numbering such that
-
void tensorNumberingQuadrangle(const int interpNum, std::vector<number_t> &s2q)
-
tensorNumberingQuadrangle: correspondence between segment and quadrangle local numbering
correspondence between segment and quadrangle local numbering
point number p has coordinates defined by ( x = coords[s2q[2*p]], y = coords[s2q[2*p+1]] ) where coords are coordinates of the associated 1D Lagrange reference element and shape functions are defined by tensor product of shape functions of the 1D reference element w2_p(x,y) = w1_{s2q[2*p]}(x) * w1_{s2q[2*p+1]}(y) where w1_k is the k-th shape function of the associated 1D Lagrange reference element
-
void tensorNumberingTetrahedron(const int interpNum, number_t **&s2t)
-
correspondance between segment and tetrahedron local numbering defined such that
correspondence between segment and hexahedron local numbering such that
point number p has coordinates defined by
( x = coords[s2h[0][p]], y = coords[s2h[1][p]], z = coords[s2h[3][p]] ) where coords are coordinates of the associated 1D Lagrange reference element -— No longer used –—
-
void tensorNumberingTriangle(const int interpNum, std::vector<number_t> &s2t)
-
point number p has coordinates defined by ( x = coords[s2q[2*p]], y = coords[s2q[2*p+1]] ) where coords are coordinates of the associated 1D Lagrange reference element
correspondence between segment and triangle local numbering
Examples of local numbering of Lagrange Pk 1D elements 2—1 2—3—1 2—4—3—1 2—5—4—3—1 2—6—5—4—3—1 2—7—6—5—4—3—1 . k=1 k=2 k=3 k=4 k=5 k=6 Examples of local numbering of Lagrange Pk triangles
2 2 2 2 2 2 | \ | \ | \ | \ | \ | \ 3—1 5 4 5 7 5 10 5 13 5 16 . k=1 | \ | \ | \ | \ | \ ……. 3—6—1 8 10 4 8 14 7 8 17 10 8 20 13 ………. k=2 | \ | | \ \ | | \ \ | | \ \ ……………… 3—6—9—1 11 15—13 4 11 20 19 7 11 23 25 10 …………………… k=3 | \ | | \ \ | | \ \ …………………………… 3—6—9—12—1 14 18—21—16 4 14 26 28 22 7 …………………………………… k=4 | \ | | \ \ ……………………………………………. 3—6—9—12—15—1 17 21—24—27—19 4 ……………………………………………………. k=5 | \ ………………………………………………………………… 3—6—9—12—15—18—1 ………………………………………………………………………….. k=6
-
template<typename T, typename KU, typename KV>
inline void tensorOpAdd(const AlgebraicOperator &op, const std::vector<KU> &u, number_t nu, const std::vector<KV> &v, number_t nv, Matrix<T> &mat, const T &alpha)
-
evaluate “tensor” operation between 2 small vectors, and add it to a given a nu x nv matrix mat (stored by rows)
op: algebraic operator involved (either product, inner product, cross product, contracted product) alpha is a coefficient applied to the added “tensor” matrix u (resp. v) is
either a list of nu scalar values (resp. nv scalar values)
or a list of nbu (resp. nbv) vector values (u_1,u_2,..u_nu) stored as (u_1)1 …(u_1)mu (u_2)1 … (u_2)mu …..(u_nu)1 …(u_nu)mu with mu=u.size()/nu for scalar case (mu=mv=1) all product are equivalent for vector case (mu=mv>1) only inner product is currently available for matrix case (mu=mv>1) only contracted product is currently available
-
template<typename T, typename iteratorM, typename iteratorK>
inline void tensorOpAdd(const AlgebraicOperator &opu, const AlgebraicOperator &opv, const std::vector<T> &u, number_t nu, const std::vector<T> &v, number_t nv, iteratorM itm, iteratorK itk, number_t mk, number_t nk)
-
evaluate “tensor” operation between 2 small vectors and “coefficient” ker, and add it to a given a nu x nv matrix mat (stored by rows) u opu ker opv v u (resp.
v) is
either a list of nu scalar values (resp. nv scalar values)
or a list of nbu (resp. nbv) vector values (u_1,u_2,..u_nu) stored as (u_1)1 …(u_1)mu (u_2)1 … (u_2)mu …..(u_nu)1 …(u_nu)mu with mu=u.size()/nu for scalar case (mu=mv=1) all product are equivalent for vector case (mu=mv>1) only inner product is currently available
itk is an iterator to the kernel part (either a scalar, a vector (mk or nk) or a matrix (mk x nk))
-
template<typename T1_iterator, typename T2_iterator, typename R_iterator>
void tensorProductTpl(T1_iterator b1, T1_iterator e1, T2_iterator b2, T2_iterator e2, R_iterator Rb)
-
accumulated tensor product: “R[i,j] = R[i,j] + T1[i] * T2[j]”
-
void tensorTetrahedronSideNumbering(const int nk, const dimen_t i0, const dimen_t i1, const dimen_t i2, const number_t z1, const number_t xx1, const number_t xx2, number_t **&s2t, number_t &p)
-
bool tetrahedraIntersect(const Point &A1, const Point &B1, const Point &C1, const Point &D1, const Point &A2, const Point &B2, const Point &C2, const Point &D2)
-
bool tetrahedraOverlap(const std::vector<Point> &t1, const std::vector<Point> &t2)
-
implementation of the “Separating Axis Test” for a pair of tetrahedra
determines if 2 tetrahedra overlap
The main idea is that if tetrahedra does not overlap, there exists an axis where their projections does not overlap This axis has one of the following properties:
the axis is orthogonal to one face of one of the tetrahedra
the axis is orthogonal to an edge on each tetrahedron
overlapping means intersection has a non null measure
The main idea of the method is to test each face of both tetrahedra then test each pair of edges (one per tetrahedron) If one of these elementary tests separates, then false is returned (no overlap), else their is overlapping
-
RefElement *tetrahedronCrouzeixRaviartStd(const Interpolation *interp_p)
-
tetrahedronCrouzeixRaviartStd construction of a CrouzeixRaviart Reference Element by interpolation number
-
RefElement *tetrahedronLagrangeStd(const Interpolation *interp_p)
-
tetrahedronLagrangeStd construction of a Lagrange standard Reference Element by interpolation number particular formulae up to P3 else general method using monomes basis
-
RefElement *tetrahedronNedelecEdge(const Interpolation *interp_p)
-
RefElement *tetrahedronNedelecFace(const Interpolation *interp_p)
-
Quadrature *tetrahedronQuadrature(QuadRule, number_t)
-
find or create quadrature rule over the unit tetrahedron
-
real_t tetrahedronVolume(const Point&, const Point&, const Point&, const Point&)
-
volume of a tetrahedron
-
string_t theDate()
-
returns current date as dd.mmm.yyyy
returns current date as dd.mmm.yyyy e.g.
29.feb.2004
-
string_t theIsoDate()
-
returns ISO8601 format of current date (yyyy-mm-dd)
returns ISO8601 format of current date (yyyy-mm-dd), e.g.
2004-02-29
-
string_t theIsoTime()
-
returns ISO8601 format of current date (hh-mi-ss)
returns ISO8601 format of current time (hh-mi-ss), e.g.
04-39-51
-
string_t theLongDate()
-
returns current date as Month Day, Year (en) or Day Month Year (fr)
-
string_t theShortDate()
-
returns current date as mm/dd/yyyy (en) or dd/mm/yyyy (fr)
-
SymbolicFunction theta_(_theta)
-
string_t theTime()
-
returns current time
returns current time e.g.
04h32
- static const real_t three_pi_over4 (3 *pi_over4)
-
void timerInit()
-
initialization procedure for time handling
initialization of engine for time handling
-
OperatorOnFunction ×n(const Function&)
-
f*n
-
OperatorOnFunction ×n(OperatorOnFunction&)
-
opf*n
-
OperatorOnFunction ×ncrossn(const Function&)
-
f*(n^n)
-
OperatorOnFunction ×ncrossn(OperatorOnFunction&)
-
opf*(n^n)
-
Point toBarycentric(const Point &M, const Point &S1, const Point &S2, const Point &S3, const Point &S4)
-
return barycentric coordinates of a point M related to segment (S1,S2), to triangle (S1,S3,S3), to tetrahedron (S1,S2,S3,S4) checking degenerancy of simplex
-
Point toBarycentricNocheck(const Point &M, const Point &S1, const Point &S2, const Point &S3, const Point &S4)
-
return barycentric coordinates of a point M related to segment (S1,S2), to triangle (S1,S3,S3), to tetrahedron (S1,S2,S3,S4) works in 2D, 3D, does not require that M belongs to line (S1,S2) or plane (S1,S2,S3) in that case, it gives the barycentric coordinates of the orthogonal projection of M on line or plane if fails (degenerated simplex), return a void Point
-
inline SuTermVector toComplex(const SuTermVector &s)
-
TermMatrix toComplex(const TermMatrix &tm)
-
return the complex representation of the given TermMatrix
-
inline void toComplex(real_t x, real_t y, complex_t &z)
-
load table from file
-
inline void toComplex(real_t x, real_t y, real_t &z)
-
Geometry toComposite(const Geometry &g)
-
conversion of a canonical or loop Geometry into a composite geometry with one component
return a composite geometry with only one component: g
if g is canonical, the components_ vector contains only g
if g is loop, the components_ vector contains every border of g and g itself
if g is composite, it does nothing
this function is necessary when initializing composite Geometry before using += and -= operators
-
Transformation toComposite(const Transformation &t)
-
conversion of a canonical Transformation into a composite Transformation with one component
return a composite Transformation with only one component: t
if t is canonical, the components_ vector contains only t
if t is composite, it does nothing
this function is necessary when initializing composite Transformation before using += operator
-
Point toEllipticCoordinates(const Point &P, const Point &C, const Point &A1, const Point &A2)
-
returns (r,theta,phi) coordinates of a point related to an ellipsoid (C center, A1,A2,A3 the three apogees) P-C = r(A1-C)) cos(theta) cos(phi) + r(A2-C) sin(theta) cos(phi) + r(A3-C) sin(phi) r >=0 , azymuth theta in ]-pi,pi], elevation phi in [-pi/2,pi/2] NB: if C=(0,0,0), A1=(1,0,0), A2=(0,1,0), A3=(0,0,1) then it gives the usual sperical coordinates r=1 on the boundary of the ellisoid
returns (r,theta) related to the ellipse (C,A1,A2)
-
Point toEllipticCoordinates(const Point &P, const Point &C, const Point &A1, const Point &A2, const Point &A3)
-
returns (r,theta,phi) related to the ellipsoid (C,A1,A2,A3)
-
Point toEllipticCoordinates(const Point &P, real_t r1, real_t r2)
-
returns (r,theta) coordinates of a point related to an a centered orthogonal ellipse with radius r1,r2 calls general case (not the fastest method)
returns (r,theta) related to the orthogonal ellipse of size (r1,r2)
-
Point toEllipticCoordinates(const Point &P, real_t r1, real_t r2, real_t r3)
-
returns (r,theta,phi) coordinates of a point related to an a centered orthogonal ellipsoid with radius r1,r2,r3 calls general case (not the fastest method)
returns (r,theta,phi) related to the orthogonal ellipsoid of size (r1,r2,r3) compute barycentric coordinates related to segment, triangle or tetrahedron
-
OperatorOnUnknown toOperatorOnUnknown(const KernelOperatorOnTermVector &koptv)
-
OperatorOnUnknown toOperatorOnUnknown(const KernelOperatorOnUnknowns&)
-
move partial KernelOperatorOnUnknowns to OperatorOnUnknown
-
Point toPolar(const Point &P)
-
returns Point as Point in spherical coordinates (r,theta,phi) r=sqrt(x*x+y*y+z*z) azymuth theta = atan2(y,x) in ]-pi,pi], elevation phi = asin(z/r) in [-pi/2,pi/2] reverse map: x= r cos(theta) cos(phi), y = r sin(theta) cos(phi), z = r sin(phi)
-
complex_t toRealComplex(const Vector<complex_t>&, const complex_t &c)
-
real_t toRealComplex(const Vector<real_t> &v, const complex_t &c)
-
special cast function used by FEComputation’s
-
Point toSpherical(const Point &P)
-
returns (r,theta) coordinates of a point related to an ellipse (C center, A1,A2, the two apogees) P-C = r(A1-C)) cos(theta) + r(A2-C) sin(theta) r >=0 , azymuth theta in ]-pi,pi] NB: if C=(0,0), A1=(1,0), A2=(0,1) then it gives the usual polar coordinates r=1 on the boundary of the ellipse
-
template<typename T>
string_t tostring(const T &t)
-
returns T converted to string
-
real_t totalCpuTime()
-
returns user time (“cputime”) interval since first runtime ‘call’ according to unit defined in Time::deltacpuTime
returns elapsed time interval in sec.
since first runtime ‘call’
-
real_t totalCpuTime(const string_t &comment, CoutStream &out)
-
real_t totalCpuTime(const string_t &comment, PrintStream &out)
-
real_t totalCpuTime(const string_t &comment, std::ostream &out = std::cout)
-
returns elapsed time interval in sec.
since first runtime ‘call’ and prints it with comment
-
real_t totalElapsedTime()
-
returns elapsed time interval since first runtime ‘call’ according to unit defined in Time::deltaTime
returns elapsed time interval in sec.
since first runtime ‘call’
-
real_t totalElapsedTime(const string_t &comment, CoutStream &out)
-
real_t totalElapsedTime(const string_t &comment, PrintStream &out)
-
real_t totalElapsedTime(const string_t &comment, std::ostream &out = std::cout)
-
returns elapsed time interval in sec.
since first runtime ‘call’ and prints it with comment
-
Vector<real_t> toVector(const Point &p)
-
return Point as a Vector<real_t>
return as Vector
returns q-p as VectorVector<real_t>
-
void traceInit()
-
initialization procedure for trace handling
initialization of engine for trace handling
-
inline complex_t tran(const complex_t&)
-
inline real_t tran(const real_t&)
-
template<typename K>
SparseMatrix<K> tran(const SparseMatrix<K> &m)
-
transpose matrix
-
OperatorOnFunction &tran(Function&)
-
transpose f
-
OperatorOnKernel &tran(Kernel&)
-
transpose k
-
OperatorOnFunction &tran(OperatorOnFunction&)
-
transpose opf
-
OperatorOnKernel &tran(OperatorOnKernel&)
-
transpose opk
-
SymbolicTermMatrix &tran(SymbolicTermMatrix &S)
- template<typename T> inline Function & tran (T(fun)(const Point &, const Point &, Parameters &))
- template<typename T> inline Function & tran (T(fun)(const Point &, Parameters &))
- template<typename T> inline Function & tran (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &))
- template<typename T> inline Function & tran (T(fun)(const Vector< Point > &, Parameters &))
- template Ball transform (const Ball &g, const Transformation &t)
- template CircArc transform (const CircArc &g, const Transformation &t)
- template Cone transform (const Cone &g, const Transformation &t)
- template Cube transform (const Cube &g, const Transformation &t)
- template Cuboid transform (const Cuboid &g, const Transformation &t)
- template Curve transform (const Curve &g, const Transformation &t)
- template Cylinder transform (const Cylinder &g, const Transformation &t)
- template Disk transform (const Disk &g, const Transformation &t)
- template EllArc transform (const EllArc &g, const Transformation &t)
- template Ellipse transform (const Ellipse &g, const Transformation &t)
- template Ellipsoid transform (const Ellipsoid &g, const Transformation &t)
-
template<class Geom>
Geom transform(const Geom &g, const Transformation &t)
-
apply a geometrical transformation on a Geom (template external)
-
Geometry transform(const Geometry &g, const Transformation &t)
-
apply a geometrical transformation on a Geometry (external)
- template Hexahedron transform (const Hexahedron &g, const Transformation &t)
-
Mesh transform(const Mesh &m, const Transformation &t, const string_t &meshname = "", const string_t &suffix = "")
-
apply a geometrical transformation on a Mesh (external)
- template Parallelepiped transform (const Parallelepiped &g, const Transformation &t)
- template Parallelogram transform (const Parallelogram &g, const Transformation &t)
- template ParametrizedArc transform (const ParametrizedArc &g, const Transformation &t)
-
inline Point transform(const Point &p, const Transformation &t)
-
apply a geometrical transformation on a Point
- template Polygon transform (const Polygon &g, const Transformation &t)
- template Polyhedron transform (const Polyhedron &g, const Transformation &t)
- template Prism transform (const Prism &g, const Transformation &t)
- template Pyramid transform (const Pyramid &g, const Transformation &t)
- template Quadrangle transform (const Quadrangle &g, const Transformation &t)
- template Rectangle transform (const Rectangle &g, const Transformation &t)
- template RevCone transform (const RevCone &g, const Transformation &t)
- template RevCylinder transform (const RevCylinder &g, const Transformation &t)
- template RevTrunk transform (const RevTrunk &g, const Transformation &t)
- template Segment transform (const Segment &g, const Transformation &t)
- template SetOfElems transform (const SetOfElems &g, const Transformation &t)
- template SplineArc transform (const SplineArc &g, const Transformation &t)
- template SquareGeo transform (const SquareGeo &g, const Transformation &t)
- template Surface transform (const Surface &g, const Transformation &t)
- template Tetrahedron transform (const Tetrahedron &g, const Transformation &t)
- template Triangle transform (const Triangle &g, const Transformation &t)
- template Trunk transform (const Trunk &g, const Transformation &t)
- template Volume transform (const Volume &g, const Transformation &t)
-
template<typename K>
void transformMatrix(MatrixEigenDense<K> &mat)
-
Reverse all elements of a matrix.
-
template<typename K>
void transformVectorDense(VectorEigenDense<K> &v)
-
template<class Geom>
Geom translate(const Geom &g, const Parameter &p1)
-
apply a translation on a Geom (1 key) (template external)
-
template<class Geom>
Geom translate(const Geom &g, real_t ux, real_t uy, real_t uz = 0.)
-
apply a translation on a Geom (3 reals version) (template external)
-
template<class Geom>
Geom translate(const Geom &g, std::vector<real_t> u = std::vector<real_t>(3, 0.))
-
apply a translation on a Geom (vector version) (template external)
-
inline Geometry translate(const Geometry &g, const Parameter &p1)
-
apply a translation on a Geometry (1 key) (template external)
-
inline Geometry translate(const Geometry &g, real_t ux, real_t uy, real_t uz = 0.)
-
apply a translation on a Geometry (3 reals version) (template external)
-
inline Geometry translate(const Geometry &g, std::vector<real_t> u = std::vector<real_t>(3, 0.))
-
apply a translation on a Geometry (vector version) (template external)
-
Mesh translate(const Mesh &m)
-
apply a translation on a Mesh (vector version) (external)
apply a translation on a Mesh (no vector) (external)
-
Mesh translate(const Mesh &m, const Parameter &p1, const Parameter &p2)
-
apply a translation on a Mesh (2 keys) (external)
-
Mesh translate(const Mesh &m, const Parameter &p1, const Parameter &p2, const Parameter &p3)
-
apply a translation on a Mesh (3 keys) (external)
-
Mesh translate(const Mesh &m, real_t ux, real_t uy = 0., real_t uz = 0.)
-
apply a translation on a Mesh (3 reals version) (external)
-
Mesh translate(const Mesh &m, std::vector<real_t> u)
-
apply a translation on a Mesh (vector version) (external)
-
inline Point translate(const Point &g, const Parameter &p1)
-
apply a translation on a Point (1 key) (template external)
-
inline Point translate(const Point &g, real_t ux, real_t uy, real_t uz = 0.)
-
apply a translation on a Point (3 reals version) (template external)
-
inline Point translate(const Point &g, std::vector<real_t> u = std::vector<real_t>(3, 0.))
-
apply a translation on a Point (vector version) (template external)
-
inline complex_t transpose(const complex_t &c)
-
template<typename M_it, typename MM_it>
void transpose(const dimen_t nbr, const dimen_t nbc, M_it it_m1b, MM_it it_m2b)
-
template<typename T>
LargeMatrix<T> transpose(const LargeMatrix<T> &L)
-
template<typename K>
MatrixEigenDense<K> transpose(const MatrixEigenDense<K> &mat)
-
inline real_t transpose(const real_t &r)
-
template<typename K>
SparseMatrix<K> transpose(const SparseMatrix<K> &m)
-
template<typename K>
VectorEigenDense<K> transposeVec(const VectorEigenDense<K> &v)
-
Transpose a vector.
- Parameters:
-
v – [in] source vector
- Returns:
-
transposed vector
-
template<typename T, typename Iterator>
T trapz(number_t n, real_t h, Iterator itb, T &intg)
-
uniform trapeze method from a list of n values uniformaly distributed (step h) n: number of values h: step itb: first position in the list of values intg: value of integral
-
template<typename T>
T trapz(T (*f)(real_t), real_t a, real_t b, number_t n)
-
uniform trapeze method on [a,b] interval from a function and a number of points
-
template<typename T>
T trapz(T (*f)(real_t, Parameters&), Parameters &pars, real_t a, real_t b, number_t n)
-
uniform trapeze method on [a,b] interval from a function with parameters and a number of points
-
std::set<GeomElement*> treeToSet(Node<GeomElement> &tree)
-
RefElement *triangleArgyris(const Interpolation *interp_p)
-
triangleMorley construction of the Morley Reference Element
-
RefElement *triangleCrouzeixRaviartStd(const Interpolation *interp_p)
-
triangleCrouzeixRaviartStd construction of a Crouzeix_Raviart standard Reference Element by interpolation number
-
std::vector<real_t> triangleEdgesLengths(const Point &T1, const Point &T2, const Point &T3)
-
lengths of edges of the triangle whose vertices are T1, T2 and T3 first edge is T2T3, second height T1T3 and last height T1T2
lengths of edges of the triangle whose vertices are given
-
std::vector<real_t> triangleHeightsLengths(const Point &T1, const Point &T2, const Point &T3)
-
lengths of heights of the triangle whose vertices are T1, T2 and T3 first height is from T1, second height from T2 and last height from T3
lengths of heights of the triangle whose vertices are given
-
RefElement *triangleHermiteStd(const Interpolation *interp_p)
-
triangleHermiteStd construction of a Hermite standard Reference Element by interpolation number
-
RefElement *triangleLagrangeStd(const Interpolation *interp_p)
-
triangleLagrangeStd construction of a Lagrange standard Reference Element by interpolation number
-
RefElement *triangleMorley(const Interpolation *interp_p)
-
triangleMorley construction of the Morley Reference Element
-
RefElement *triangleNedelec(const Interpolation *interp_p)
-
triangleNedelec construction of a Nedelec standard Reference Element by interpolation number
-
Quadrature *triangleQuadrature(QuadRule, number_t)
-
find or create quadrature rule over the unit triangle
-
RefElement *triangleRaviartThomasStd(const Interpolation *interp_p)
-
triangleRaviart_ThomasStd construction of a Raviart_Thomas standard Reference Element by interpolation number
-
std::vector<std::pair<real_t, dimen_t>> trihedralOrientation(const Point &o, const Point &px, const Point &py, const Point &pz)
-
computes orientation of a trihedral, namely rotation angles around each axis to come from the standard trihedral to the given one basic idea:
computes orientation of a trihedral
first we determine the rotation Rz around z axis so that image (o, px1) of (o, px) is in the plane xOz with positive x coordinate
secondly we determine the rotation Ry around y axis so that image (o, px2) of (o, px1) is along x axis with positive coordinate
at last we determine the rotation Rx around x axis so that image (o, py1) of (o, py) is along y axis with positive coordinate
we store opposite values of found rotation angles when not null in opposite order (rotations does not commute)
angles are in degree and between 0. and 360.
-
string_t trim(const string_t &s, const char *delim)
-
convert “ a b c d e f “ to “a b c d e f”
trims leading and trailing white space from string_t
-
string_t trimLeading(const string_t &s, const char *delim)
-
convert “ a b c d e f “ to “a b c d e f “
trims leading white space from string_t
-
string_t trimTrailing(const string_t &s, const char *delim)
-
convert “ a b c d e f “ to “ a b c d e f”
trims trailing white space from string_t
-
template<typename T>
Vector<T> trivialNumbering(const T &n1, const T &n2)
-
create trivial numbering vector n1, n1+1, …,n2
- static const real_t two_over_pi (2./pi_)
-
string_t type2Str(ValueType t)
-
string_t typeArg2Str(ArgType ta)
-
string_t typeFun2Str(FunctType tf)
-
template<typename T>
structPair typeOf(const T &v)
-
template<typename S>
void umfpackFactorize(LargeMatrix<S> &mat)
-
void umfpackFactorize(TermMatrix &A, TermMatrix &Af)
-
void umfpackSolve(MatrixEntry&, std::vector<VectorEntry*>&, std::vector<VectorEntry*>&, real_t&)
-
umfpack solver with multiple right hand side (only in scalar representation)
-
void umfpackSolve(MatrixEntry&, VectorEntry&, VectorEntry&, real_t&)
-
umfpack solver (only in scalar representation)
-
SuTermVector umfpackSolve(SuTermMatrix&, const SuTermVector&, bool keepA = false)
-
solve AX=B using umfpack if available
-
SuTermVector umfpackSolve(SuTermMatrix &A, const SuTermVector &B, real_t &rcond, bool keepA)
-
TermVectors umfpackSolve(TermMatrix &A, const std::vector<TermVector> &Bs, bool keepA)
-
TermVectors umfpackSolve(TermMatrix &A, const std::vector<TermVector> &Bs, real_t &rcond, bool keepA)
-
TermVector umfpackSolve(TermMatrix &A, const TermVector &B, bool keepA)
-
TermVector umfpackSolve(TermMatrix &A, const TermVector &B, real_t &rcond, bool keepA)
-
inline Vector<real_t> unCurvatures(const Point &p, bool fromParameters, Parameters &pars)
-
void uniformDistribution(complex_t *mat, number_t n = 1, number_t m = 1)
-
compute a matrix with complex coefficient following an uniform distribution on [0,1[ (using <random> if C11)
-
void uniformDistribution(complex_t *mat, real_t a, real_t b, number_t n = 1, number_t m = 1)
-
compute a matrix with complex coefficient following an uniform distribution on [a,b[ (using <random> if C11)
-
template<typename T>
std::vector<T> uniformDistribution(number_t n, number_t m, real_t a = 0., real_t b = 1.)
-
void uniformDistribution(real_t *mat, number_t n = 1, number_t m = 1)
-
compute a matrix with real coefficient following an uniform distribution on [0,1[ (using <random> if C11)
-
void uniformDistribution(real_t *mat, real_t a, real_t b, number_t n = 1, number_t m = 1)
-
compute a matrix with real coefficient following an uniform distribution on [a,b[ (using <random> if C11)
-
real_t uniformDistribution(real_t a = 0., real_t b = 1.)
-
return a sample from an uniform distribution on [a,b[ (using <random> if C11)
-
template<typename T>
void uniformDistribution(std::vector<T> &mat, number_t n, number_t m, real_t a = 0., real_t b = 1.)
-
template<typename T>
void uniformDistribution(std::vector<T> &v, real_t a = 0., real_t b = 1.)
-
void uniformDistributionC(complex_t *mat, number_t n = 1, number_t m = 1)
-
compute a matrix with complex coefficient following an uniform distribution on [0,1[ (using rand())
-
void uniformDistributionC(complex_t *mat, real_t a, real_t b, number_t n = 1, number_t m = 1)
-
compute a matrix with complex coefficient following an uniform distribution on [a,b[ (using rand())
-
void uniformDistributionC(real_t *mat, number_t n = 1, number_t m = 1)
-
compute a matrix with real coefficient following an uniform distribution on [0,1[ (using rand())
-
void uniformDistributionC(real_t *mat, real_t a, real_t b, number_t n = 1, number_t m = 1)
-
compute a matrix with real coefficient following an uniform distribution on [a,b[ (using rand())
-
real_t uniformDistributionC(real_t a = 0., real_t b = 1.)
-
return a sample from an uniform distribution on [a,b[ (using rand())
-
Space *unionOf(std::vector<Space*> &sps)
-
union of subspaces the result, returned as space pointer, may be
union of subspaces
one subspace of the list if it includes all others
the root space if the union gives the whole space
a new subspace
-
string_t unknownEcName(const EssentialCondition&)
-
to create an unknown name associated to an essential condition
-
template<typename ITV, typename ITAB, typename T>
void updateAcaPlus(ITV itv, ITAB itAb, ITAB itBb, number_t mn, number_t lmax, number_t ijp, bool row, T &piv, number_t &jip, bool updatePiv, std::vector<number_t> *rowcol = nullptr)
-
OperatorOnUnknown &updateLeft(OperatorOnUnknown&, const Function&, AlgebraicOperator)
-
update F*Op(u) operation
-
OperatorOnUnknown &updateLeft(OperatorOnUnknown&, const OperatorOnFunction&, AlgebraicOperator)
-
update op(F)*Op(u) operation
-
OperatorOnUnknown &updateLeft(OperatorOnUnknown&, const Value&, AlgebraicOperator)
-
update V*Op(u) operation
-
template<typename T>
OperatorOnUnknown &updateLeft(OperatorOnUnknown &opu, const T &val, AlgebraicOperator o)
-
void updateRhs(TermMatrix&, TermVector&)
-
prepare rhs B of linear system AX=B (internal tool)
-
OperatorOnUnknown &updateRight(OperatorOnUnknown&, const Function&, AlgebraicOperator)
-
update Op(u)*F operation
-
OperatorOnUnknown &updateRight(OperatorOnUnknown&, const OperatorOnFunction&, AlgebraicOperator)
-
update Op(u)*op(F) operation
-
OperatorOnUnknown &updateRight(OperatorOnUnknown&, const Value&, AlgebraicOperator)
-
update Op(u)*V operation
-
template<typename T>
OperatorOnUnknown &updateRight(OperatorOnUnknown &opu, const T &val, AlgebraicOperator o)
-
MatrixStorage *updateStorage(MatrixStorage &stm, const std::vector<number_t> rows, const std::vector<number_t> cols, StorageType st, AccessType at, bool overwrite)
-
modify MatrixStorage stm to include dense submatrix given by its row and column indices (rows and cols) the new storage is of type (st,at) rows (resp.
update storage for adding dense submatrix given by its row and column indices
cols) has to be a subset of row indices (resp. column indices) of the stm storage if overwrite=true the current storage is overwritten and returned else a new MatrixStorage is returned, the stm storage being not cleared!
-
string_t uppercase(const string_t &s)
-
convert “AbCdefg” to “ABCDEFG”
returns string_t converted to uppercase
-
void upperDegreeRule(int degree, const string_t &name, ShapeType sh)
-
warning message
-
BilinearForm userBilinearForm(const GeomDomain &dom, const Unknown &u, const Unknown &v, BFFunction bffun, ComputationType ct, SymType st, bool reqIJ, bool reqN, const IntegrationMethod &im)
-
BilinearForm userBilinearForm(const GeomDomain &domv, const GeomDomain &domu, const Unknown &u, const Unknown &v, BFFunction bffun, ComputationType ct, SymType st, bool reqIJ, bool reqN, const IntegrationMethod &im)
-
print utility
interpret as string for print purpose
-
inline ValueType valueType(const complex_t &x)
-
inline ValueType valueType(const real_t &x)
-
inline ValueType valueType(const std::vector<complex_t> &x)
-
inline ValueType valueType(const std::vector<real_t> &x)
-
string_t varName(VariableName v)
-
template<typename K, typename V1_it, typename V2_it>
V2_it vecmat(const Matrix<K> &m, const V1_it it_v1b, const V2_it it_v2b)
-
template<typename K, typename ITV, typename ITR>
void vecmat(const SparseMatrix<K> &m, const ITV itv, const ITR itr)
-
template<typename M_it, typename V1_it, typename V2_it>
void vecmat(M_it it_mb, const V1_it it_v1b, const V1_it it_v1e, V2_it it_v2b, V2_it it_v2e)
- template void vector2Array (std::vector< complex_t > &vec, complex_t *target)
-
template<typename K_>
void vector2Array(std::vector<K_> &vec, K_ *target)
-
Convert vector to an array of K_.
- template void vector2Array (std::vector< real_t > &vec, real_t *target)
- typedef Vector< real_t > (funVR_t)(const Point &
- typedef Vector< real_t > (kerVR_t)(const Point &
-
OperatorOnUnknown &voigtToM(const Unknown &un)
-
Geometry volumeFrom(const Geometry &s, string_t domName)
-
definition of a geometry 3D from its boundary 2D
definition of a geometry 3D from an union of boundaries 2D
-
void vtkExport(const GeomDomain &dom, const std::vector<Point> &coords, const splitvec_t &elementsInfo, std::ostream &out)
-
export a split mesh of a domain to vtk format
-
void vtuExport(const GeomDomain &dom, const std::vector<Point> &coords, const splitvec_t &elementsInfo, std::ostream &out)
-
export a split mesh of a domain to vtk format
-
inline complex_t w1_Ai(const complex_t &z, DiffOpType d = _id)
-
2*sqrt(pi)exp(i*pi/6)Ai(t*exp(2i*pi/3))
-
inline complex_t w2_Ai(const complex_t &z, DiffOpType d = _id)
-
2*sqrt(pi)exp(-i*pi/6)Ai(t*exp(-2i*pi/3))
-
template<typename T>
void warning(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 warning(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 warning(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 warning(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 warning(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 warning(const string_t &msgIds, const T1 &v1, const T2 &v2, const T3 &v3, Messages *msgSrc = theMessages_p)
-
template<typename T1, typename T2>
void warning(const string_t &msgIds, const T1 &v1, const T2 &v2, Messages *msgSrc = theMessages_p)
-
void warning(const string_t &msgIds, MsgData &msgData, Messages *msgSrc)
-
shortcut of msg for warning type messages
throw warning messages
-
inline complex_t wedge_dir(const complex_t &z, real_t phi, real_t phi0, const complex_t &thetaP, const complex_t &thetaM, const complex_t &coeffP, const complex_t &coeffM, bool istd, const Malyuzhinets &mal)
-
compute wedge diffraction at (kr,phi) using either Somerfeld paths or Steepest Decent paths Phi: wedge angle , phi0 : incidence angle, tau=pi/2Phi,
1 / cos tau.phi0
1 / cos tau(phi+z) u_(kr,phi) = –— | exp(-ikr.cos z) ————————–— dz (Neumann on both sides) 4i.Phi /path sin tau(phi+z) - sin tau.phi0
1 / PsiP(z+phi)PsiM(z+phi) cos tau.phi_0
with psiP(z)=psi(Phi+z+thetaP-pi/2)psi(Phi+z-thetaP+pi/2) psiM(z)=psi(-Phi+z-thetaM+pi/2)psi(-Phi+z+thetaM-\pi/2)
important notes:
To deal with Neuman and Dirichlet condition, use Fourier with tethaP=0 and thetaM = -100i for instance
Computation is hazardous for wedge angle Phi < pi/2 (multiple reflexion)
Re(thetaMP)<0 (reactive material) induces exponentially growing solutions
heavy computation when Malyuzhinets function is involved
There are many ways to compute the wedge diffraction depending on
the paths chosen,
the Malyuzineths object is passed or not (Fourier mode)
the number of kr or phi passed (one or few) Note: if Malyuzhinets object is not passed but required, it will be construct internally at each call (additional cost) if more than point given, point loop is parallelized else quadrature loop is parallelized (if OMP available)
-
inline complex_t wedge_dndirM(const complex_t &z, real_t Phi, real_t phi0)
-
inline complex_t wedge_dndirP(const complex_t &z, real_t Phi, real_t phi0)
-
inline complex_t wedge_fou(const complex_t &z, real_t phi, real_t phi0, const complex_t &thetaP, const complex_t &thetaM, const complex_t &coeffP, const complex_t &coeffM, bool istd, const Malyuzhinets &mal)
-
inline complex_t wedge_neu(const complex_t &z, real_t phi, real_t phi0, const complex_t &thetaP, const complex_t &thetaM, const complex_t &coeffP, const complex_t &coeffM, bool istd, const Malyuzhinets &mal)
-
std::vector<complex_t> wedgeCurrentSD(const std::vector<real_t> &krs, real_t Phi, int uplow, real_t phi0, FieldPart fp, real_t krasym, BcType bcP, BcType bcM, complex_t thetaP, complex_t thetaM)
-
std::vector<complex_t> wedgeCurrentSD_par(const std::vector<real_t> &krs, real_t Phi, int uplow, real_t phi0, FieldPart fp, real_t krasym, BcType bcP, BcType bcM, complex_t thetaP, complex_t thetaM)
-
std::vector<complex_t> wedgeCurrentSOM(const std::vector<real_t> &krs, real_t Phi, real_t phi0, FieldPart fp, BcType bcP, BcType bcM, complex_t thetaP, complex_t thetaM)
-
std::vector<complex_t> wedgeDiffractionSD(const std::vector<real_t> &krs, const std::vector<real_t> &phis, real_t Phi, real_t phi0, FieldPart fp, real_t krasym, BcType bcP, BcType bcM, complex_t thetaP, complex_t thetaM)
-
inline complex_t wedgeDiffractionSD(real_t kr, real_t phi, real_t Phi, real_t phi0, FieldPart fp, real_t kra, BcType bcP, BcType bcM = _undefEcType, complex_t thetaP = 0, complex_t thetaM = 0)
-
std::vector<complex_t> wedgeDiffractionSD_par(const std::vector<real_t> &krs, const std::vector<real_t> &phis, real_t Phi, real_t phi0, FieldPart fp, real_t krasym, BcType bcP, BcType bcM, complex_t thetaP, complex_t thetaM)
-
inline complex_t wedgeDiffractionSD_par(real_t kr, real_t phi, real_t Phi, real_t phi0, FieldPart fp, real_t kra, BcType bcP, BcType bcM = _undefEcType, complex_t thetaP = 0, complex_t thetaM = 0)
-
std::vector<complex_t> wedgeDiffractionSOM(const std::vector<real_t> &krs, const std::vector<real_t> &phis, real_t Phi, real_t phi0, FieldPart fp, BcType bcP, BcType bcM, complex_t thetaP, complex_t thetaM)
-
inline complex_t wedgeDiffractionSOM(real_t kr, real_t phi, real_t Phi, real_t phi0, FieldPart fp, BcType bcP, BcType bcM = _undefEcType, complex_t thetaP = 0, complex_t thetaM = 0)
-
std::vector<complex_t> wedgeDirCurrentSD(const std::vector<real_t> &krs, real_t Phi, real_t phi0, FieldPart fp, int uplow)
-
std::vector<complex_t> wedgeDirCurrentSOM(const std::vector<real_t> &krs, real_t Phi, real_t phi0, FieldPart fp, BcType bcP, BcType bcM)
-
string_t &where(const string_t &s)
-
sets a message to tell where we are in the code (shortcut to when push/pop are not set)
-
int_t whichSide(const Point &p, const Point &n, const std::vector<Point> &pts)
-
determines if a plane splits a set of points
-
string_t words(const bool b)
-
accessor to words with a boolean
-
string_t words(const char *key)
-
accessor to words with a const char* (needed to avoid automatic cast to bool type)
-
string_t words(const string_t &key)
-
accessor to words with a string_t
external function to manage localized strings
-
string_t words(const string_t &key, const int id)
-
accessor to enumWords
-
number_t writeLigne(std::ostream &out, const std::string &str, number_t ncar)
-
Write the string str on the output stream out, limiting the length of all output lines to 80 characters Nota: the length of str is logically assumed to be < 80 characters.
This is not checked since this is always the case when this function is called by the function melExport ; moreover, this would not produce any error: the string str would just be written as is on a new line.
ncar is the number of characters previously written on the current line. If the sum of the length of str and ncar does not exceed 80 characters, then str is written at the end of the current line ; otherwise str is written on a new line, which then become the (new) current line. The function returns the updated number of characters written on the current line.
-
SymbolicFunction x_1(_x1)
-
SymbolicFunction x_2(_x2)
-
SymbolicFunction x_3(_x3)
-
SymbolicFunction x_4(_x4)
-
std::complex<double> zairy(const std::complex<double> &z, int id)
-
Airy function: Ai(z)
-
std::complex<double> zbesselI(const std::complex<double> &z, double order)
-
Modified Bessel function of the first kind: I_N(z)
-
std::complex<double> zbesselJ(const std::complex<double> &z, double order)
-
Bessel function of the first kind: J_N(z)
-
std::complex<double> zbesselK(const std::complex<double> &z, double order)
-
Modified Bessel function of the second kind: K_N(z)
-
std::complex<double> zbesselY(const std::complex<double> &z, double order)
-
Bessel function of the second kind: Y_N(z)
-
inline complex_t zbiry(const complex_t &z, DiffOpType d = _id)
-
Airy function: Bi(z) or Bi’(z)
-
std::complex<double> zbiry(const std::complex<double> &z, int id)
-
Biry function: Bi(z)
-
inline Vector<real_t> zeroCurvatures(const Point &p, const Point &d, bool fromParameters, Parameters &pars)
-
inline complex_t zeros(const complex_t &v)
-
inline real_t zeros(const real_t &v)
-
zero for scalars
-
complex_t zexpzE1z(const complex_t&)
-
return z*exp(z)*E1(z)
-
std::complex<double> zhankel(const std::complex<double> &z, int kind, double order)
-
Hankel functions of the i-th kind: Hi_N(z)
Variables
-
ArpackProb _ARprob
-
Parameter _nbIterations
-
Parameter _residue
-
const number_t addrWidth
-
static const real_t ch0[13] = {.182311992692574, -.68661765315081e-1, .388759121580854, -.267648939655143, .794413767405257e-1, -.13647452878064e-1, .155298216531296e-2, -.126637763099949e-3, .779608642052048e-5, -.37611407660050e-6, .1462633271602e-7, -.46873653930e-9, .1260241570e-10}
-
data for Chebyshev interpolation of Struve functions H_0 and H_1
-
static const real_t ch0minusy0[13] = {.992837275764239, -.696891281138625e-2, .182051037870371e-3, -.106325825284416e-4, .98198294286525e-6, -.12250645444977e-6, .1894083311800e-7, -.344358225604e-8, .71119101711e-9, -.16288744137e-9, .4065680728e-10, -.1091504796e-10, .312005243e-11}
-
static const real_t ch1[13] = {.557889144648160, -.111883257265698, -.163379581252009, .322569320724059, -.145816323672442, .329267739937403e-1, -.460372142093572e-2, .443470616331396e-3, -.314209952934117e-4, .171237199380035e-5, -.7416987005204e-7, .261837670705e-8, -.7685839395e-10}
-
static const real_t ch1minusy1[13] = {1.0075764293865, .750316051248257e-2, -.704393326451905e-4, .266205393382266e-5, -.18841157753405e-6, .1949014958394e-7, -.261261989905e-8, .42362690104e-9, -.7955155531e-10, .1679973006e-10, -.390719821e-11, .98543090e-12, -.26635794e-12}
-
AngleUnitType defaultAngleUnit = _rad
-
number_t defaultKrylovDimension = 0
-
number_t defaultMaxIterations = 0
-
Parameters defaultParameters
-
default ParameterList object used as default argument in Function constructor
-
Parameters *defaultParameters_p = &defaultParameters
-
default ParameterList object used as default argument in Function constructor
-
AngleUnit deg_
-
static const real_t dg_coeff[10] = {-.83333333333333333e-1, .83333333333333333e-2, -.39682539682539683e-2, .41666666666666667e-2, -.75757575757575758e-2, .21092796092796093e-1, -.83333333333333333e-1, .4432598039215686, -.3053954330270122e+1, .125318899521531e+2}
-
static const real_t eight = real_t(8.)
-
const number_t entriesPerRow = 10
-
const number_t entryPrec
-
const number_t entryWidth
-
std::string eol = "\n"
-
static const real_t four = real_t(4.)
-
const number_t fullPrec
-
static number_t Hex2[] = {1, 2, 3, 0, 5, 6, 7, 4, 14, 19, 18, 10, 8, 9, 12, 13, 17, 15, 16, 11, 23, 24, 25, 22, 21, 20, 26}
-
static number_t Hex3[] = {1, 2, 3, 0, 5, 6, 7, 4, 20, 31, 28, 13, 9, 11, 16, 18, 27, 22, 25, 14, 21, 30, 29, 12, 8, 10, 17, 19, 26, 23, 24, 15, 45, 46, 47, 44, 50, 51, 48, 49, 53, 54, 55, 52, 43, 40, 41, 42, 39, 36, 37, 38, 35, 32, 33, 34, 57, 58, 59, 56, 61, 62, 63, 60}
-
static number_t Hex4[] = {1, 2, 3, 0, 5, 6, 7, 4, 26, 43, 38, 16, 10, 13, 20, 23, 37, 29, 34, 17, 27, 42, 39, 15, 9, 12, 21, 24, 36, 30, 33, 18, 28, 41, 40, 14, 8, 11, 22, 25, 35, 31, 32, 19, 72, 73, 74, 71, 76, 77, 78, 75, 79, 82, 83, 80, 81, 86, 87, 84, 85, 88, 90, 91, 92, 89, 94, 95, 96, 93, 97, 65, 62, 63, 64, 69, 66, 67, 68, 70, 56, 53, 54, 55, 60, 57, 58, 59, 61, 47, 44, 45, 46, 51, 48, 49, 50, 52, 99, 100, 101, 98, 103, 104, 105, 102, 112, 117, 116, 108, 106, 107, 110, 111, 115, 113, 114, 109, 121, 122, 123, 120, 119, 118, 124}
-
number_t HMf2XLf[] = {0, 4, 1, 5, 2, 6, 3}
-
const complex_t i_ = complex_t(0., 1.)
-
static number_t Idty[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}
-
bool isTestMode = false
-
static const real_t J0_a[2] = {2.4062500000000000000e+0, 5.5195312500000000000e+0}
-
approximate fractional roots (multiples of 1/256)
-
static const real_t J0_v[2] = {-1.42444230422723137837e-3, 5.46860286310649596604e-4}
-
accurate values for approximate roots above
-
static const real_t J0_z[2] = {2.4048255576957727686e+0, 5.5200781102863106496e+0}
-
first roots of J_0, J_1, Y_0, Y_1 and approximations
-
static const real_t J1_a[2] = {3.8320312500000000000e+0, 7.0156250000000000000e+0}
-
static const real_t J1_v[2] = {-3.2527979248768438556e-4, -3.8330184381246462950e-5}
-
static const real_t J1_z[2] = {3.8317059702075123156e+0, 7.0155866698156187535e+0}
-
static const real_t jy0_p0[6] = {8.8961548424210455236e-1, 1.5376201909008354296e+2, 3.4806486443249270347e+3, 2.1170523380864944322e+4, 4.1345386639580765797e+4, 2.2779090197304684302e+4}
-
static const real_t jy0_p1[6] = {-8.8033303048680751817e-3, -1.2441026745835638459e+0, -2.2300261666214198472e+1, -1.1183429920482737611e+2, -1.8591953644342993800e+2, -8.9226600200800094098e+1}
-
static const real_t jy0_q0[5] = {1.5711159858080893649e+2, 3.5028735138235608207e+3, 2.1215350561880115730e+4, 4.1370412495510416640e+4, 2.2779090197304684318e+4}
-
static const real_t jy0_q1[5] = {9.0593769594993125859e+1, 1.4887231232283756582e+3, 7.2642780169211018836e+3, 1.1951131543434613647e+4, 5.7105024128512061905e+3}
-
static const real_t jy1_p0[6] = {-1.6116166443246101165e+3, -1.0982405543459346727e+5, -1.5235293511811373833e+6, -6.6033732483649391093e+6, -9.9422465050776411957e+6, -4.4357578167941278571e+6}
-
data for rational approximations of Bessel functions J_1, Y_1 for large arguments
-
static const real_t jy1_p1[6] = {3.5265133846636032186e+1, 1.7063754290207680021e+3, 1.8494262873223866797e+4, 6.6178836581270835179e+4, 8.5145160675335701966e+4, 3.3220913409857223519e+4}
-
static const real_t jy1_q0[6] = {-1.4550094401904961825e+3, -1.0726385991103820119e+5, -1.5118095066341608816e+6, -6.5853394797230870728e+6, -9.9341243899345856590e+6, -4.4357578167941278568e+6}
-
static const real_t jy1_q1[6] = {8.6383677696049909675e+2, 3.7890229745772202641e+4, 4.0029443582266975117e+5, 1.4194606696037208929e+6, 1.8194580422439972989e+6, 7.0871281941028743574e+5}
-
static const real_t lg_coef[10] = {.8333333333333333e-1, -.2777777777777778e-2, .7936507936507937e-3, -.5952380952380952e-3, .8417508417508418e-3, -.1917526917526918e-02, .6410256410256410e-2, -.2955065359477124e-1, .1796443723688307, -1.39243221690590}
-
static const real_t lgg_coeff[11] = {1.000000000000000174663, 5716.400188274341379136, -14815.30426768413909044, 14291.49277657478554025, -6348.160217641458813289, 1301.608286058321874105, -108.1767053514369634679, 2.605696505611755827729, -0.7423452510201416151527e-2, 0.5384136432509564062961e-7, -0.4023533141268236372067e-8}
-
const real_t logOf2_ = std::log(real_t(2.))
-
const number_t numberWidth
-
static const real_t one = real_t(1.)
-
const real_t over2pi_ = overpi_ / 2.
-
const real_t over3_ = 1. / (real_t(3.))
-
const real_t over4pi_ = overpi_ / 4.
-
const real_t over6_ = 1. / (real_t(6.))
-
const real_t overpi_ = 1. / pi_
-
SymbolicFunction phi_
-
const real_t pi_ = 4. * std::atan(real_t(1.))
-
static number_t Pri2[] = {0, 1, 2, 3, 4, 5, 6, 9, 7, 12, 14, 13, 8, 10, 11, 15, 17, 16}
-
number_t QMe2XLe[] = {0, 4, 1, 2, 3}
-
static number_t Qua3[] = {1, 2, 3, 0, 6, 8, 10, 4, 7, 9, 11, 5, 13, 14, 15, 12}
-
static number_t Qua4[] = {1, 2, 3, 0, 7, 10, 13, 4, 8, 11, 14, 5, 9, 12, 15, 6, 17, 18, 19, 16, 21, 22, 23, 20, 24}
-
static number_t Qua5[] = {1, 2, 3, 0, 8, 12, 16, 4, 9, 13, 17, 5, 10, 14, 18, 6, 11, 15, 19, 7, 21, 22, 23, 20, 26, 28, 30, 24, 27, 29, 31, 25, 33, 34, 35, 32}
-
const dimen_t R3Dim = 3
-
AngleUnit rad_
-
const real_t sqrtOf2_ = std::sqrt(real_t(2.))
-
const real_t sqrtOf3_ = std::sqrt(real_t(3.))
-
const real_t sqrtOfpi_ = std::sqrt(pi_)
-
const number_t testPrec
-
static number_t Tet1[] = {3, 1, 2, 0}
-
static number_t Tet2[] = {3, 1, 2, 0, 7, 4, 6, 5, 8, 9}
-
static number_t Tet3[] = {3, 1, 2, 0, 10, 5, 8, 6, 12, 14, 11, 4, 9, 7, 13, 15, 16, 18, 17, 19}
-
static number_t Tet4[] = {3, 1, 2, 0, 13, 6, 10, 7, 16, 19, 14, 5, 11, 8, 17, 20, 15, 4, 12, 9, 18, 21, 22, 23, 24, 28, 29, 30, 25, 26, 27, 31, 32, 33, 34}
-
static number_t Tet5[] = {3, 1, 2, 0, 16, 7, 12, 8, 20, 24, 17, 6, 13, 9, 21, 25, 18, 5, 14, 10, 22, 26, 19, 4, 15, 11, 23, 27, 28, 29, 30, 31, 32, 33, 40, 41, 42, 43, 44, 45, 34, 35, 36, 37, 38, 39, 46, 47, 48, 49, 50, 51, 55, 53, 54, 52}
-
real_t theBreakdownThreshold = 1.e-30
-
CoutStream theCout
-
real_t theDefaultCharacteristicLength = 0.1
-
real_t theDefaultConvergenceThreshold = std::sqrt(theEpsilon)
-
Preconditioner theDefaultPreconditioner(_noPrec)
-
TermMatrix theDefaultTermMatrix
-
const TermVector theDefaultTermVector
-
const dimen_t theDimMax = USHRT_MAX
-
Environment *theEnvironment_p
-
runtime Environment object
Global Scope Environment object.
-
const real_t theEpsilon
-
const real_t theEulerConst = .5772156649015328606065
-
number_t theGlobalVerboseLevel = UINT_MAX
-
const int_t theIntMax
-
const int_t theIntMin
-
const number_t theLanguage
-
Timer *theLastTime_p
-
real_t theLocateToleranceFactor = 0.1
-
string_t theLogFile = "log.txt"
-
string_t theLogGmshFile = "log_gmsh.txt"
-
PrintStream theLogStream
-
MsgData theMessageData
-
global data message object
-
Messages *theMessages
-
all messages
-
Messages *theMessages_p
-
error and msg objects
-
const number_t theNumberMax
-
string_t thePrintFile = "print.txt"
-
PrintStream thePrintStream
-
unsigned int theRandomSeed
-
real_t theRatioOfIterations2Rows
-
const real_t theRealMax
-
const size_t theSizeMax
-
std::stringstream theStringStream
-
SymbolicFunction theta_
-
ThreadData theThreadData
-
const real_t theTolerance = theEpsilonFactor * theEpsilon
-
number_t theVerboseLevel = 1
-
std::string theWhereData = ""
-
const real_t theZeroThreshold = 1.e-30
-
number_t TMe2XLe[] = {0, 1, 2, 3}
-
number_t TMf2XLf[] = {0, 1, 2, 3, 4}
-
bool trackingObjects = true
-
static number_t Tri3[] = {0, 1, 2, 3, 5, 7, 4, 6, 8, 9}
-
static number_t Tri4[] = {0, 1, 2, 3, 6, 9, 4, 7, 10, 5, 8, 11, 12, 13, 14}
-
static number_t Tri5[] = {0, 1, 2, 3, 7, 11, 4, 8, 12, 5, 9, 13, 6, 10, 14, 15, 16, 17, 18, 19, 20}
-
Vector<real_t> voidVector
-
SymbolicFunction x_1
-
SymbolicFunction x_2
-
SymbolicFunction x_3
-
SymbolicFunction x_4
-
static const real_t Y0_a[3] = {0.8906250000000000000e+0, 3.9570312500000000000e+0, 7.085937500000000000e+0}
-
static const real_t Y0_v[3] = {2.9519662791675215849e-3, 6.4716931485786837568e-4, 1.1356030177269762362e-4}
-
static const real_t Y0_z[3] = {8.9357696627916752158e-1, 3.9576784193148578684e+0, 7.0860510603017726976e+0}
-
static const real_t Y1_a[2] = {2.1953125000000000000e+0, 5.4296875000000000000e+0}
-
static const real_t Y1_v[2] = {1.8288260310170351490e-3, -6.4592058648672279948e-6}
-
static const real_t Y1_z[2] = {2.1971413260310170351e+0, 5.4296810407941351328e+0}
-
static const real_t zero = real_t(0.)
-
Specific integerss as real numbers.
-
class AdjacenceInfo
-
#include <Element.hpp>
structure to describe how two GeomElement or Element are geometrically related
dist: distance of elements (real_t)
nxn: cross product of unitary normals (real_t) to measure parallelism
status: one of AdjacentStatus (_notAdjacent,_adjacentByElement,_adjacentBySide,_adjacentBySideOfSide, _adjacentByVertex)
numbers: pair of numbers when they are adjacent: side numbers or side of side numbers or vertex numbers
Note
works only with underlying first order geometric element
-
struct AllowConversion
-
#include <ConversionPolicy.hpp>
Implementation of the ConversionPolicy used by SmartPtr Allows implicit conversion from SmartPtr to the pointee type.
-
class AnalyticalDomain : public xlifepp::GeomDomain
-
#include <GeomDomain.hpp>
class to handle domain with analytical description to be developed later
-
class AnalyticGeodesic : public xlifepp::Geodesic
-
#include <Geodesic.hpp>
AnalyticGeodesic class handling any geodesic described by a 1D->3D parametrization par_g : Parametrization of the analytic geodesic init_p: function pointer to init function, must be called before using parametrization smin_, smax_ : bounds of parametrization regarding starting point the set() function set the starting point and starting derivative the init_p() function computes parameter bounds and additional data useful for computation the useful data must are transmitted to the parametrization function using its Parameters object.
-
class AngleUnit
-
template<class T>
class ApproximateMatrix
-
#include <ApproximateMatrix.hpp>
base class of all approximate matrix methods
Subclassed by xlifepp::LowRankMatrix< T >
-
template<class K_>
class ARGenFrame : public xlifepp::ARInterfaceFrame<K_>
-
template<class TA_, class TB_>
class ARGenToStdReg : public xlifepp::ARStdFrame<TA_>
-
#include <ARGenToStd.hpp>
Class used to transform a generalized problem into a standard one.
B is supposed to be invertible. Regular mode case. Matrix-vector product provided: y <- inv(B)*A * x
-
template<class TA_, class TB_>
class ARGenToStdShf : public xlifepp::ARStdFrame<TA_>
-
#include <ARGenToStd.hpp>
Class used to transform a generalized problem into a standard one.
B is supposed to be invertible. Shift mode case. Matrix-vector product provided: y <- inv(inv(B)*A-sigma*Id)*x sigma has the type of A
-
class ArgyrisTriangle : public xlifepp::RefTriangle
-
#include <ArgyrisTriangle.hpp>
(non conforming H2 element) Parent class: RefTriangle
-
template<class K_, class MA_>
class ARInterface
-
#include <ARInterface.hpp>
- Template Parameters:
-
K_ – type of elements
MA_ – type of the matrix
Subclassed by xlifepp::ARInterfaceGen< K_, MA_, MB_ >, xlifepp::ARInterfaceStdReg< K_, MA_ >, xlifepp::ARInterfaceStdShf< K_, MA_ >
-
class ARInterfaceCSVD : public xlifepp::ARStdFrame<complex_t>
-
#include <ARInterface.hpp>
The ARInterfaceCSVD class handle complex data.
Given a complex matrix A and a complex vector x, this class defines the products: . (A*) * A * x and A * (A*) * x, for computation near the ends of the spectrum, . ((A*) * A - s * Id) * x and (A * (A*) - s * Id) * x, for computation near a real shift s.
Subclassed by xlifepp::ARInterfaceCSVDmGEnReg, xlifepp::ARInterfaceCSVDmGEnShf, xlifepp::ARInterfaceCSVDmLTnReg, xlifepp::ARInterfaceCSVDmLTnShf
-
class ARInterfaceCSVDmGEnReg : public xlifepp::ARInterfaceCSVD
-
class ARInterfaceCSVDmGEnShf : public xlifepp::ARInterfaceCSVD
-
class ARInterfaceCSVDmLTnReg : public xlifepp::ARInterfaceCSVD
-
class ARInterfaceCSVDmLTnShf : public xlifepp::ARInterfaceCSVD
-
template<class K_>
class ARInterfaceFrame
-
Subclassed by xlifepp::ARGenFrame< K_ >, xlifepp::ARStdFrame< K_ >
-
template<class K_, class MA_, class MB_>
class ARInterfaceGen : public xlifepp::ARInterface<K_, MA_>
-
#include <ARInterface.hpp>
Abstract class for generalized eigenvalue problem Matrix-vector product provided: y <- B * x.
Subclassed by xlifepp::ARInterfaceGenReg< K_, MA_, MB_ >, xlifepp::ARInterfaceGenShf< K_, MA_, MB_ >
-
template<class MAB_>
class ARInterfaceGenBuc : public xlifepp::ARInterfaceGen<real_t, MAB_, MAB_>
-
#include <ARInterface.hpp>
Class for generalized eigenvalue problem in buckling mode Real symmetric case.
Matrix-vector products provided: y <- inv(A-sigma B)*x and y <- A * x
-
template<class MAB_>
class ARInterfaceGenCay : public xlifepp::ARInterfaceGen<real_t, MAB_, MAB_>
-
#include <ARInterface.hpp>
Class for generalized eigenvalue problem in Cayley mode Real symmetric case.
Matrix-vector products provided: y <- inv(A-sigma B)*x, y <- A * x and y <- B * x
-
template<class MAB_, class MAsB_>
class ARInterfaceGenCsh : public xlifepp::ARInterfaceGen<real_t, MAB_, MAB_>
-
#include <ARInterface.hpp>
Class for generalized eigenvalue problem in complex shift and invert mode Real non symmetric case with complex shift.
Matrix-vector products provided: y <- Re/Im{inv(A-sigma B)}*x, y <- A * x and y <- B * x
-
template<class K_, class MA_, class MB_>
class ARInterfaceGenReg : public xlifepp::ARInterfaceGen<K_, MA_, MB_>
-
#include <ARInterface.hpp>
Class for generalized eigenvalue problem in regular mode except in the real symmetric case Matrix-vector product provided: y <- inv(B)*A * x and y <- B * x.
-
template<class K_, class MA_, class MB_>
class ARInterfaceGenShf : public xlifepp::ARInterfaceGen<K_, MA_, MB_>
-
#include <ARInterface.hpp>
Class for generalized eigenvalue problem in shift and invert mode Real symmetric, real non symmetric and complex cases.
Here, A and sigma have the same type. The special case real non symmetric with complex sigma is treated in class ARInterfaceGenCsh. Matrix-vector products provided: y <- inv(A-sigma B)*x and y <- B * x
-
template<class MAB_>
class ARInterfaceGenSymReg : public xlifepp::ARInterfaceGen<real_t, MAB_, MAB_>
-
#include <ARInterface.hpp>
Class for real symmetric generalized eigenvalue problem in regular mode Matrix-vector product provided: y <- inv(B)*A * x and y <- B * x.
-
class ARInterfaceRSVD : public xlifepp::ARStdFrame<real_t>
-
#include <ARInterface.hpp>
The ARInterfaceRSVD class handle real data.
Given a real matrix A and a real vector x, this class defines the products: . (At) * A * x and A * (At) * x, for computation near the ends of the spectrum, . ((At) * A - s * Id) * x and (A * (At) - s * Id) * x, for computation near a real shift s.
Subclassed by xlifepp::ARInterfaceRSVDmGEnReg, xlifepp::ARInterfaceRSVDmGEnShf, xlifepp::ARInterfaceRSVDmLTnReg, xlifepp::ARInterfaceRSVDmLTnShf
-
class ARInterfaceRSVDmGEnReg : public xlifepp::ARInterfaceRSVD
-
class ARInterfaceRSVDmGEnShf : public xlifepp::ARInterfaceRSVD
-
class ARInterfaceRSVDmLTnReg : public xlifepp::ARInterfaceRSVD
-
class ARInterfaceRSVDmLTnShf : public xlifepp::ARInterfaceRSVD
-
template<class K_, class MA_>
class ARInterfaceStdReg : public xlifepp::ARInterface<K_, MA_>
-
#include <ARInterface.hpp>
Class for standard eigenvalue problem in regular mode Matrix-vector product provided: y <- A * x.
-
template<class K_, class MA_>
class ARInterfaceStdShf : public xlifepp::ARInterface<K_, MA_>
-
#include <ARInterface.hpp>
Class for standard eigenvalue problem in shift and invert mode Matrix-vector product provided: y <- inv(A-sigma*Id) * x.
-
class ArpackProb
-
template<class K_>
class ARStdFrame : public xlifepp::ARInterfaceFrame<K_>
-
class Ball : public xlifepp::Ellipsoid
-
#include <geometries3D.hpp>
definition of an spherical geometry in R^3 (volume)
Ball constructors are based on a key-value system. Here are the available keys:
_center: to define the center of the Ball
_v1, _v2, _v6: to define apogees of the Ball
_radius: to define radius of the Ball
_type: indicator to fit curved boundaries (default) or not which gives flat (or plane) boundaries
_nboctants: to define an ellipsoidal sector from octants.
_nnodes: to define the number of nodes on the edges of the Ball
_hsteps: to define the local mesh steps on build points of the Ball
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
class BasicBilinearForm
-
#include <BilinearForm.hpp>
describes the base class of bilinear form on a space.
It is an abstract class
Subclassed by xlifepp::DoubleIntgBilinearForm, xlifepp::IntgBilinearForm, xlifepp::MatrixBilinearForm, xlifepp::UserBilinearForm
-
class BasicLinearForm
-
#include <LinearForm.hpp>
describes the base class of basic linear forms on a space It is an abstract class
Subclassed by xlifepp::BilinearFormAsLinearForm, xlifepp::DoubleIntgLinearForm, xlifepp::IntgLinearForm
-
template<class ScalarType, class MV, class OP>
class BasicOrthoManager : public xlifepp::MatOrthoManager<ScalarType, MV, OP>
-
#include <XlifeppBasicOrthoManager.hpp>
An implementation of the MatOrthoManager that performs orthogonalization using (potentially) multiple steps of classical Gram-Schmidt.
-
template<class ScalarType>
class BasicOutputManager : public xlifepp::OutputManager<ScalarType>
-
#include <XlifeppBasicOutputManager.hpp>
xlifepp’s basic output manager for sending information of select verbosity levels to the appropriate output stream.
-
template<class MagnitudeType>
class BasicSort : public xlifepp::SortManager<MagnitudeType>
-
#include <XlifeppBasicSort.hpp>
An implementation of the xlifepp::SortManager that performs a collection of common sorting techniques.
-
class BCDof : public xlifepp::FeDofExtension
-
#include <Dof.hpp>
to store Buffa-Chritiensen global dof informations see xlife++ documention for details
-
class BCRTElement : public xlifepp::ExtendedElement
-
#include <BCElement.hpp>
class describing a BC-RT element considered as an element defined on a triangle of the primal mesh in this interpretation, element has inner dofs and outer dofs
-
class BCRTShapeFunction
-
#include <BCElement.hpp>
class describing a BC-RT shape function that is a linear combination of RT shape function defined on sub triangle
-
class BCRTShapeFunctionPart
-
#include <BCElement.hpp>
class describing a part of BC-RT shape function: sub RT shape function
-
class BCsub
-
#include <Dof.hpp>
structure defining a part of BC shape function
-
class BezierSpline : public xlifepp::Spline
-
#include <spline.hpp>
BezierSpline class
-
class BFComputationData
-
#include <BilinearForm.hpp>
stuff related to bf user computation, loaded by computation algorithm manage information to compute elementary matrix (real or scalar matrices) from elements elt_u, elt_v in case of FEM or BEM computation and from additional elements elt_u2, elt_v2 in case of DG computation produce one matrix in FEM or BEM computation, up to four matrices in DG computation
-
class BicgSolver : public xlifepp::IterativeSolver
-
#include <BicgSolver.hpp>
Implement BiConjugate Gradient algorithm.
-
class BicgStabSolver : public xlifepp::IterativeSolver
-
#include <BicgStabSolver.hpp>
Implement BiConjugate Gradient Stabilized algorithm.
-
class BilinearForm
-
#include <BilinearForm.hpp>
describes a general bilinear form, that is a list of linear combinations of basic bilinear forms.
It is intend to collect linear forms with different unknowns, using a map<uvPair,SuBilinearForm>. It is the enduser’s class
-
class BilinearFormAsLinearForm : public xlifepp::BasicLinearForm
-
#include <BilinearFormAsLinearForm.hpp>
describes a linear form based on a Bilinearform a(u,v) where u or v are specified as a TermVector
-
template<class ScalarType, class MV, class OP>
class BlockDavidson : public xlifepp::EigenSolver<ScalarType, MV, OP>
-
#include <XlifeppBlockDavidson.hpp>
This class implements a Block Davidson iteration, a preconditioned iteration for solving linear Hermitian eigenproblems.
This method is described in A Comparison of EigenSolvers for Large-scale 3D Modal Analysis Using AMG-Preconditioned Iterative Methods, P. Arbenz, U. L. Hetmaniuk, R. B. Lehoucq, R. S. Tuminaro, Internat. J. for Numer. Methods Engrg., 64, pp. 204-236 (2005)
-
template<class ScalarType, class MV, class OP>
class BlockDavidsonSolMgr : public xlifepp::SolverManager<ScalarType, MV, OP>
-
#include <XlifeppBlockDavidsonSolMgr.hpp>
The BlockDavidsonSolMgr provides a powerful solver manager over the BlockDavidson eigensolver.
This solver manager implements a hard-locking mechanism, whereby eigenpairs designated to be locked are moved from the eigensolver and placed in auxilliary storage. The eigensolver is then restarted and continues to iterate, orthogonal to the locked eigenvectors.
The solver manager provides to the solver a StatusTestCombo object constructed as follows:
combo = globaltest OR lockingtest OR debugtest
where-
globaltest
terminates computation when global convergence has been detected.
It is encapsulated in a
StatusTestWithOrderingobject, to ensure that computation is terminated only after the most significant eigenvalues/eigenvectors have met the convergence criteria.
If not specified via
setGlobalStatusTest(),globaltest
is a StatusTestResNorm object which tests the M-norms of the direct residuals relative to the Ritz values. -
lockingtest
halts BlockDavidson::iterate()in order to deflate converged eigenpairs for locking.
It will query the underlying
BlockDavidsoneigensolver to determine when eigenvectors should be locked.
If not specified via
setLockingStatusTest(),lockingtest
is a StatusTestResNorm object. -
debugtest
allows a user to specify additional monitoring of the iteration, encapsulated in a StatusTestobject
If not specified via
setDebugStatusTest(),debugtest
is ignored.
In most cases, it should return
_failed; if it returns _passed, solve() will throw an XlifeppError exception.
Additionally, the solver manager will terminate solve() after a specified number of restarts.
Much of this behavior is controlled via parameters and options passed to the solver manager. For more information, see BlockDavidsonSolMgr().
Solver application methods
Return the timers for this object.
The timers are ordered as follows:
time spent in solve() routine
time spent restarting
time spent locking converged eigenvectors
-
-
template<class ScalarType, class MV>
struct BlockDavidsonState
-
#include <XlifeppBlockDavidson.hpp>
Structure to contain pointers to BlockDavidson state variables.
This struct is utilized by BlockDavidson::initialize() and BlockDavidson::getState().
-
template<class ScalarType, class MV, class OP>
class BlockKrylovSchur : public xlifepp::EigenSolver<ScalarType, MV, OP>
-
#include <XlifeppBlockKrylovSchur.hpp>
This class implements the block Krylov-Schur iteration, for solving linear eigenvalue problems.
This method is a block version of the iteration presented by G.W. Stewart in “A Krylov-Schur Algorithm for Large Eigenproblems”, SIAM J. Matrix Anal. Appl., Vol 23(2001), No. 3, pp. 601-614.
-
template<class ScalarType, class MV, class OP>
class BlockKrylovSchurSolMgr : public xlifepp::SolverManager<ScalarType, MV, OP>
-
#include <XlifeppBlockKrylovSchurSolMgr.hpp>
The BlockKrylovSchurSolMgr provides a flexible solver manager over the BlockKrylovSchur eigensolver.
The solver manager provides to the solver a StatusTestCombo object constructed as follows:
combo = globaltest _OR debugtest
where-
globaltest
terminates computation when global convergence has been detected.
It is encapsulated in a
StatusTestWithOrderingobject, to ensure that computation is terminated only after the most significant eigenvalues/eigenvectors have met the convergence criteria.
If not specified via
setGlobalStatusTest(), this test is a StatusTestResNorm object which tests the 2-norms of the Ritz residuals relative to the Ritz values. -
debugtest
allows a user to specify additional monitoring of the iteration, encapsulated in a StatusTestobject
If not specified via
setDebugStatusTest(),debugtest
is ignored.
In most cases, it should return
_failed; if it returns _passed, solve() will throw an XlifeppError exception.
Additionally, the solver manager will terminate solve() after a specified number of restarts.
Much of this behavior is controlled via parameters and options passed to the solver manager. For more information, see BlockKrylovSchurSolMgr().
-
-
template<class ScalarType, class MulVec>
struct BlockKrylovSchurState
-
#include <XlifeppBlockKrylovSchur.hpp>
Structure to contain pointers to BlockKrylovSchur state variables.
This struct is utilized by BlockKrylovSchur::initialize() and BlockKrylovSchur::getState().
-
class BoundingBox
-
#include <Geometry.hpp>
utility class to describe a bounding box
-
template<typename T>
class Box
-
#include <KdTree.hpp>
utility class for printing KdTree
-
class BuffaChristiansenRT : public xlifepp::RaviartThomasStdTriangleP1
-
#include <RaviartThomasTriangle.hpp>
ref element inherits from RT ref element but declare no shapevalues ShapeValues are directly computed from BCDof
-
class CatmullRomSpline : public xlifepp::Spline
-
#include <spline.hpp>
CatmullRomSpline class.
-
class CgSolver : public xlifepp::IterativeSolver
-
#include <CgSolver.hpp>
Implement Conjugate Gradient algorithm.
-
class CgsSolver : public xlifepp::IterativeSolver
-
#include <CgsSolver.hpp>
Implement Conjugate Gradient Squared algorithm.
-
class CircArc : public xlifepp::Curve
-
#include <geometries1D.hpp>
definition of a circular arc geometry in R^3 (curve)
EllArc constructors are based on a key-value system. Here are the available keys:
_center: to define the center of the circle supporting the arc
_v1, _v2: to define the bounds of the arc
_nnodes: to define the number of nodes on the arc
_hsteps: to define the local mesh steps on the bounds of the arc
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
template<typename T>
class ClusterNode
-
#include <ClusterTree.hpp>
describes a node of a hierarchical cluster of T objects (mean Point for instance) it manages
a pointer to the cloud object (objects_)
a xyz bounding box of the node, may be not the smallest
a xyz real bounding box of the node if required
some pointers to move in the tree (parent_, child_, next_)
the indices of objects belonging to the box (numbers_), may be deallocated for node that are not leaf (see storeNodeData_)
an optional list of dof numbers
an optional list of element pointers
Note
a node is never void
-
template<typename T = FeDof>
class ClusterTree
-
#include <ClusterTree.hpp>
frontal class of a tree representation (xlifepp::ClusterNode class) of cloud of objects that have a characteristic Point of location Be cautious, it uses a pointer to a vector of T that has to be kept in memory.
Full copy of objects should be safer but it is memory expansive, see later
-
class ColCsStorage : public xlifepp::CsStorage
-
#include <ColCsStorage.hpp>
child class of col compressed sparse storage
-
class ColDenseStorage : public xlifepp::DenseStorage
-
#include <ColDenseStorage.hpp>
handles dense storage of matrix stored column by column
-
template<typename T>
class Collection : public std::vector<T>
-
#include <Collection.hpp>
a simple interface to std::vector<T> add the insertion operator <<, the constructors from enumerating items and access to items using operator ()
-
class CollinoIM : public xlifepp::DoubleIM
-
#include <CollinoIM.hpp>
integral over a product of triangles for Maxwell IE using a method developped by F.
Collino compute for Raviart-Thomas basis of order 1 (RT0!) the following integrals I1 = intg_SxT k*G(x,y)[ wi(x).wj(y)-1/k2 div(wi(x)div(wj(y) ] I2 = intg_SxT (grad_y G(x,y) x wj(y)).wi(x)
-
template<typename T = real_t>
class ComparisonFunction : private std::list<std::pair<ComparisonOperator, real_t>>
-
struct CompEvCl
-
template<typename _MatrixType>
class ComplexEigenSolver
-
#include <ComplexEigenSolver.hpp>
Computes eigenvalues and eigenvectors of general complex matrices.
The eigenvalues and eigenvectors of a matrix \( A \) are scalars \( \lambda \) and vectors \( v \) such that \( Av = \lambda v \). If \( D \) is a diagonal matrix with the eigenvalues on the diagonal, and \( V \) is a matrix with the eigenvectors as its columns, then \( A V = V D \). The matrix \( V \) is almost always invertible, in which case we have \( A = V D V^{-1} \). This is called the eigendecomposition.
The main function in this class is compute(), which computes the eigenvalues and eigenvectors of a given function. The documentation for that function contains an example showing the main features of the class.
See also
class EigenSolver, class SelfAdjointEigenSolver
- Template Parameters:
-
_MatrixType – the type of the matrix of which we are computing the eigendecomposition; this is expected to be an instantiation of the Matrix class template.
-
template<typename _MatrixType>
class ComplexSchur
-
#include <ComplexSchur.hpp>
Performs a complex Schur decomposition of a real or complex square matrix.
Given a real or complex square matrix A, this class computes the Schur decomposition: \( A = U T U^*\) where U is a unitary complex matrix, and T is a complex upper triangular matrix. The diagonal of the matrix T corresponds to the eigenvalues of the matrix A.
Call the function compute() to compute the Schur decomposition of a given matrix. Alternatively, you can use the ComplexSchur(const MatrixType&, bool) constructor which computes the Schur decomposition at construction time. Once the decomposition is computed, you can use the matrixU() and matrixT() functions to retrieve the matrices U and V in the decomposition.
See also
class RealSchur, class EigenSolver, class ComplexEigenSolver
- Template Parameters:
-
_MatrixType – the type of the matrix of which we are computing the Schur decomposition; this is expected to be an instantiation of the Matrix class template.
Note
This code is inspired from Jampack
-
class ComponentOfUnknown : public xlifepp::Unknown
-
#include <Unknown.hpp>
a class to manage a component of unknown (vector)
-
class ComponentsOfUnknown : public xlifepp::Unknown
-
#include <Unknown.hpp>
a class to manage components of unknown (vector) does not allow to manage all the components of an unknown
-
class CompositeDomain : public xlifepp::GeomDomain
-
#include <GeomDomain.hpp>
class to handle union or intersection of domains
-
class CompositeGeodesic : public xlifepp::Geodesic
-
#include <Geodesic.hpp>
CompositeGeodesic class handling any geodesic described by a collection of Geodesics geodesics_ : list of pointers to Geodesic (each Geodesic may be of any type) Such structure can describe a geodesic by mixing different kind of geodesic, leading to a faster computation if GeometricGeodesic or AnalyticGeodesic are used NOTE: hard copy of Geodesics.
-
template<number_t CM>
class ComputationAlgorithm
-
#include <SuTermMatrix.hpp>
templated computation functions ComputationAlgorithm class is a trick to template FE/IE computation algorithm
-
class ComputingInfo
-
#include <Term.hpp>
class collecting all information related to state of computation of term
-
template<bool Condition, typename Then, typename Else>
struct Conditional
-
class Cone : public xlifepp::Trunk
-
#include <geometries3D.hpp>
A cone is a volume defined by a section (the basis) and a direction vector The direction vector is not necessarily orthogonal to the basis, but both bases are necessarily parallel A Cone is a Trunk with scale factor equal to 0 !!!
Cone constructors are based on a key-value system. Here are the available keys:
_basis: to define the geometrical basis of a Cone (a child object of Surface)
_apex: the apex of the Cone
_center1: to define the center of the basis when they are elliptical
_v1, _v2: to define apogees of the basis when it is elliptical
_nnodes: to define the number of nodes on the edges of the Cone
_hsteps: to define the local mesh steps on build points of the Cone
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
Subclassed by xlifepp::Pyramid
-
class Constraints
-
#include <Constraints.hpp>
class handles the matrix representation of xlifepp::EssentialConditions
-
class CoutStream
-
#include <PrintStream.hpp>
manages output on console that can be also output on PrintStream files
-
class CrackData
-
#include <Mesh.hpp>
store data related to a crack: domain name, domain id and dimension
-
class CrouzeixRaviartStdTetrahedronP1 : public xlifepp::CrouzeixRaviartTetrahedron
-
class CrouzeixRaviartStdTriangleP1 : public xlifepp::CrouzeixRaviartTriangle
-
#include <CrouzeixRaviartTriangle.hpp>
first order Crouzeix-Raviart element of triangle
-
class CrouzeixRaviartTetrahedron : public xlifepp::RefTetrahedron
-
#include <CrouzeixRaviartTetrahedron.hpp>
( conforming elements )
Parent class: RefTetrahedron Child classes: CrouzeixRaviartStdTetrahedronP1
Subclassed by xlifepp::CrouzeixRaviartStdTetrahedronP1
-
class CrouzeixRaviartTriangle : public xlifepp::RefTriangle
-
#include <CrouzeixRaviartTriangle.hpp>
( non-conforming elements )
Parent class: RefTriangle Child classes: CrouzeixRaviartStdTriangleP1
Subclassed by xlifepp::CrouzeixRaviartStdTriangleP1
-
class CsStorage : public xlifepp::MatrixStorage
-
#include <CsStorage.hpp>
abstract base class of all compressed sparse storage classes
child class of row compressed sparse storage
Subclassed by xlifepp::ColCsStorage, xlifepp::DualCsStorage, xlifepp::RowCsStorage, xlifepp::SymCsStorage
-
class Cube : public xlifepp::Cuboid
-
#include <geometries3D.hpp>
definition of a cubic geometry in R^3
Cube constructors are based on a key-value system. Here are the available keys:
_v1, _v2, _v4, _v5: to define the vertices of the Cube
_center: to define the center of the Cube
_origin: to define the first vertex of the Cube (same definition as _v1)
_length: the length of the Cube
_xmin, _xmax, _ymin, _ymax, _zmin, _zmax: to define the Cube v1=(xmin, ymin, zmin), v2=(xmax, ymin, zmin), v4=(xmin, ymax, zmin), v5=(xmin, ymin, zmax)
_nnodes: to define the number of nodes on each edge of the Cube
_hsteps: to define the local mesh steps on the vertices of the Cube
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
class Cuboid : public xlifepp::Parallelepiped
-
#include <geometries3D.hpp>
definition of a cuboid (=rectangular parallelepiped) geometry in R^3
Cuboid constructors are based on a key-value system. Here are the available keys:
_v1, _v2, _v4, _v5: to define the vertices of the Cuboid
_center: to define the center of the Cuboid
_origin: to define the first vertex of the Cuboid (same definition as _v1)
_xlength, _ylength, _zlength: the lengths of the Cuboid
_xmin, _xmax, _ymin, _ymax, _zmin, _zmax: to define the Cuboid v1=(xmin, ymin, zmin), v2=(xmax, ymin, zmin), v4=(xmin, ymax, zmin), v5=(xmin, ymin, zmax)
_nnodes: to define the number of nodes on each edge of the Rectangle
_hsteps: to define the local mesh steps on the vertices of the Rectangle
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
Subclassed by xlifepp::Cube
-
class Curve : public xlifepp::Geometry
-
#include <geometries1D.hpp>
base class for 1D geometries
Subclassed by xlifepp::CircArc, xlifepp::EllArc, xlifepp::ParametrizedArc, xlifepp::Segment, xlifepp::SplineArc
-
class Cylinder : public xlifepp::Trunk
-
#include <geometries3D.hpp>
A cylinder is a volume defined by a section (the basis) and a direction vector The direction vector is not necessarily orthogonal to the basis, but both bases are necessarily parallel A Cylinder is a Trunk with scale factor equal to 1 !!!
Cylinder constructors are based on a key-value system. Here are the available keys:
_basis: to define the geometrical basis of a Cylinder (a child object of Surface)
_direction: a direction vector of the axis of the Cylinder
_center1, _center2: to define centers of bases when they are elliptical
_v1, _v2: to define apogees of the basis when it is elliptical
_nnodes: to define the number of nodes on the edges of the Cylinder
_hsteps: to define the local mesh steps on build points of the Cylinder
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
Subclassed by xlifepp::Prism
-
template<class T>
class DefaultSPStorage
-
#include <StoragePolicy.hpp>
Implementation of the StoragePolicy used by SmartPtr.
-
class DenseStorage : public xlifepp::MatrixStorage
-
#include <DenseStorage.hpp>
abstract base class of all dense storage methods
Subclassed by xlifepp::ColDenseStorage, xlifepp::DualDenseStorage, xlifepp::RowDenseStorage, xlifepp::SymDenseStorage
-
class DifferentialOperator
-
#include <DifferentialOperator.hpp>
description of a differential operator
-
struct DisallowConversion
-
#include <ConversionPolicy.hpp>
Implementation of the ConversionPolicy used by SmartPtr Does not allow implicit conversion from SmartPtr to the pointee type You can initialize a DisallowConversion with an AllowConversion.
-
class Disk : public xlifepp::Ellipse
-
#include <geometries2D.hpp>
definition of a circular geometry in R^3 (surface)
Disk constructors are based on a key-value system. Here are the available keys:
_center: to define the center of the Disk
_v1, _v2: to define “apogees” of the Disk
_radius: to define semi-axis lengths of the Disk
_angle1, _angle2: to define an circular sector from a pair of angles. The angular origin is determined by _v1
_type: indicator to fit curved boundaries (default) or not which gives flat (or plane) boundaries
_nnodes: to define the number of nodes on the edges of the Disk
_hsteps: to define the local mesh steps on build points of the Disk
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
class Dof
-
#include <Dof.hpp>
generalized index in a space
Subclassed by xlifepp::FeDof, xlifepp::SpDof
-
class DofComponent
-
#include <Dof.hpp>
class handles a component of dof say (dof number, unknown, component number)
-
class DofKey
-
#include <RefDof.hpp>
The DofKey class is useful class to index dofs (see for instance FeSpace::buildFeDofs )
-
class DomainInfo
-
#include <GeomDomain.hpp>
to store general information of geometric domain
-
class DomainMap
-
#include <DomainMap.hpp>
handles map (declared as Function) between two GeomDomain’s.
Only one map between domains may be defined !!!
-
class DomUnkDop
-
#include <EssentialCondition.hpp>
small structure to ordered terms of a EssentialCondition
-
template<class T>
struct DontPropagateConst
-
#include <ConstantPolicy.hpp>
Don’t propagate constness of pointed or referred object.
Note
These policy classes are used in SmartPtr to define how const is propagated from the pointee.
-
class DoubleIM : public xlifepp::IntegrationMethod
-
#include <IntegrationMethod.hpp>
abstract class for integration method of double integral over ExF
Subclassed by xlifepp::CollinoIM, xlifepp::DuffyIM, xlifepp::HMatrixIM, xlifepp::LenoirSalles2dIM, xlifepp::LenoirSalles3dIM, xlifepp::ProductIM, xlifepp::SauterSchwabIM, xlifepp::SauterSchwabSymIM
-
class DoubleIntgBilinearForm : public xlifepp::BasicBilinearForm
-
#include <BilinearForm.hpp>
describes a bilinear form based on a double integral
intg_domain_v intg_domain_u opu(y) aopu opker(x,y) aopv opv(x) dy dx
with opu, opv: operator on u and v aopu, aopv: algebraic operation (*,|,%,^) opker: operator on a kernel function
note: when kernel = 1 the pointer to kernel function in opker is ker_p=0 ! Be cautious with order of domain, first if for v-domain, second for u-domain
Actually, two ways to handle some integration methods: by pointer to an IntegrationMethod object, so only one integration method (old way, should disappear in futur) by an IntegrationMethods object that handles some IntegrationMethod (new way)
-
class DoubleIntgLinearForm : public xlifepp::BasicLinearForm
-
#include <LinearForm.hpp>
describes a linear form based on a double integral
-
class DualCsStorage : public xlifepp::CsStorage
-
#include <DualCsStorage.hpp>
child class for dual row/col compressed sparse storage
-
class DualDenseStorage : public xlifepp::DenseStorage
-
#include <DualDenseStorage.hpp>
handles dense storage of matrix stored row by row for the lower “triangular” part and column by column for the upper “triangular”
-
class DualSkylineStorage : public xlifepp::SkylineStorage
-
#include <DualSkylineStorage.hpp>
child class for dual row/col compressed sparse storage
-
class DuffyIM : public xlifepp::DoubleIM
-
#include <DuffyIM.hpp>
integral over a product of 2D geometric elements with singularity using
for adjacent elements : a method based on Duffy transform
for self influence : an hybrid method based on t^p transform may manage different quadrature rules Elements must be segment! Note : does not address the case of separate elements
-
class Earcut
-
class EigenElements
-
#include <EigenTerms.hpp>
end user class containing eigenValues and eigenVectors computed by an eigen solver.
-
template<class ScalarType, class MV, class OP>
class EigenProblem
-
#include <XlifeppEigenProblem.hpp>
This provides a basic implementation for defining standard or generalized eigenvalue problems.
-
template<class ScalarType, class MV, class OP>
class EigenSolver
-
#include <XlifeppEigenSolverDecl.hpp>
The EigenSolver is a templated virtual base class that defines the basic interface that any eigensolver will support.
This interface is mainly concerned with providing a set of eigensolver status method that can be requested from any eigensolver by an StatusTest object.
Subclassed by xlifepp::BlockDavidson< ScalarType, MV, OP >, xlifepp::BlockKrylovSchur< ScalarType, MV, OP >
-
template<class ScalarType, class MV>
struct EigenSolverSolution
-
#include <XlifeppEigenTypes.hpp>
Struct for storing an eigenproblem solution.
-
struct EigPars
-
Utility structure to store parameters for eigen solvers.
-
class Element
-
#include <Element.hpp>
defines data related to one finite element.
It is mainly defined from its geometric support (GeomElement) and its finite element interpolation defined by a RefElement It carries also its dof numbering relative to
-
class EllArc : public xlifepp::Curve
-
#include <geometries1D.hpp>
definition of an elliptic arc geometry in R^3 (curve)
EllArc constructors are based on a key-value system. Here are the available keys:
_center: to define the center of the ellipse supporting the arc
_apogee: to define the apogee of the ellipse supporting the arc
_v1, _v2: to define the bounds of the arc
_nnodes: to define the number of nodes on the arc
_hsteps: to define the local mesh steps on the bounds of the arc
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
class Ellipse : public xlifepp::Surface
-
#include <geometries2D.hpp>
definition of an elliptic geometry in R^3 (surface)
Ellipse constructors are based on a key-value system. Here are the available keys:
_center: to define the center of the Ellipse
_v1, _v2: to define apogees of the Ellipse
_xlength, _ylength: to define axis lengths of the Ellipse
_xradius, _yradius: to define semi-axis lengths of the Ellipse
_angle1, _angle2: to define an elliptic sector from a pair of angles. The angular origin is determined by _v1
_type: indicator to fit curved boundaries (default) or not which gives flat (or plane) boundaries
_nnodes: to define the number of nodes on the edges of the Ellipse
_hsteps: to define the local mesh steps on build points of the Ellipse
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
Subclassed by xlifepp::Disk
-
class Ellipsoid : public xlifepp::Volume
-
#include <geometries3D.hpp>
definition of an ellipsoidal geometry in R^3 (volume)
Ellipsoid constructors are based on a key-value system. Here are the available keys:
_center: to define the center of the Ellipsoid
_v1, _v2, _v6: to define apogees of the Ellipsoid
_xlength, _ylength, _zlength: to define axis lengths of the Ellipsoid
_xradius, _yradius, _zradius: to define semi-axis lengths of the Ellipsoid
_type: indicator to fit curved boundaries (default) or not which gives flat (or plane) boundaries
_nboctants: to define an ellipsoidal sector from octants.
_nnodes: to define the number of nodes on the edges of the Ellipsoid
_hsteps: to define the local mesh steps on build points of the Ellipsoid
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
Subclassed by xlifepp::Ball
-
class EllipsoidSidePart : public xlifepp::Surface
-
#include <geometries3D.hpp>
definition of a part of ellipsoid side in R^3 (surface), defined by an ellipsoid and angles theta, phi related to ellisoid axes: theta = (1-u)theta_min + u theta_max, phi = (1-v)phi_min + v phi_max P(u,v) = P0 + (P1-P0) cos(theta) cos(phi) + (P2-P0) sin(theta) cos(phi) + (P6-P0) sin(phi) no construction via key parameter, no geometric transformation available, no mesh (p_,n_,h_ not managed) not a user geometry for the moment !!!
-
struct ELTDEF
-
class Environment
-
#include <Environment.hpp>
Class Environment stores environment (!) variables and methods to build them.
-
class EssentialCondition
-
#include <EssentialCondition.hpp>
end user class handling symbolic representation of an essential condition
-
class EssentialConditions : public std::list<EssentialCondition>
-
#include <EssentialConditions.hpp>
handling a list of Essential conditions
-
class ExtendedElement
-
#include <BCElement.hpp>
ExtendedElement class is a virtual class handling elements that are not standard for instance, Buffa-Christiansen elements ExtendElement objects are referenced by Element objects.
Subclassed by xlifepp::BCRTElement
-
class Extension
-
class ExtensionData
-
class ExtrusionData
-
data required to do an extrusion
-
template<class M_>
struct FactPtrTrait
-
struct FalseType
-
class FEcomputationParameters
-
class FeDof : public xlifepp::Dof
-
#include <Dof.hpp>
to store finite element global dof informations
-
class FeDofExtension
-
#include <Dof.hpp>
virtual class to store extra informations on FeDof
Subclassed by xlifepp::BCDof
-
class FeSpace : public xlifepp::Space
-
#include <FeSpace.hpp>
defines general data of a finite element space.
FeSpace class is not directly exposed to end users
-
class FeSubSpace : public xlifepp::SubSpace
-
#include <FeSubSpace.hpp>
inheriting from SubSpace handles additionnal data for elementary Fe type subspace.
Elementary means a subspace based on a single mesh domain (not an union of mesh domains) This structure is useful for Fe computation on sub domains, when the subdomain is not of the same dim as parent domain, Elements are SubElements
-
template<typename T = complex_t>
class FilonIMT : public xlifepp::SingleIM
-
#include <FilonIM.hpp>
compute I(x)=intg_0_T f(t)*exp(-ixt)dt using Filon method ~ dt sum_j=1,p Cj(x) sum_n=1,N f(t_n-1)exp(-ixt_n-1) with Cj(x)= intg_0,1 w_j(s) exp(-ixsdt)ds and wj polynomial basis functions order 0 : P0 Lagrange basis w1(s)=1 order 1 : P1 Lagrange basis w1(s)=1-s, w2(s)=s order 2 : P3 Hermite basis w1(s)=(2s+1)(s-1)^2, w2(s)=s(s-1)^2, w3(s)=(3-2s)s^2, w4(s)=(s-1)s^2
main functions are init() : computes f(t_n) and f’(t_n) if order 2 coef(x,j) : computes Cj(x) compute(x) : evaluates I(x) operator (): calls compute(x) print() : outputs some informations
-
class Fock
-
class Function
-
#include <Function.hpp>
The class Function encapsulates in object function a user’s functions.
It is used by internal computing functions
this class is able to deal with any user function of type
r function(const Point&, Parameters&) (function tpe) r function(const Point&, const Point&, Parameters&) (kernel type)
Vector<r> function(const Vector<Point>&, Parameters&) Vector<r> function(const Vector<Point>&, const Vector<Point>&, Parameters&)
This class mainly proposes:
two constructors (unamed and named)
a fast call to compute function values when function is well identified (see member functions fun_xxx)
a general safe call to compute function values (see operator ()); require only output argument compatibility if output argument is not compatible, an error occurs with a message
some utilities to return type of function and type of arguments (use rtti functions)
Note: A Parameters is attached to a Function using a pointer. This Parameters is passed to the function by reference therefore, it may be shared by few functions and when it is modified it is for any function sharing it. In a way, this parameters is global
-
struct GELT
-
Gmsh element.
-
template<typename _MatrixType>
class GeneralizedSelfAdjointEigenSolver : public xlifepp::SelfAdjointEigenSolver<_MatrixType>
-
#include <GeneralizedSelfAdjointEigenSolver.hpp>
Computes eigenvalues and eigenvectors of the generalized selfadjoint eigen problem.
This class solves the generalized eigenvalue problem \( Av = \lambda Bv \). In this case, the matrix \( A \) should be selfadjoint and the matrix \( B \) should be positive definite.
Only the lower triangular part of the input matrix is referenced.
Call the function compute() to compute the eigenvalues and eigenvectors of a given matrix. Alternatively, you can use the GeneralizedSelfAdjointEigenSolver(const MatrixType&, const MatrixType&, int) constructor which computes the eigenvalues and eigenvectors at construction time. Once the eigenvalue and eigenvectors are computed, they can be retrieved with the eigenvalues() and eigenvectors() functions.
The documentation for GeneralizedSelfAdjointEigenSolver(const MatrixType&, const MatrixType&, int) contains an example of the typical use of this class.
See also
class SelfAdjointEigenSolver, class EigenSolver
- Template Parameters:
-
_MatrixType – the type of the matrix of which we are computing the eigendecomposition; this is expected to be an instantiation of the Matrix class template.
-
class Geodesic
-
#include <Geodesic.hpp>
Geodesic class handling any geodesic (abstract) Base class geodesic handles.
dom_p: pointer to a geometric domain
geo_p: pointer to related geometry
xs_: vector of successive geodesic points (fill by compute)
dxs_: vector of successive geodesic derivatives (fill by compute)
curAbcs_: vector of successive geodesic curvilinear abcissa (fill by compute)
normals_: vector of successive normal surfaces at geodesics point
curvatures_: vector of curvatures (Gauss, mean and normal curvature)
sx_, sdx_: starting point an direction
ex_, edx_: ending point an direction
length_: geodesic length
meshgeod_: pointer to a MeshedGeodesic handling the projection of the geodesic on a mesh
field_: to store a field on geodesic (only scalar complex up to now)
fieldTypes_: to store field types on geodesic (specific to HF computation)
fcur_p, fnor_p: additional pointer to functions giving the principal curvatures and surface normals cannot be deduced from geodesic! 0 if not required automatic assignment if geo_p is assigned and has a parametrization
params_: usefull parameters (first Parameter is always this, set by init())
dom_p or geo_p or both may be not allocated, regarding the type of Geodesic:
ParametrizedGeodesic: inherited class using parametrization and a RK4 scheme to compute geodesics
MeshedGeodesic: inherited class using mesh to compute geodesics
GeometricGeodesic: inherited class using a 1D geometry to describe geodesics
AnalyticGeodesic: inherited class using an analytic function to describe geodesics
-
CompositeGeodesic: inherited class using a list of chained geodesics of any type all inherited class must provide the computing function Geodesic& compute(Point& x, Point& dx, real_t& l, real_t lmax, number_t nmax, real_t dt=0) where - (x,dx) is the starting point/dervative of the geodesic
l, lmax: the current and max length of the geodesic
nmax: maximum number of points to compute
dt: step of computation if required (may be dt or ds) GeometricGeodesic and AnalyticalGeodesic are available only for a few simple geometries
When geometry is composed with patches that not match in a C1 way (different tangent planes) the new geodesic direction d2 from the previous one d1 at transition point x is computed as follows d2 = d1-(d1|n1)(n1+n2) where n1 is the outward normal (in tangent plane in x) to the original patch and n2 the outward normal (in tangent plane in x) to the new patch This rule is effective only when using a ParametrizedGeodesic, a MeshedGeodesic or a CompositeGeodesic
Subclassed by xlifepp::AnalyticGeodesic, xlifepp::CompositeGeodesic, xlifepp::GeometricGeodesic, xlifepp::MeshedGeodesic, xlifepp::ParametrizedGeodesic
-
class GeomDomain
-
#include <GeomDomain.hpp>
base class of geometric domain
Subclassed by xlifepp::AnalyticalDomain, xlifepp::CompositeDomain, xlifepp::MeshDomain, xlifepp::PointsDomain
-
class GeomElement
-
#include <GeomElement.hpp>
object represents the geometric support of mesh elements.
It either a plain element or a side element (side of a GeomElement).
when it is a plain element, there is always a MeshElement associated to its but no parentSides
when it is a side element, there is at least a parent (parentSides is not empty) and by default no MeshElement, but if required, MeshElement may be constructed (buildSideMeshElement)
-
class GeomElementLess
-
#include <GeomElement.hpp>
a very small class defining a functor to sort std::vector of GeomElement* ascendingly according to their number
-
class GeometricGeodesic : public xlifepp::Geodesic
-
#include <Geodesic.hpp>
GeometricGeodesic class handling any geodesic described by a 1D geometry.
-
class Geometry
-
#include <Geometry.hpp>
handles geometric data of the physical problem
Subclassed by xlifepp::Curve, xlifepp::SetOfElems, xlifepp::SetOfPoints, xlifepp::Surface, xlifepp::Volume
-
class GeomMapData
-
#include <GeomMapData.hpp>
object handles useful computational data of a geometric element It stores jacobian, its determinant, … depending of a point
-
class GeomRefElement
-
Subclassed by xlifepp::GeomRefHexahedron, xlifepp::GeomRefPoint, xlifepp::GeomRefPrism, xlifepp::GeomRefPyramid, xlifepp::GeomRefQuadrangle, xlifepp::GeomRefSegment, xlifepp::GeomRefTetrahedron, xlifepp::GeomRefTriangle
-
class GeomRefHexahedron : public xlifepp::GeomRefElement
-
#include <GeomRefHexahedron.hpp>
child to class GeomRefElement
-
class GeomRefPoint : public xlifepp::GeomRefElement
-
class GeomRefPrism : public xlifepp::GeomRefElement
-
#include <GeomRefPrism.hpp>
child class to GeomRefElement
-
class GeomRefPyramid : public xlifepp::GeomRefElement
-
#include <GeomRefPyramid.hpp>
child class to GeomRefElement
-
class GeomRefQuadrangle : public xlifepp::GeomRefElement
-
#include <GeomRefQuadrangle.hpp>
child to class GeomRefElement
-
class GeomRefSegment : public xlifepp::GeomRefElement
-
class GeomRefTetrahedron : public xlifepp::GeomRefElement
-
class GeomRefTriangle : public xlifepp::GeomRefElement
-
#include <GeomRefTriangle.hpp>
xlifepp::GeomRefTriangle defines Reference Element geometric data on triangular elements
-
class GeoNode
-
#include <Geometry.hpp>
utility class to describe a hierarchical composite construction each node represent either a unary operation on a geometry/GeoNode or a binary operation on two geometries/GeoNodes op(g1) op(g1,g2) its main purpose is to describe as a tree some complex composite geometries involving several minus, plus, common operations the GeoNode will be attached to any geometry as a member data (not allocated for canonical geometries) GeoNode may be used in two way, either handling GeoNode(s) or Geometry(s) (terminal leaf) in a compact construction such as (g1+g2+g3)-g4 the representation will be: geonode(-, &geonode(+, &geonode(+&g1,&g2) ,&g3), &g4) (two additional GeoNodes) if g=g1+g2+g3 has been already constructed, the representation will be geonode(-, &g, &g4) (no additional GeoNode !) in other words as soon as a geometry pointer is available it is used instead of a new geo node all the tree may be unrolled using expand() function
-
class GmresSolver : public xlifepp::IterativeSolver
-
#include <GmresSolver.hpp>
Implement Generalized Minimal Residual algorithm.
-
struct GMXL
-
class Graph : public std::vector<std::vector<number_t>>
-
#include <Graph.hpp>
class to deal with general graphs
-
template<class ScalarType>
class HelperTraits
-
#include <XlifeppHelperTraits.hpp>
Class which defines basic traits for working with different scalar types.
An adapter for this traits class must exist for the
ScalarType
. If not, this class will produce a compile-time error.
-
class HermiteSegment : public xlifepp::RefSegment
-
#include <HermiteSegment.hpp>
Grand-Parent class: ReferenceElement Parent class: ReferenceSegment Child class: HermiteStdSegment.
Subclassed by xlifepp::HermiteStdSegment< Pk >
-
template<number_t Pk>
class HermiteStdSegment : public xlifepp::HermiteSegment
-
#include <HermiteSegment.hpp>
template class (order is template parameter)
-
template<number_t Pk>
class HermiteStdTriangle : public xlifepp::HermiteTriangle
-
#include <HermiteTriangle.hpp>
template class child to class HermiteTriangle
-
class HermiteTriangle : public xlifepp::RefTriangle
-
#include <HermiteTriangle.hpp>
defines Hermite Reference Element interpolation data on triangular elements
Parent class : RefTriangle Child classes: HermiteStdTriangle
Subclassed by xlifepp::HermiteStdTriangle< Pk >
-
template<typename _MatrixType>
class HessenbergDecomposition
-
#include <HessenbergDecomposition.hpp>
Reduces a square matrix to Hessenberg form by an orthogonal similarity transformation.
This class performs an Hessenberg decomposition of a matrix \( A \). In the real case, the Hessenberg decomposition consists of an orthogonal matrix \( Q \) and a Hessenberg matrix \( H \) such that \( A = Q H Q^T \). An orthogonal matrix is a matrix whose inverse equals its transpose ( \( Q^{-1} = Q^T \)). A Hessenberg matrix has zeros below the subdiagonal, so it is almost upper triangular. The Hessenberg decomposition of a complex matrix is \( A = Q H Q^* \) with \( Q \) unitary (that is, \( Q^{-1} = Q^* \)).
Call the function compute() to compute the Hessenberg decomposition of a given matrix. Alternatively, you can use the HessenbergDecomposition(const MatrixType&) constructor which computes the Hessenberg decomposition at construction time. Once the decomposition is computed, you can use the matrixH() and matrixQ() functions to construct the matrices H and Q in the decomposition.
- Template Parameters:
-
_MatrixType – the type of the matrix of which we are computing the Hessenberg decomposition
-
class Hexahedron : public xlifepp::Polyhedron
-
#include <geometries3D.hpp>
definition of a hexahedron geometry in R^3
Hexahedron constructors are based on a key-value system. Here are the available keys:
_v1, _v2, _v3, _v4, _v5, _v6, _v7, _v8: to define the vertices of the Hexahedron
_nnodes: to define the number of nodes on each edge of the Hexahedron
_hsteps: to define the local mesh steps on the vertices of the Hexahedron
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
Subclassed by xlifepp::Parallelepiped
-
template<typename T, typename I>
class HMatrix
-
#include <HMatrix.hpp>
describes a matrix represented by a hierarchical structure (tree), each node being a block matrix a leaf is either a standard matrix or an approximate matrix
-
template<typename I>
class HMatrixEntry
-
#include <HMatrixEntry.hpp>
container class to deal with main type of HMatrix
-
class HMatrixIM : public xlifepp::DoubleIM
-
#include <HMatrix.hpp>
integral over a product of geometric domains based on hierarchical matrix representation
-
template<typename T, typename I>
class HMatrixNode
-
#include <HMatrix.hpp>
describes a node of hierarchical representation of matrix
-
class Homothety : public xlifepp::Scaling
-
#include <Transformation.hpp>
representation of an homothety from a center and a factor
Subclassed by xlifepp::PointReflection
-
template<typename _MatrixType>
class HouseholderQR
-
#include <HouseholderQR.hpp>
Householder QR decomposition of a matrix.
This class performs a QR decomposition of a matrix A into matrices Q and R such that
\[ \mathbf{A} = \mathbf{Q} \, \mathbf{R} \]by using Householder transformations. Here, Q a unitary matrix and R an upper triangular matrix. The result is stored in a compact way compatible with LAPACK.Note that no pivoting is performed. This is not a rank-revealing decomposition.
- Param MatrixType:
-
the type of the matrix of which we are computing the QR decomposition
-
template<class MatrixType, class VectorType>
class HouseholderSequence
-
#include <HouseHolderSequence.hpp>
Sequence of Householder reflections acting on subspaces with decreasing size.
This class represents a product sequence of Householder reflections where the first Householder reflection acts on the whole space, the second Householder reflection leaves the one-dimensional subspace spanned by the first unit vector invariant, the third Householder reflection leaves the two-dimensional subspace spanned by the first two unit vectors invariant, and so on up to the last reflection which leaves all but one dimensions invariant and acts only on the last dimension. Such sequences of Householder reflections are used in several algorithms to zero out certain parts of a matrix. Indeed, the methods HessenbergDecomposition::matrixQ(), Tridiagonalization::matrixQ(), HouseholderQR::householderQ(), and ColPivHouseholderQR::householderQ() all return a HouseholderSequence.
More precisely, the class HouseholderSequence represents an \( n \times n \) matrix \( H \) of the form \( H = \prod_{i=0}^{n-1} H_i \) where the i-th Householder reflection is \( H_i = I - h_i v_i v_i^* \). The i-th Householder coefficient \( h_i \) is a scalar and the i-th Householder vector \( v_i \) is a vector of the form
\[ v_i = [\underbrace{0, \ldots, 0}_{i-1\mbox{ zeros}}, 1, \underbrace{*, \ldots,*}_{n-i\mbox{ arbitrary entries}} ]. \]The last \( n-i \) entries of \( v_i \) are called the essential part of the Householder vector.Typical usages are listed below, where H is a HouseholderSequence:
A.applyOnTheRight(H); // A = A * H A.applyOnTheLeft(H); // A = H * A A.applyOnTheRight(H.adjoint()); // A = A * H^* A.applyOnTheLeft(H.adjoint()); // A = H^* * A MatrixXd Q = H; // conversion to a dense matrix
- Template Parameters:
-
VectorsType – type of matrix containing the Householder vectors
CoeffsType – type of vector containing the Householder coefficients
Side – either OnTheLeft (the default) or OnTheRight
-
class IEcomputationParameters
-
template<int v>
struct Int2Type
-
#include <Traits.hpp>
A trick to overcome problem of static dispatch.
-
class IntegrationMethod
-
#include <IntegrationMethod.hpp>
abstract class for integration methods
Subclassed by xlifepp::DoubleIM, xlifepp::SingleIM
-
class IntegrationMethods
-
#include <IntegrationMethod.hpp>
handles a collection of IntegrationMethod and related criteria
-
class Interpolation
-
class IntgBilinearForm : public xlifepp::BasicBilinearForm
-
#include <BilinearForm.hpp>
describes a bilinear form based on a single integral
intg_domain opu aopu opv
-
class IntgLinearForm : public xlifepp::BasicLinearForm
-
#include <LinearForm.hpp>
describes a linear form based on a single integral
-
class IntgMeth
-
#include <IntegrationMethod.hpp>
structure to handle a triplet (integration method, function part, lower bound)
-
template<typename K>
struct IterationVectorTrait
-
#include <Traits.hpp>
Trait struct to determine (scalar) type of Iterator!
-
class IterativeSolver
-
#include <IterativeSolver.hpp>
Base class of other Solver classes.
Subclassed by xlifepp::BicgSolver, xlifepp::BicgStabSolver, xlifepp::CgSolver, xlifepp::CgsSolver, xlifepp::GmresSolver, xlifepp::QmrSolver, xlifepp::SorSolver, xlifepp::SsorSolver
-
template<typename Scalar>
class JacobiRotation
-
#include <Jacobi.hpp>
Rotation given by a cosine-sine pair.
This class represents a Jacobi or Givens rotation. This is a 2D rotation in the plane
J
of angle \( \theta \) defined by its cosinec
and sines
as follow: \( J = \left ( \begin{array}{cc} c & \overline s \\ -s & \overline c \end{array} \right ) \)You can apply the respective counter-clockwise rotation to a column vector
v
by applying its adjoint on the left: \( v = J^* v \) that translates to the following code:v.applyOnTheLeft(J.adjoint());
-
template<class T>
class KdNode
-
#include <KdTree.hpp>
node of a KdTree
-
template<class T>
class KdTree
-
#include <KdTree.hpp>
definition of a Kd-tree
-
class Kernel
-
Subclassed by xlifepp::TensorKernel
-
class KernelExpansion
-
#include <Kernel.hpp>
Kernel expansion according to singularity exponents:
\(\displaystyle G(x,y) = \sum_i F_i(x,y) / |x-y|^{{\alpha_0}_i}\)
\(\displaystyle grad_x G(x,y) = \sum_i GxF_i(x,y).(x-y) / |x-y|^{{\alpha_x}_i}\)
\(\displaystyle grad_y G(x,y) = \sum_i GyF_i(x,y).(x-y) / |x-y|^{{\alpha_y}_i}\)
\(\displaystyle grad_{xy} G(x,y) = \sum_i GxyF_i(x,y).(x-y)(x-y)^T / |x-y|^{{\alpha_{xy}}_i} + \sum_i {GxyF_{diag}}_i(x,y) / |x-y|^{{{\alpha_{xy}}_{diag}}_i} *Identity\)
with the convention \(1/|x-y|^{{\alpha_x}_i} = Log(|x-y|)\) when \({\alpha_x}_i = -1\)
-
class KernelOperatorOnTermVector
-
#include <KernelOperatorOnTermVector.hpp>
useful class to deal with integral representation u(x) = int_dom opker(x,y) * tv(y) or u(x) = int_dom tv(y) * opker(x,y) or with linear form defined from a bilinear form applied to a TermVector int_domx int_domy tv(y) * opker(x,y) * v(x) or int_domx int_domy v(x) * opker(x,y) * tv(y)
-
class KernelOperatorOnTermVectorAndUnknown
-
#include <KernelOperatorOnTermVector.hpp>
useful class to deal with linear form defined from a bilinear form applied to a TermVector int_domx int_domy tv(y) * opker(x,y) * v(x) or int_domx int_domy v(x) * opker(x,y) * tv(y) tv(y) * opker(x,y) or opker(x,y) * tv(y) are read as KernelOperatorOnTermVector
NOTE: the operator on unknown is always considered as a function depending on x
-
class KernelOperatorOnUnknowns
-
#include <KernelOperatorOnUnknowns.hpp>
generalization to kernel form describes a pair of OperatorOnUnknows linked by a Kernel operation: (op_u aop_u op_ker) aop_v op_v respect the order of operators, operator u at left and operator v at right
-
class LagrangeGLHexahedron : public xlifepp::LagrangeHexahedron
-
#include <LagrangeHexahedron.hpp>
child class of LagrangeHexahedron with Gauss Lobatto interpolation
-
class LagrangeGLQuadrangle : public xlifepp::LagrangeQuadrangle
-
#include <LagrangeQuadrangle.hpp>
child class to class LagrangeQuadrangle
-
class LagrangeGLSegment : public xlifepp::LagrangeSegment
-
#include <LagrangeSegment.hpp>
child class of LagrangeHexahedron with Gauss-Lobatto interpolation
-
class LagrangeHexahedron : public xlifepp::RefHexahedron
-
#include <LagrangeHexahedron.hpp>
defines Lagrange Reference Element interpolation data on hexahedra
Subclassed by xlifepp::LagrangeGLHexahedron, xlifepp::LagrangeStdHexahedron
-
class LagrangePrism : public xlifepp::RefPrism
-
#include <LagrangePrism.hpp>
defines Lagrange Reference Element interpolation data on prisms
Subclassed by xlifepp::LagrangeStdPrism< Pk >
-
class LagrangePyramid : public xlifepp::RefPyramid
-
#include <LagrangePyramid.hpp>
defines Lagrange Reference Element interpolation data on pyramids
Subclassed by xlifepp::LagrangeStdPyramid< Pk >
-
class LagrangeQuadrangle : public xlifepp::RefQuadrangle
-
#include <LagrangeQuadrangle.hpp>
defines Lagrange Reference Element interpolation data on quadrangles
Subclassed by xlifepp::LagrangeGLQuadrangle, xlifepp::LagrangeStdQuadrangle
-
class LagrangeSegment : public xlifepp::RefSegment
-
#include <LagrangeSegment.hpp>
Grand-Parent class: ReferenceElement Parent class: ReferenceSegment Child classes: LagrangeStdSegment LagrangeGLSegment.
Subclassed by xlifepp::LagrangeGLSegment, xlifepp::LagrangeStdSegment
-
class LagrangeStdHexahedron : public xlifepp::LagrangeHexahedron
-
#include <LagrangeHexahedron.hpp>
child class of LagrangeHexahedron with standard interpolation
-
template<number_t Pk>
class LagrangeStdPrism : public xlifepp::LagrangePrism
-
#include <LagrangePrism.hpp>
template class child to class LagrangePrism
http://homepage.mac.com/danielmartin/melina++/doc/elements/prism/LagrangeStdPrism1.pdf http://homepage.mac.com/danielmartin/melina++/doc/elements/prism/LagrangeStdPrism2.pdf
-
template<number_t Pk>
class LagrangeStdPyramid : public xlifepp::LagrangePyramid
-
#include <LagrangePyramid.hpp>
template class child to class LagrangePyramid
http://homepage.mac.com/danielmartin/melina++/doc/elements/pyramid/LagrangeStdPyramid1.pdf http://homepage.mac.com/danielmartin/melina++/doc/elements/pyramid/LagrangeStdPyramid2.pdf
-
class LagrangeStdQuadrangle : public xlifepp::LagrangeQuadrangle
-
#include <LagrangeQuadrangle.hpp>
child class to class LagrangeQuadrangle
-
class LagrangeStdSegment : public xlifepp::LagrangeSegment
-
#include <LagrangeSegment.hpp>
child class of LagrangeHexahedron with standard interpolation
-
template<number_t Pk>
class LagrangeStdTetrahedron : public xlifepp::LagrangeTetrahedron
-
#include <LagrangeTetrahedron.hpp>
template class child to class LagrangeTetrahedron
http://homepage.mac.com/danielmartin/melina++/doc/elements/tetra/LagrangeStdTetrahedron1.pdf http://homepage.mac.com/danielmartin/melina++/doc/elements/tetra/LagrangeStdTetrahedron2.pdf http://homepage.mac.com/danielmartin/melina++/doc/elements/tetra/LagrangeStdTetrahedron3.pdf http://homepage.mac.com/danielmartin/melina++/doc/elements/tetra/LagrangeStdTetrahedron4.pdf http://homepage.mac.com/danielmartin/melina++/doc/elements/tetra/LagrangeStdTetrahedron5.pdf http://homepage.mac.com/danielmartin/melina++/doc/elements/tetra/LagrangeStdTetrahedron6.pdf http://homepage.mac.com/danielmartin/melina++/doc/elements/tetra/LagrangeStdTetrahedron7.pdf
-
class LagrangeStdTetrahedronPk : public xlifepp::LagrangeTetrahedron
-
template<number_t Pk>
class LagrangeStdTriangle : public xlifepp::LagrangeTriangle
-
#include <LagrangeTriangle.hpp>
template class child to class LagrangeTriangle (up to P6)
-
class LagrangeStdTrianglePk : public xlifepp::LagrangeTriangle
-
#include <LagrangeTriangle.hpp>
any order LagrangeTriangle with general formulae
-
class LagrangeTetrahedron : public xlifepp::RefTetrahedron
-
#include <LagrangeTetrahedron.hpp>
defines Lagrange Reference Element interpolation data on tetrahedra
Subclassed by xlifepp::LagrangeStdTetrahedron< Pk >, xlifepp::LagrangeStdTetrahedronPk
-
class LagrangeTriangle : public xlifepp::RefTriangle
-
#include <LagrangeTriangle.hpp>
defines Lagrange Reference Element interpolation data on triangular elements
Grand-Parent class: RefElement Parent class: RefTriangle Child classes: LagrangeStdTriangle
Subclassed by xlifepp::LagrangeStdTriangle< Pk >, xlifepp::LagrangeStdTrianglePk
-
template<typename T>
class LargeMatrix
-
#include <LargeMatrix.hpp>
templated class to deal with large matrices, it handles a vector of values (non zero coefficients) and a pointer to a MatrixStorage
-
template<typename MatrixType, typename ScalarType>
class LargeMatrixAdapter : public xlifepp::Operator<ScalarType>
-
#include <LargeMatrixAdapter.hpp>
Template specialization of Operator class using the Operator virtual base class and LargeMatrix class.
This interface will ensure that any Operator and MultVec will be accepted by the templated solvers.
-
template<typename MatrixType, typename ScalarType>
class LargeMatrixAdapterInverse : public xlifepp::Operator<ScalarType>
-
#include <LargeMatrixAdapterInverse.hpp>
Template specialization of Operator class using the Operator virtual base class and LargeMatrix class.
This interface will ensure that any Operator and MultVec will be accepted by the templated solvers.
-
template<typename MatrixType, typename ScalarType>
class LargeMatrixAdapterInverseGeneralized : public xlifepp::Operator<ScalarType>
-
#include <LargeMatrixAdapterInverseGeneralized.hpp>
Template specialization of Operator class using the Operator virtual base class and LargeMatrix class.
This interface will ensure that any Operator and MultVec will be accepted by the templated solvers.
-
template<typename K>
struct LargeMatrixTrait
-
#include <LargeMatrix.hpp>
A small struct to deal with type of scalar (real, complex) of LargeMatrix.
-
class LcKernelOperatorOnUnknowns : public std::vector<OpkuvValPair>
-
#include <LcKernelOperatorOnUnknowns.hpp>
describes the linear combination of KernelOperatorOnUnknowns
-
class LcOperatorOnUnknown : public std::vector<OpuValPair>
-
#include <LcOperatorOnUnknown.hpp>
describes the linear combination of OperatorOnUnknown
-
class LcOperatorOnUnknowns : public std::vector<OpusValPair>
-
#include <LcOperatorOnUnknowns.hpp>
describes the linear combination of OperatorOnUnknowns
-
template<typename TT>
class LcTerm : public std::vector<std::pair<const TT*, complex_t>>
-
class LenoirSalles2dIM : public xlifepp::DoubleIM
-
#include <LenoirSallesIM.hpp>
integral over a product of geometric elements with singularity using Lenoir-Salles analytic technique restricted for the moment to P0 triangle single layer and double layer and P1 single layer Marc Lenoir, Nicolas Salles, Evaluation of 3-D Singular and Nearly Singular Integrals in Galerkin BEM for Thin Layers, SIAM Journal on Scientific Computing, vol.
36, pp. 3057-3078, 2012
-
class LenoirSalles2dIR : public xlifepp::SingleIM
-
#include <LenoirSallesIM.hpp>
integral over a geometric element with singularity using Lenoir-Salles analytic technique restricted for the moment to P0/P1 segment and single/double layer potential
-
class LenoirSalles3dIM : public xlifepp::DoubleIM
-
#include <LenoirSallesIM.hpp>
integral over a product of geometric elements with singularity using Lenoir-Salles analytic technique restricted for the moment to P0 triangle and single layer Marc Lenoir, Nicolas Salles, Evaluation of 3-D Singular and Nearly Singular Integrals in Galerkin BEM for Thin Layers, SIAM Journal on Scientific Computing, vol.
36, pp. 3057-3078, 2012
-
class LenoirSalles3dIR : public xlifepp::SingleIM
-
#include <LenoirSallesIM.hpp>
integral over a geometric element with singularity using Lenoir-Salles analytic technique restricted for the moment to P0/P1 triangle and single/double layer potential
-
class LinearForm
-
#include <LinearForm.hpp>
describes a general linear form, that is a list of linear combinations of basic linear forms.
It is intend to collect linear forms with different unknowns, using a map<const Unknown*,SuLinearForm> It is the enduser’s class
-
template<class T>
class LowRankMatrix : public xlifepp::ApproximateMatrix<T>
-
#include <ApproximateMatrix.hpp>
class dealing with matrix represented by a small sets of vectors A = U D V* with U a (m,r) matrix, V a (n,r) matrix and D a (r,r) diagonal matrix stored as a vector when D=Id it is not stored
-
template<class T1, class T2>
class MakePairOp
-
class Malyuzhinets
-
#include <MalyuzhinetsFunction.hpp>
describes the class providing the computation of Malyuzhinets function involved in wedge diffraction
-
template<class ScalarType, class MV, class OP>
class MatOrthoManager : public xlifepp::OrthoManager<ScalarType, MV>
-
#include <XlifeppMatOrthoManager.hpp>
xlifepp’s templated virtual class for providing routines for orthogonalization and orthonormalization of multivectors using matrix-based inner products.
This class extends xlifepp::OrthoManager by providing extra calling arguments to orthogonalization routines, to reduce the cost of applying the inner product in cases where the user already has the image of target multivectors under the inner product matrix.
A concrete implementation of this class is necessary. The user can create their own implementation if those supplied are not suitable for their needs.
Subclassed by xlifepp::BasicOrthoManager< ScalarType, MV, OP >, xlifepp::SVQBOrthoManager< ScalarType, MV, OP >
-
template<typename K>
class Matrix : public std::vector<K>
-
#include <Matrix.hpp>
to deal with numeric matrix (say real or complex vector).
inherited from std::vector<K> (dense storage by row) may be used even for matrix of matrices but restricted usage !
Subclassed by xlifepp::MatrixEigenDense< K >
-
class MatrixBilinearForm : public xlifepp::BasicBilinearForm
-
#include <BilinearForm.hpp>
describes a bilinear form given by an explicit matrix explicit matrix is handled by a MatrixEntry object MatrixEntry pointer may be assigned from:
MatrixEntry pointer or reference: no hard copy to save memory
Matrix: matrix is copied as a dense matrix MatrixEntry
Vector: vector is copied as a diagonal MatrixEntry when hard copy is involved, newMatrixEntry flag is set to true in order to free memory when deleting MatrixBilinearForm
-
template<typename K>
class MatrixEigenDense : public xlifepp::Matrix<K>
-
#include <MatrixEigenDense.hpp>
Class (row) dense matrix to deal with direct eigen problem solver.
This class provides some basic methods to support calculation of eigen problem dense matrix.
- Template Parameters:
-
Type – of scalar (real_t, complex_t)
-
class MatrixEntry
-
#include <MatrixEntry.hpp>
small class handling current types of LargeMatrix shadowing template parameter of LargeMatrix
-
class MatrixStorage
-
#include <MatrixStorage.hpp>
abstract base class of all matrix storage methods
Subclassed by xlifepp::CsStorage, xlifepp::DenseStorage, xlifepp::SkylineStorage
-
struct MELT
-
class Memory
-
#include <memoryUtils.hpp>
memory utilities (OS dependant)
-
class Mesh
-
#include <Mesh.hpp>
handles mesh data either created by internal mesh tools or read from file generated by external mesh tools
-
class MeshDomain : public xlifepp::GeomDomain
-
#include <GeomDomain.hpp>
class to handle domain with mesh description
-
class MeshedGeodesic : public xlifepp::Geodesic
-
#include <Geodesic.hpp>
MeshedGeodesic class handling any geodesic got using surface mesh Mesh is assumed to be linear dom_p must be allocated.
In addition to xs_,dxs_, curAbcs_, compute function fills in the vector of crossed elements (GeomElement*,outward side number)
-
class MeshElement
-
#include <GeomElement.hpp>
object represents the geometric support of a mesh element.
It mainly stores global numberings of element
-
class Messages
-
#include <Messages.hpp>
store the list of message formats by type as a std::map is indexed by the message format
-
class MinimalBox
-
#include <Geometry.hpp>
utility class to describe a minimal box This is like the bounding box, but independant from the orientation.
-
template<typename K = real_t>
class MonomialT
-
#include <polynomials.hpp>
deals with a Monomial of 1, 2 or 3 variables of type T, say x1^a1 x2^a2 x3^a3
-
class MorleyTriangle : public xlifepp::RefTriangle
-
#include <MorleyTriangle.hpp>
(non conforming H2 element) Parent class: RefTriangle
-
class MsgData
-
#include <Messages.hpp>
data to pass to message handling engine
define a structure which contains temporary data to pass to message handling engine
data structure allows any of the following types in any order: string, real, complex, int or boolean
such data is unlimited in number as far as memory allows it
-
class MsgFormat
-
#include <Messages.hpp>
store a message format for output
-
template<class ScalarType>
class MultiVec
-
#include <XlifeppMultiVec.hpp>
Interface for multivectors used by xlifepp’s linear solvers.
By using the pointer to each vector in MultiVecAdapter, we can create objects which share a same view of memory (share same storage, like Storage in library LargeMatrix) However, these implementation aren’t counted for parallel programming and maybe we need to change them in the future to make the class work with MPI?
xlifepp accesses multivectors through a traits interface called MultiVecTraits. If you want to use xlifepp with your own multivector class MV, you may either specialize MultiVecTraits for MV, or you may wrap MV in your own class that implements MultiVec. Specializing MultiVecTraits works via compile-time polymorphism, whereas implementing the MultiVec interface works via run-time polymorphism. You may pick whichever option you like. However, specializing MultiVecTraits is the preferred method. This is because xlifepp’s linear solvers always use a specialization of MultiVecTraits to access multivector operations. They only use MultiVec through a specialization of the MultiVecTraits traits class, which is implemented below in this header file.
If you want your multivector class (or a wrapper thereof) to implement the MultiVec interface, you should inherit from MultiVec<ScalarType>, where ScalarType is the type of entries in the multivector. For example, a multivector with entries of type double would inherit from MultiVec<double>.
- Template Parameters:
-
ScalarType – The type of entries of the multivector.
Subclassed by xlifepp::MultiVecAdapter< ScalarType >
-
template<class ScalarType>
class MultiVecAdapter : public xlifepp::MultiVec<ScalarType>
-
#include <MultiVectorAdapter.hpp>
This class implements all the virtual functions of its ancestor.
-
template<class ScalarType, class MV>
class MultiVecTraits
-
#include <XlifeppMultiVecTraits.hpp>
Traits class which defines basic operations on multivectors.
This traits class tells xlifepp’s solvers how to perform multivector operations for the multivector type MV. These operations include creating copies or views, finding the number of rows or columns (i.e., vectors) in a given multivector, and computing inner products, norms, and vector sums. (xlifepp’s solvers use the OperatorTraits traits class to apply operators to multivectors.)
xlifepp gives users two different ways to tell its solvers how to compute with multivectors of a given type MV. The first and preferred way is for users to specialize MultiVecTraits, this traits class, for their given MV type. The second way is for users to make their multivector type (or a wrapper thereof) inherit from MultiVec. This works because xlifepp provides a specialization of MultiVecTraits for MultiVec. Specializing MultiVecTraits is more flexible because it does not require a multivector type to inherit from MultiVec; this is possible even if you do not have control over the interface of a class.
If you have a different multivector type MV that you would like to use with xlifepp, and if that type does not inherit from MultiVec, then you must implement a specialization of MultiVecTraits for MV. Otherwise, this traits class will report a compile-time error (relating to UndefinedMultiVecTraits). Specializing MultiVecTraits for your MV type is not hard.
- Template Parameters:
-
ScalarType – The type of the entries in the multivectors.
MV – The type of the multivectors themselves.
-
class NedelecEdgeFirstHexahedronPk : public xlifepp::NedelecEdgeHexahedron
-
#include <NedelecEdgeHexahedron.hpp>
Nedelec edge first family of any order k on tetrahedron t (NCE1k) space Vk: Q_(k-1,k,k) x Q_(k,k-1,k)x Q_(k,k,k-1), Q_(k,l,m) monomials of degree at most k in x1, of degree at most l in x2, of degree at most m in x3, 3k(k+1)^2 dofs edge dofs: v-> int_e v.t q, q in P_(k-1)[e] k dofs by edge e face dofs (k>1) : v-> int_f (v x n).q, q in Q_(k-2,k-1) x Q_(k-1,k-2) 2k(k-1) dofs by face hexahedron dofs (k>1) : v-> int_t v.q, q in Q_(k-1,k-2,k-2) x Q_(k-2,k-1,k-2)x Q_(k-2,k-2,k-1) 3k(k-1)^2 dofs.
-
class NedelecEdgeFirstQuadranglePk : public xlifepp::NedelecEdgeQuadrangle
-
#include <NedelecEdgeQuadrangle.hpp>
Nedelec edge first family of any order k on quadrangle Q (NEC1_k) space Vk: Q_(k-1,k) x Q_(k,k-1) with Q_(k,l) monomials of degree at most k in x1, of degree at most l in x2, 2k(k+1) dofs edge dofs: v-> int_e v.t q, q in P_(k-1)[e] k dofs by edge e quadrangle dofs (k>1): v-> int_t v.q, q in Q_(k-1,k-2) x Q_(k-2,k-1) 2k(k-1) dofs.
-
class NedelecEdgeFirstTetrahedronPk : public xlifepp::NedelecEdgeTetrahedron
-
#include <NedelecEdgeTetrahedron.hpp>
Nedelec edge first family of any order k on tetrahedron t (NE1k) space Vk : P^3_(k-1) + Sk with Sk={p in Phk^3, x.p=0}, Phk homogeneous polynomials of degree k, k(k+2)(k+3)/2 dofs edge dofs : v-> int_e v.t q, q in P_(k-1)[e] k dofs by edge e face dofs (k>1) : v-> int_f v.q, q in {P_(k-2)[f]^3, q.n=0} k(k-1) dofs by face tetrahedron dofs (k>2): v-> int_t v.q, q in P_(k-3)[t]^3 k(k-1)(k-2)/2 dofs.
-
class NedelecEdgeHexahedron : public xlifepp::RefHexahedron
-
#include <NedelecEdgeHexahedron.hpp>
(Hcurl-conforming edge elements )
Parent class: RefTriangle Child classes: NedelecEdgeFirstHexahedronPk, NedelecEdgeSecondHexahedronPk
Subclassed by xlifepp::NedelecEdgeFirstHexahedronPk, xlifepp::NedelecEdgeSecondHexahedronPk
-
class NedelecEdgeQuadrangle : public xlifepp::RefQuadrangle
-
#include <NedelecEdgeQuadrangle.hpp>
(Hcurl-conforming edge elements )
Parent class: RefTriangle Child classes: NedelecEdgeFirstQuadranglePk, NedelecEdgeSecondQuadranglePk
Subclassed by xlifepp::NedelecEdgeFirstQuadranglePk, xlifepp::NedelecEdgeSecondQuadranglePk
-
class NedelecEdgeSecondHexahedronPk : public xlifepp::NedelecEdgeHexahedron
-
Nedelec edge second family of any order k on tetrahedron t (NCE2k/AAEk) space Vk P^3_(k) (k+1)(k+2)(k+3)/2 dofs edge dofs: v-> int_e v.t q, q in P_(k)[e] k+1 dofs by edge e face dofs (k>1) : v-> int_f v.q, q in D_(k-1)[f] = P_(k-2)^2 + PH_(k-2)*x (k-1)(k+1) dofs by face hexahedron dofs (k>3) : v-> int_t v.q, q in D_(k-2)[t] = P_(k-3)^3 + PH_(k-3)*x (k-1)(k+1)(k-2)/2 dofs.
-
class NedelecEdgeSecondQuadranglePk : public xlifepp::NedelecEdgeQuadrangle
-
AVAILABLE Nedelec edge second family of any order k on quadrangle Q NEC2_k/BDMCE_k.
-
class NedelecEdgeSecondTetrahedronPk : public xlifepp::NedelecEdgeTetrahedron
-
#include <NedelecEdgeTetrahedron.hpp>
Nedelec edge second family of any order k on tetrahedron t (NE2k) space Vk P^3_(k) (k+1)(k+2)(k+3)/2 dofs edge dofs : v-> int_e v.t q, q in P_(k)[e] k+1 dofs by edge e face dofs (k>1) : v-> int_f v.q, q in D_(k-1)[f] = P_(k-2)^2 + PH_(k-2)*x (k-1)(k+1) dofs by face tetrahedron dofs (k>3): v-> int_t v.q, q in D_(k-2)[t] = P_(k-3)^3 + PH_(k-3)*x (k-1)(k+1)(k-2)/2 dofs.
“ NOT IMPLEMENTED
-
class NedelecEdgeTetrahedron : public xlifepp::RefTetrahedron
-
#include <NedelecEdgeTetrahedron.hpp>
(Hcurl-conforming edge elements )
Parent class : RefTriangle Child classes: NedelecEdgeFirstTetrahedronPk, NedelecEdgeSecondTetrahedronPk
Subclassed by xlifepp::NedelecEdgeFirstTetrahedronPk, xlifepp::NedelecEdgeSecondTetrahedronPk
-
class NedelecFaceFirstTetrahedronPk : public xlifepp::NedelecFaceTetrahedron
-
#include <NedelecFaceTetrahedron.hpp>
Nedelec face first family of any order k on tetrahedron t (NF1k) space Vk: P^3_(k-1) + PH_(k-1)*(x1,x2,x3), dim Vk = k(k+1)(k+3)/2 face dofs: v-> int_f v.n q, q in P_(k-1)[f] k(k+1)/2 dofs by face f terrahedron dofs: v-> int_t v.q, q in P_(k-2)[t]^3 k(k-1)(k+1)/2 dofs only for k>1.
-
class NedelecFaceSecondTetrahedronPk : public xlifepp::NedelecFaceTetrahedron
-
#include <NedelecFaceTetrahedron.hpp>
Nedelec face second family of any order k on tetrahedron t (NF2k) space Vk: P^3_(k) dim Vk = (k+1)(k+2)(k+3)/2 face dofs: v-> int_f v.n q, q in P_(k)[f] (k+1)(k+2)/2 dofs by face f tetrahedron dofs: v-> int_t v.q, q in R_(k-1)[t] (k-1)(k+1)(k+2)/2 dofs only for k > 1 where R_(k-1)[t] = P^3_(k-2) + S(k-1) S_(k-1)[t] = {p in PH_(k-1), x.p=0}.
-
class NedelecFaceTetrahedron : public xlifepp::RefTetrahedron
-
#include <NedelecFaceTetrahedron.hpp>
(Hdiv-conforming face elements )
Parent class: RefTriangle Child classes: NedelecFaceFirstTetrahedronPk, NedelecFaceSecondTetrahedronPk
Subclassed by xlifepp::NedelecFaceFirstTetrahedronPk, xlifepp::NedelecFaceSecondTetrahedronPk
-
class NedelecFirstTriangleP1 : public xlifepp::NedelecTriangle
-
#include <NedelecTriangle.hpp>
(first family)
-
class NedelecFirstTrianglePk : public xlifepp::NedelecTriangle
-
#include <NedelecTriangle.hpp>
Nedelec first family of any order k on triangle T (NT1k) space Vk: P^2_(k-1) + S_k, dim Vk = k(k+2) where S_k={p in PH_k; p.x=0}, PHk homogeneous polynomials of order k) edge dofs: v-> int_e v.t q, q in P_(k-1)[e] k dofs by edge e triangle dofs: v-> int_t v.q, q in P_(k-2)[t]^2 k(k-1) dofs only for k>1.
-
class NedelecSecondTrianglePk : public xlifepp::NedelecTriangle
-
#include <NedelecTriangle.hpp>
Nedelec second family of any order k on triangle T (NT2k) space Vk: P^2_(k) dim Vk = (k+1)(k+2) edge dofs: v-> int_e v.t q, q in P_(k)[e] k+1 dofs by edge e triangle dofs: v-> int_t v.q, q in D_(k-1)[t] k^2-1 dofs only for k>1 where D_(k-1)[t] = P^2_(k-2) + PH_(k-2)*x of dimension k^2-1.
-
class NedelecTriangle : public xlifepp::RefTriangle
-
#include <NedelecTriangle.hpp>
(Hcurl-conforming Edge elements)
Parent class: RefTriangle Child classes: NedelecFirstTriangleP1, NedelecFirstTrianglePk, NedelecSecondTrianglePk
Subclassed by xlifepp::NedelecFirstTriangleP1, xlifepp::NedelecFirstTrianglePk, xlifepp::NedelecSecondTrianglePk
-
template<class P>
struct NoCheck
-
#include <CheckingPolicy.hpp>
Implementation of the CheckingPolicy used by SmartPtr Well, it’s clear what it does :o)
-
template<class T>
class Node
-
#include <Node.hpp>
node of a tree
-
class NonCopyable
-
#include <Traits.hpp>
A base class to disable default copy ctor and copy assignement operator.
-
template<typename K>
struct NormImplement
-
#include <Traits.hpp>
Trait struct to determine value of a norm.
-
template<typename K>
struct NumTraits
-
#include <Traits.hpp>
Trait struct to determine the value type.
-
class Nurbs : public xlifepp::Spline
-
#include <spline.hpp>
Nurbs class implements non uniform rational Bspline for 3D surface it is built from BSpline’s in two parameter directions (u,v), may be seen as a cross product of two BSpline it inherits from Spline class but some Spline data are not used or replaced it may deal with approximation or interpolation subtype.
When not specified, use interpolation
-
template<class T>
class OdeSolver
-
Subclassed by xlifepp::EulerT< T >, xlifepp::Ode45T< T >, xlifepp::RK4T< T >
-
class Operand
-
#include <Operand.hpp>
to deal with syntax Value AlgebraicOperation
-
template<class ScalarType>
class Operator
-
#include <XlifeppOperator.hpp>
xlifepp’s templated virtual class for constructing an operator that can interface with the OperatorTraits class used by the eigensolvers.
A concrete implementation of this class is necessary. The user can create their own implementation if those supplied are not suitable for their needs.
Subclassed by xlifepp::LargeMatrixAdapter< MatrixType, ScalarType >, xlifepp::LargeMatrixAdapterInverse< MatrixType, ScalarType >, xlifepp::LargeMatrixAdapterInverseGeneralized< MatrixType, ScalarType >
-
class OperatorOnFunction
-
#include <OperatorOnFunction.hpp>
describes the operations to process on Function.
-
class OperatorOnKernel
-
#include <OperatorOnKernel.hpp>
describes the operations to process on kernel.
ker_p=0 means K(x,y)=1 !
-
class OperatorOnUnknown
-
#include <OperatorOnUnknown.hpp>
describes the operations to process on unknown.
Unknown may be scalar or vector
-
class OperatorOnUnknowns
-
#include <OperatorOnUnknowns.hpp>
describes a pair of xlifepp::OperatorOnUnknown linked by an algebraic operation.
it is a part of a bilinear form (see BilinearForm class)
-
template<class ScalarType, class MV, class OP>
class OperatorTraits
-
#include <XlifeppOperatorTraits.hpp>
Virtual base class which defines basic traits for the operator type.
An adapter for this traits class must exist for the
MV
andOP
types. If not, this class will produce a compile-time error.
-
template<class ScalarType, class MV>
class OrthoManager
-
#include <XlifeppOrthoManager.hpp>
xlifepp’s templated virtual class for providing routines for orthogonalization and orthonormalization of multivectors.
This class defines concepts of orthogonality through the definition of an inner product. It also provides computational routines for orthogonalization.
A concrete implementation of this class is necessary. The user can create their own implementation if those supplied are not suitable for their needs.
Subclassed by xlifepp::MatOrthoManager< ScalarType, MV, OP >
-
template<class ScalarType>
class OutputManager
-
#include <XlifeppOutputManager.hpp>
Output managers remove the need for the eigensolver to know any information about the required output.
Calling isVerbosity(MsgEigenType type) informs the solver if it is supposed to output the information corresponding to the message type.
Subclassed by xlifepp::BasicOutputManager< ScalarType >
-
class Parallelepiped : public xlifepp::Hexahedron
-
#include <geometries3D.hpp>
definition of a parallelepiped geometry in R^3
Parallelepiped constructors are based on a key-value system. Here are the available keys:
_v1, _v2, _v3, _v4, _v5, _v6, _v7, _v8: to define the vertices of the Parallelepiped (_v3, _v6, _v7, _v8 are optional)
_nnodes: to define the number of nodes on each edge of the Parallelepiped
_hsteps: to define the local mesh steps on the vertices of the Parallelepiped
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
Subclassed by xlifepp::Cuboid
-
class Parallelogram : public xlifepp::Quadrangle
-
#include <geometries2D.hpp>
definition of a parallelogram geometry in R^3
Parallelogram constructors are based on a key-value system. Here are the available keys:
_v1, _v2, _v3, _v4: to define the vertices of the Parallelogram, counterclockwise oriented (_v3 is optional)
_nnodes: to define the number of nodes on each edge of the Parallelogram
_hsteps: to define the local mesh steps on the vertices of the Parallelogram
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
Subclassed by xlifepp::Rectangle
-
class Parameter
-
#include <Parameters.hpp>
encapsulates any scalar value of type int, real_t, complex_t, string_t or const void*.
main standard algebric operations are supported for parameter of numerical type
const void* allows to store anything; it is designed for advanced users because void pointers are unsafe particular pointers are managed by class: std::vector<real_t>* to store some reals std::vector<complex_t>* to store some complexes std::vector<int_t>* to store some integers std::vector<string_t>* to store some strings Matrix<real_t>* to store a real matrix Matrix<complex_t>* to store a complex matrix Point* to store a point std::vector<Point>* to store some points
-
class Parameters
-
#include <Parameters.hpp>
encapsulates a list of Parameter’s.
creation:
Parameter height=3; Parameters data; data << height << Parameter(4,"width") << "case 1" << 1.5;
string_t “case 1” has default name “parameter3” real_t “1.5” has default name “parameter4”
usage:
Parameter a=data("height"); // access by name, contains height Parameter c=data(4); // access by rank, contains 1.5 data(1)= 2; // replace the value 3 by 2 data("height")=2; // same effect data(height)=2; // same effect, caution here as object height is hereafter modified double x=data(4); // x contains 1.5 x=data("width"); // x contains 4
No deletion of list element is possible No algebraic operations are performed on Parameters Automatic parameter naming is a crutch for tired users, it is advised that the user manages names of parameters:
Parameter height=3; Parameter width=4; Parameter wavenumber=1.5; Parameter comment="case 1"; Parameters data; data << height << width << wavenumber << comment;
-
template<typename K>
struct ParameterTrait
-
#include <Parameters.hpp>
extern main numerical function, automatic cast (not defined for string_t arg !)
- Template Parameters:
-
K – type to work with Trait to process parameter list
-
class Parametrization
-
Subclassed by xlifepp::PiecewiseParametrization
-
class ParametrizedArc : public xlifepp::Curve
-
#include <geometries1D.hpp>
definition of a ParametrizedArc geometry in R^3 : x1(t), x2(t), x3(t) if an additional linear transformation T is applied to: T(x1(t),x2(t),x3(t)) = A(x1(t),x2(t),x3(t)) + b where a=T.mat() and b=T.vec()
ParametrizedArc constructors are based on a key-value system. Here are the available keys:
_tmin, _tmax: reals defining bounds of parameter t in parametrization
_parametrization: parametrization object is handled by Geometry
_partitioning: type of partition, one of _nonePartition*, _linearPartition, _splinePartition
_nbparts: number of partitions
_nnodes: to define the number of nodes on the Segment
_hsteps: to define the local mesh steps on the bounds of a Segment
_domain_name: to define the domain name
_side_names: to define the side names
-
_varnames: to define the variable names for print purpose
built at construction p1_,p2_, p_: bounds node and nodes As gmsh does not support parametrized curve, when exported to GMSH, ParametrizedArc is split into nbparts_
smaller segments (linearPartition)
smaller splines (_splinePartition) Be caution, the parameter t should be taken in the interval [0,1] when using the function parametrization_ParametrizedArc whereas it should be taken in [tmin,tmax] when using the object arc_parametrization
-
class ParametrizedGeodesic : public xlifepp::Geodesic
-
#include <Geodesic.hpp>
ParametrizedGeodesic class handling any geodesic got using surface parametrization require a GeomDomain or a Geometry or a Parametrization in any case, it constructs geodesic using a RK4 scheme to solve the geodesic EDO dt(x(t),y(t))=F(x(t),y(t)) x(t)=x0, y(t)=y(0) F function (involving Cristoffel symbols) is based on a Parametrization When the Parametrization is a PiecewiseParametrization, the computation is done using an iterative process to go from one parametrization to the other.
-
class ParametrizedSurface : public xlifepp::Surface
-
#include <geometries2D.hpp>
definition of a ParametrizedSurface geometry in R^3 : x1(u,v), x2(u,v), x3(u,v) As gmsh does not support parametrized surface, to be exported, ParametrizedSurface can be split into _nbparts parts
smaller quadrangles or triangles (_linearPartition)
smaller nurbs (_splinePartition) NOT YET AVAILABLE
ParametrizedSurface constructors are based on a key-value system. Here are the available keys:
_parametrization: parametrization object is handled by Geometry
_partitioning: type of partition, one of _nonePartition*, _linearPartition, _splinePartition
_nbparts: number of partitions
_nnodes: to define the number of nodes on the bound edges
_hsteps: to define the local mesh steps on the bounds nodes
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
class PartitionData
-
#include <GeomDomain.hpp>
to store general information of geometric domain
-
template<typename T>
class PCollection : public std::vector<T*>
-
#include <Collection.hpp>
a simple interface to std::vector<T*> hide pointers, add the insertion operator <<, the constructors from enumerating items and access to items using operator ()
Be cautious when using it because pointers are shared (no copy). For instance, if you plan to create a list of T with a loop, do the following
PCollection<T> ts(10); for(int i=0;i<10;++i) ts[i] = new T(…); and clear the T pointers using: ts.clearPointers();
to access to item as const reference you can use either ts(i+1) (same as *ts[i])
-
template<typename T>
class PCollectionItem
-
#include <Collection.hpp>
utility class for xlifepp::PCollection class to access to an item of a collection of pointers
-
class PhysicalData
-
#include <saveToGeo.hpp>
store data related to a physical group: domain name, domain id and dimension
-
class PiecewiseParametrization : public xlifepp::Parametrization
-
#include <Parametrization.hpp>
PiecewiseParametrization class handles a global parametrization of multiple patches: basically a list of standard parametrizations Main data members: map<Parametrization*, vector<pair<Parametrization*,number_t> > > neighborParsMap: map Parametrization* -> neighbor Parametrizations vector vector<Point> vertices: list of all vertices of parametrizations (stored once) map<Parametrization*, vector<number_t> > vertexIndexes: map Parametrization* -> vertex numbers with parameters correspondance index: u=0->1, u=1->2, v=0->3, v=1->4, w=0->5, w=1->6 the neighbor parametrization and vertexIndexes vector are stored according to the parameters correspondance.
EXPERIMENTAL: global C0 parametrization, additional structures Vector <number_t> ns: the numbers n1, n2, n3 map<Triplet, pair<Parametrization*, Transformation*>>> parsMap: map (i,j,k) -> (Parametrization*, Transformation*) (i=1,n1, ,j=1,n2, k=1,n3) map<Parametrization*, Triplet> parsRMap: reverse map Parametrization* -> i,j,k u in [0,1] if curve, (u,v) in [0,1]x[0,1] if surface, (u,v,w) in [0,1]x[0,1]x[0,1] if volume u-interval [0,1] is split in n1 parts [0,1/n1],[1/n1,2/n1], … [(n1-1)/n1,1] defined if curve v-interval [0,1] is split in n2 parts [0,1/n2],[1/n2,2/n2], … [(n2-1)/n2,1] defined if surface w-interval [0,1] is split in n3 parts [0,1/n3],[1/n3,2/n3], … [(n3-1)/n3,1] defined if volume if defines n1 x n2 x n3 cells (Cijk)on which may be attached a parametrization Pijk or not and a tranfer fuction that maps (u,v,w) -> Tijk(n1*u-i+1, n2*v-j+1, n3*w-k+1) in [0,1]x[0,1]x[0,1] where T: [0,1]x[0,1]x[0,1] -> [0,1]x[0,1]x[0,1] is a linear transformation that maps parameters of Pijk the global parametrization may be discontinuous at interfaces except if the algorithm build continous parametrization by matching parameters on interfaces Note: Parametrization* involved here are shared pointers (no clone), null Transformation pointer means no transformation (say id) transformation pointers should be deleted as they are built on memory stack
-
struct PlyElement
-
Definition of an Element according to PLY format.
-
struct PlyProperty
-
Definition of a Property according to PLY format.
-
class Point : public std::vector<real_t>
-
#include <Point.hpp>
holds point coordinates in any dimension
Class Point to hide vector<real_t> class to users (see e.g. Function) and holds point coordinates in any dimension. It is implemented as a child class to stl vector<real_t> and thus inherits of all member functions and algorithms of stl class ‘vector’.
-
template<typename T>
class PointerF
-
#include <Function.hpp>
Fake templated class to select right pointer function along point or vector<point> input argument.
-
class PointReflection : public xlifepp::Homothety
-
#include <Transformation.hpp>
representation of a point symmetry it is an homothety of factor -1.
-
class PointsDomain : public xlifepp::GeomDomain
-
#include <GeomDomain.hpp>
class handles a list of points (cloud)
-
class Polygon : public xlifepp::Surface
-
#include <geometries2D.hpp>
definition of a polygonal geometry in R^3
Polygon constructors are based on a key-value system. Here are the available keys:
_vertices: the vertices defining the polygon, oriented along the boundary (clockwise or counterclockwise)
_nnodes: to define the number of nodes on each edge of the Polygon
_hsteps: to define the local mesh steps on the vertices of the Polygon
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
Subclassed by xlifepp::Quadrangle, xlifepp::Triangle
-
class Polyhedron : public xlifepp::Volume
-
#include <geometries3D.hpp>
definition of a polyhedral geometry in R^3 Generally, a polyhedron is a list of polygonal faces.
But data is storages differently to avoid pointer manipulation So, we decide to store:
the list of vertices -> Vector<Point> p_
the definition of faces as a list of points -> Vector<Vector<number_t> > faces_ it is so that p_[faces_[i][j]] is the j-st vertex of the i-st face of the polyhedron
the number of nodes on each edge -> Vector<Vector<number_t> > n_ it is so that n_[i][j] is the number of nodes on j-st edge [ p_[faces_[i][j]] p_[faces_[i][j+1]] ] of the i-st face of the polyhedron
Polyhedron constructors are based on a key-value system. Here are the available keys:
_faces: the geometrical faces defining the Polyhedron
_nnodes: to define the number of nodes on each edge of the Polyhedron
_hsteps: to define the local mesh steps on the vertices of the Polyhedron
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
Subclassed by xlifepp::Hexahedron, xlifepp::Tetrahedron
-
template<typename K = real_t>
class PolyNodeT
-
#include <polynomials.hpp>
deals with a tree representation of Polynomials
-
template<typename K = real_t>
class PolynomialBasisT : public std::list<PolynomialT<real_t>>
-
#include <polynomials.hpp>
deals with a set of Polynomials
-
class PolynomialIM : public xlifepp::SingleIM
-
#include <IntegrationMethod.hpp>
integral over a geometric element using analytic formula for polynomial integrand
-
template<typename K = real_t>
class PolynomialsBasisT : public std::list<std::vector<PolynomialT<real_t>>>
-
#include <polynomials.hpp>
deals with a set of vectors of Polynomials
-
template<typename K = real_t>
class PolynomialT
-
#include <polynomials.hpp>
deals with a Polynomial, say a linear combination of Monomials
-
class Preconditioner
-
#include <Preconditioner.hpp>
Define the preconditioner for linear systems.
This is a main class that users can derive to deal with preconditioning by operators. In most of the cases, users will use xlifepp::PreconditionerTerm when it is a preconditioning with TermMatrix/TermVector level (or MatrixEntry/VectorEntry)
Subclassed by xlifepp::PreconditionerTerm
-
class PreconditionerTerm : public xlifepp::Preconditioner
-
#include <PreconditionerTerm.hpp>
Define the preconditioner for linear systems.
This is a main class that users can derive to deal with preconditioning by operators. In most of the cases, users will use xlifepp::PreconditionerTerm when it is a preconditioning with TermMatrix/TermVector level (or MatrixEntry/VectorEntry)
-
class PrintStream
-
#include <PrintStream.hpp>
PrintSream class encapsulates multiple std::ofstream objects allowing to print result of threads on different ofstream it there is only one thread available, print as usual in a single file.
Construct such object from one name file, e.g print.txt then the following file will be created print.txt for thread 0 or no multithreading print1.txt for thread 1 print2.txt for thread 2 …
PrintSream inherits from std::ostream and can be used as ordinary stream, for instance PrintStream thePrintStream(“print.txt”); thePrintStream << “toto “<<i<<…
-
class Prism : public xlifepp::Cylinder
-
#include <geometries3D.hpp>
definition of a prismatic geometry in R^3
Prism constructors are based on a key-value system. Here are the available keys:
_basis: to define the geometrical basis of a Prism (a child object of Polygon)
_direction: a direction vector of the axis of the Cylinder
_v1, _v2, _v3: to define vertices of the basis when it is triangular
_nnodes: to define the number of nodes on the edges of the Prism
_hsteps: to define the local mesh steps on build points of the Prism
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
class ProdSpace : public xlifepp::Space
-
#include <ProdSpace.hpp>
defines data related to a product of spaces this class may be useful when interpolations along the components are differents when they are all the same, use standard space definitions NOT USED, for future
-
class ProductIM : public xlifepp::DoubleIM
-
#include <IntegrationMethod.hpp>
product of single integration methods
-
class Projector
-
#include <Projector.hpp>
end user class handling projection from a space V to a space W
-
template<class T>
struct PropagateConst
-
#include <ConstantPolicy.hpp>
Propagate constness of pointed or referred object.
-
class Pyramid : public xlifepp::Cone
-
#include <geometries3D.hpp>
definition of a pyramidal geometry in R^3
Pyramid constructors are based on a key-value system. Here are the available keys:
_basis: to define the geometrical basis of a Pyramid (a child object of Polygon)
_apex: the apex of the Pyramid
_v1, _v2, _v3, _v4: to define vertices of the basis when it is quadrangular
_nnodes: to define the number of nodes on the edges of the Pyramid
_hsteps: to define the local mesh steps on build points of the Pyramid
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
class QmrSolver : public xlifepp::IterativeSolver
-
#include <QmrSolver.hpp>
Implement Quasi-Minimal Residual algorithm.
-
class Quadrangle : public xlifepp::Polygon
-
#include <geometries2D.hpp>
definition of a quadrangular geometry in R^3
Quadrangle constructors are based on a key-value system. Here are the available keys:
_v1, _v2, _v3, _v4: to define the vertices of the Quadrangle, counterclockwise oriented
_nnodes: to define the number of nodes on each edge of the Quadrangle
_hsteps: to define the local mesh steps on the vertices of the Quadrangle
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
Subclassed by xlifepp::Parallelogram
-
class Quadrature
-
#include <Quadrature.hpp>
Quadrature defines the quadrature rule in Finite Element Method.
-
class QuadratureIM : public xlifepp::SingleIM
-
#include <IntegrationMethod.hpp>
class devoted to integral over a geometric element may be dealt with different shapes
-
class QuadratureRule
-
#include <QuadratureRule.hpp>
represents a quadrature formula points and weights
-
class RaviartThomasStdTriangleP1 : public xlifepp::RaviartThomasTriangle
-
Subclassed by xlifepp::BuffaChristiansenRT
-
class RaviartThomasStdTrianglePk : public xlifepp::RaviartThomasTriangle
-
#include <RaviartThomasTriangle.hpp>
Raviart-Thomas element of any order k on triangle T (RTtk, also known as Rao-Wilton-Glisson element) space Vk: P^2_(k-1) + PH_(k-1)*(x1,x2), dim Vk = k(k+2) (PHk homogeneous polynomials of order k), edge dofs: v-> int_e v.n q, q in P_(k-1)[e] k dofs by edge e triangle dofs: v-> int_t v.q, q in P_(k-2)[t]^2 k(k-1) dofs only for k>1.
-
class RaviartThomasTriangle : public xlifepp::RefTriangle
-
#include <RaviartThomasTriangle.hpp>
(Hdiv-conforming Edge elements)
Parent class: RefTriangle Child classes: RaviartThomasStdTriangleP1
Subclassed by xlifepp::RaviartThomasStdTriangleP1, xlifepp::RaviartThomasStdTrianglePk
-
template<typename _MatrixType>
class RealEigenSolver
-
#include <RealEigenSolver.hpp>
Computes eigenvalues and eigenvectors of general matrices.
The eigenvalues and eigenvectors of a matrix \( A \) are scalars \( \lambda \) and vectors \( v \) such that \( Av = \lambda v \). If \( D \) is a diagonal matrix with the eigenvalues on the diagonal, and \( V \) is a matrix with the eigenvectors as its columns, then \( A V = V D \). The matrix \( V \) is almost always invertible, in which case we have \( A = V D V^{-1} \). This is called the eigendecomposition.
The eigenvalues and eigenvectors of a matrix may be complex, even when the matrix is real. However, we can choose real matrices \( V \) and \( D \) satisfying \( A V = V D \), just like the eigendecomposition, if the matrix \( D \) is not required to be diagonal, but if it is allowed to have blocks of the form
\[\begin{split} \left(\begin{array}{cc} u & v \\ -v & u \end{array}\right) \end{split}\](where \( u \) and \( v \) are real numbers) on the diagonal. These blocks correspond to complex eigenvalue pairs \( u \pm iv \). We call this variant of the eigendecomposition the pseudo-eigendecomposition.Call the function compute() to compute the eigenvalues and eigenvectors of a given matrix. Alternatively, you can use the RealEigenSolver(const MatrixType&, bool) constructor which computes the eigenvalues and eigenvectors at construction time. Once the eigenvalue and eigenvectors are computed, they can be retrieved with the eigenvalues() and eigenvectors() functions. The pseudoEigenvalueMatrix() and pseudoEigenvectors() methods allow the construction of the pseudo-eigendecomposition.
The documentation for RealEigenSolver(const MatrixType&, bool) contains an example of the typical use of this class.
See also
MatrixBase::eigenvalues(), class ComplexEigenSolver, class SelfAdjointEigenSolver
- Template Parameters:
-
_MatrixType – the type of the matrix of which we are computing the eigendecomposition; this is expected to be an instantiation of the Matrix class template. Currently, only real matrices are supported.
Note
The implementation is adapted from JAMA (public domain). Their code is based on EISPACK.
-
template<typename _MatrixType>
class RealSchur
-
#include <RealSchur.hpp>
Performs a real Schur decomposition of a square matrix.
Given a real square matrix A, this class computes the real Schur decomposition: \( A = U T U^T \) where U is a real orthogonal matrix and T is a real quasi-triangular matrix. An orthogonal matrix is a matrix whose inverse is equal to its transpose, \( U^{-1} = U^T \). A quasi-triangular matrix is a block-triangular matrix whose diagonal consists of 1-by-1 blocks and 2-by-2 blocks with complex eigenvalues. The eigenvalues of the blocks on the diagonal of T are the same as the eigenvalues of the matrix A, and thus the real Schur decomposition is used in EigenSolver to compute the eigendecomposition of a matrix.
Call the function compute() to compute the real Schur decomposition of a given matrix. Alternatively, you can use the RealSchur(const MatrixType&, bool) constructor which computes the real Schur decomposition at construction time. Once the decomposition is computed, you can use the matrixU() and matrixT() functions to retrieve the matrices U and T in the decomposition.
- Template Parameters:
-
_MatrixType – the type of the matrix of which we are computing the real Schur decomposition; this is expected to be an instantiation of the Matrix class template.
Note
The implementation is adapted from JAMA (public domain). Their code is based on EISPACK.
-
class Rectangle : public xlifepp::Parallelogram
-
#include <geometries2D.hpp>
definition of a rectangular geometry in R^3
Rectangle constructors are based on a key-value system. Here are the available keys:
_v1, _v2, _v4: to define the vertices of the Rectangle, counterclockwise oriented
_center: to define the center of the Rectangle
_origin: to define the first vertex of the Rectangle (same definition as _v1)
_xlength, _ylength: the lengths of the Rectangle
_xmin, _xmax, _ymin, _ymax: to define the Rectangle v1=(xmin, ymin), v2=(xmax, ymin), v4=(xmin, ymax)
_nnodes: to define the number of nodes on each edge of the Rectangle
_hsteps: to define the local mesh steps on the vertices of the Rectangle
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
Subclassed by xlifepp::SquareGeo
-
class ReductionMethod
-
#include <ReductionMethod.hpp>
handling constraints reduction method information when dealing with essential conditions (constraints), several methods are available
pseudo reduction
full reduction
penalization
duality (not yet available)
pseudo-reduction is the full reduction method where eliminated row are replaced by the constraints matrix C: | beta*I + alpha*C | eliminated rows Ap= | | | 0 Ae | default is alpha=1 and beta=0, good choice when solving a problem choose alpha=0 and beta!=0 when dealing with eigenvalue problem
-
template<class P>
class RefCounted
-
#include <OwnershipPolicy.hpp>
Implementation of the OwnershipPolicy used by SmartPtr Provides a classic external reference counting implementation.
-
class RefDof
-
#include <RefDof.hpp>
A RefDof object represents a generalized Degree of Freedom in a reference element.
-
class RefElement
-
#include <RefElement.hpp>
A RefElement object represents the standard FE reference element.
Subclassed by xlifepp::RefHexahedron, xlifepp::RefPoint, xlifepp::RefPrism, xlifepp::RefPyramid, xlifepp::RefQuadrangle, xlifepp::RefSegment, xlifepp::RefTetrahedron, xlifepp::RefTriangle
-
class RefHexahedron : public xlifepp::RefElement
-
#include <RefHexahedron.hpp>
Parent class: RefElement Child class: LagrangeHexahedron.
Subclassed by xlifepp::LagrangeHexahedron, xlifepp::NedelecEdgeHexahedron
-
class Reflection2d : public xlifepp::Transformation
-
#include <Transformation.hpp>
representation of a reflection
-
class Reflection3d : public xlifepp::Transformation
-
#include <Transformation.hpp>
representation of a reflection on a plane
-
class RefPoint : public xlifepp::RefElement
-
#include <RefPoint.hpp>
Parent class: RefElement.
-
class RefPrism : public xlifepp::RefElement
-
#include <RefPrism.hpp>
Parent class : RefElement Child classes: LagrangePrism.
Subclassed by xlifepp::LagrangePrism
-
class RefPyramid : public xlifepp::RefElement
-
#include <RefPyramid.hpp>
Parent class: RefElement Child classes: LagrangePyramid.
Subclassed by xlifepp::LagrangePyramid
-
class RefQuadrangle : public xlifepp::RefElement
-
#include <RefQuadrangle.hpp>
Parent class: RefElement Child classes: LagrangeQuadrangle.
Subclassed by xlifepp::LagrangeQuadrangle, xlifepp::NedelecEdgeQuadrangle
-
class RefSegment : public xlifepp::RefElement
-
#include <RefSegment.hpp>
Parent class: RefElement Child classes: LagrangeSegment, HermiteSegment.
Subclassed by xlifepp::HermiteSegment, xlifepp::LagrangeSegment
-
class RefTetrahedron : public xlifepp::RefElement
-
#include <RefTetrahedron.hpp>
child to class RefElement
Parent class: RefElement Child classes: LagrangeTetrahedron
Subclassed by xlifepp::CrouzeixRaviartTetrahedron, xlifepp::LagrangeTetrahedron, xlifepp::NedelecEdgeTetrahedron, xlifepp::NedelecFaceTetrahedron
-
template<class T>
class RefToValue
-
#include <RefToValue.hpp>
Transports a reference as a value Serves to implement the Colvin/Gibbons trick for SmartPtr/ScopeGuard.
-
class RefTriangle : public xlifepp::RefElement
-
#include <RefTriangle.hpp>
Parent class: RefElement Child classes: LagrangeTriangle HermiteTriangle CrouzeixRaviartTriangle NedelecTriangle RaviartThomasTriangle.
Subclassed by xlifepp::ArgyrisTriangle, xlifepp::CrouzeixRaviartTriangle, xlifepp::HermiteTriangle, xlifepp::LagrangeTriangle, xlifepp::MorleyTriangle, xlifepp::NedelecTriangle, xlifepp::RaviartThomasTriangle
-
template<typename T>
struct RemoveAll
-
template<class T>
struct RemoveConst
-
template<typename T>
struct RemovePointer
-
template<typename T>
struct RemoveReference
-
class RevCone : public xlifepp::RevTrunk
-
#include <geometries3D.hpp>
A truncated cone of revolution is defined by its axis (P1,P2) and two radii R1 and R2.
R1 (resp. R2) is the radius of the circle lying in the plane orthogonal to (P1,P2) passing by P1 (resp. P2). R1 (or R2) can be 0, in which case we get a cone of revolution. See more details at RevTrunk.
RevCone constructors are based on a key-value system. Here are the available keys:
_center: to define the center of the basis
_apex: the apex of the RevCone
_radius: the radius of the basis
_end_shape: the shape of extension part on the end of the RevCone
_end_distance: the length of extension part on the end of the RevCone
_nbsubdomains: the number of slices of the RevCone (subdivision mesh generator only)
_type: indicator to fit curved boundaries (default) or not which gives flat (or plane) boundaries
_nnodes: to define the number of nodes on the edges of the RevCone
_hsteps: to define the local mesh steps on build points of the RevCone
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
class RevCylinder : public xlifepp::RevTrunk
-
#include <geometries3D.hpp>
A cylinder of revolution is defined by its axis (P1,P2) and the radius of any circle obtained by intersection with a plane orthogonal to (P1,P2).
See more details at RevTrunk.
RevCylinder constructors are based on a key-value system. Here are the available keys:
_center1, _center2: to define centers of bases when they are elliptical
_radius: the radius of the bases
_end1_shape, _end2_shape: the shape of extension parts on both ends of the RevCylinder
_end1_distance, _end2_distance: the lengths of extension parts on both ends of the RevCylinder
_nbsubdomains: the number of slices of the RevCylinder (subdivision mesg generator only)
_type: indicator to fit curved boundaries (default) or not which gives flat (or plane) boundaries
_nnodes: to define the number of nodes on the edges of the RevCylinder
_hsteps: to define the local mesh steps on build points of the RevCylinder
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
class RevTrunk : public xlifepp::Trunk
-
#include <geometries3D.hpp>
A object of revolution is defined by its axis (P1,P2) and the radii of two circles obtained by intersection with a plane orthogonal to (P1,P2).
The object is delimited by the two planes, orthogonal to (P1,P2), passing by P1 and P2, and this is the default end shape of the object when it is meshed with volumic elements (gesFlat or equivalently in this case, gesNone). When the elements are surfacic, the default is to leave the ends empty (gesNone).
Moreover, on both ends of this object, one can add part of a cone (gesCone), an ellipsoid (gesEllipsoid) or a sphere (gesSphere), connected to the boundary circle of the object. Let us consider the boundary circle whose center is P1. The apex of the cone or the ellipsoid is assumed to lie on the line (P1,P2) at a given distance distance1_ from P1. This distance is irrelevant in the case of the sphere. The same apply on the other end of the object. When the elements are surfacic, one can additonnaly chose a flat “lid” (gesFlat) ; the distance argument is then also irrelevant in this case.
RevTrunk constructors are based on a key-value system. Here are the available keys:
_center1, _center2: to define centers of bases when they are elliptical
_radius1, _radius2: the radii of the bases
_end1_shape, _end2_shape: the shape of extension parts on both ends of the RevTrunk
_end1_distance, _end2_distance: the lengths of extension parts on both ends of the RevTrunk
_nbsubdomains: the number of slices of the RevTrunk (subdivision mesg generator only)
_type: indicator to fit curved boundaries (default) or not which gives flat (or plane) boundaries
_nnodes: to define the number of nodes on the edges of the RevTrunk
_hsteps: to define the local mesh steps on build points of the RevTrunk
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
Subclassed by xlifepp::RevCone, xlifepp::RevCylinder
-
class Rotation2d : public xlifepp::Transformation
-
#include <Transformation.hpp>
representation of a rotation from a point and an angle
-
class Rotation3d : public xlifepp::Transformation
-
#include <Transformation.hpp>
representation of a rotation from an axis ( a point and a vector ) and an angle
-
class RowDenseStorage : public xlifepp::DenseStorage
-
#include <RowDenseStorage.hpp>
handles dense storage of matrix stored row by row
-
class SauterSchwabIM : public xlifepp::DoubleIM
-
#include <SauterSchwabIM.hpp>
integral over a product of geometric elements with singularity using Sauter-Schwab technique (for elements that shared vertices) Stefan A.
Sauter, Christoph Schwab, “Boundary Element Methods”, Springer, 2010
-
class SauterSchwabSymIM : public xlifepp::DoubleIM
-
#include <SauterSchwabSymIM.hpp>
integral over a product of geometric elements with singularity using Sauter-Schwab technique (for elements that shared vertices) Stefan A.
Sauter, Christoph Schwab, “Boundary Element Methods”, Springer, 2010
-
class Scaling : public xlifepp::Transformation
-
#include <Transformation.hpp>
representation of a scaling from a center and a scaling factor vector
Subclassed by xlifepp::Homothety
-
class SegElt
-
#include <Geodesic.hpp>
EltSeg class handles a segment separating a geometric element gelt1 in 2 parts (interior segment) or separating element gelt1 and gelt2 (edge) P1_,P2_ : vertices of segment gelt1_, gelt2_ : pointers to the geometric elements concerned (gelt2=0 if interior ssegment) s1_,s2_ : side numbers where P1 (resp.
P2) belongs to or side numbers of edge
-
class Segment : public xlifepp::Curve
-
#include <geometries1D.hpp>
definition of a segment geometry in R^3
Segment constructors are based on a key-value system. Here are the available keys:
_xmin, _xmax: to define a Segment along the x axis
_v1, _v2: to define a Segment from its bounds
_nnodes: to define the number of nodes on the Segment
_hsteps: to define the local mesh steps on the bounds of a Segment
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
template<typename _MatrixType>
class SelfAdjointEigenSolver
-
#include <SelfAdjointEigenSolver.hpp>
Computes eigenvalues and eigenvectors of selfadjoint matrices.
A matrix \( A \) is selfadjoint if it equals its adjoint. For real matrices, this means that the matrix is symmetric: it equals its transpose. This class computes the eigenvalues and eigenvectors of a selfadjoint matrix. These are the scalars \( \lambda \) and vectors \( v \) such that \( Av = \lambda v \). The eigenvalues of a selfadjoint matrix are always real. If \( D \) is a diagonal matrix with the eigenvalues on the diagonal, and \( V \) is a matrix with the eigenvectors as its columns, then \( A = V D V^{-1} \) (for selfadjoint matrices, the matrix \( V \) is always invertible). This is called the eigendecomposition.
The algorithm exploits the fact that the matrix is selfadjoint, making it faster and more accurate than the general purpose eigenvalue algorithms implemented in RealEigenSolver.
Only the lower triangular part of the input matrix is referenced.
Call the function compute() to compute the eigenvalues and eigenvectors of a given matrix. Alternatively, you can use the SelfAdjointEigenSolver(const MatrixType&, int) constructor which computes the eigenvalues and eigenvectors at construction time. Once the eigenvalue and eigenvectors are computed, they can be retrieved with the eigenvalues() and eigenvectors() functions.
To solve the generalized eigenvalue problem \( Av = \lambda Bv \) and the likes, see the class GeneralizedSelfAdjointEigenSolver.
See also
MatrixBase::eigenvalues(), class EigenSolver
- Template Parameters:
-
_MatrixType – the type of the matrix of which we are computing the eigendecomposition; this is expected to be an instantiation of the Matrix class template.
Subclassed by xlifepp::GeneralizedSelfAdjointEigenSolver< _MatrixType >
-
class SetOfConstraints : public std::map<const Unknown*, Constraints*>
-
#include <Constraints.hpp>
class handles a set of Constraints indexed by Unknown pointer
a zero Unknown pointer means a global constraints: coupling unknowns constraints in that case, there is only one global constraints system in SetOfConstraints if not the case, to each non zero Unknown pointer is associated a constraints system
Note : SetOfConstraints is constructed from EssentialConditions (also stored) and it is deep copied to Term so it is not shared except the virtual dual space/unknown that are not duplicated
-
class SetOfElems : public xlifepp::Geometry
-
#include <geometries2D.hpp>
This class defines an initial mesh from a list of points (pts), a list of elements (elems) and a list of boundaries (bounds).
Each element is defined by N numbers corresponding to the rank of its N vertices in the vector pts ; the numbers start from 1. Thus, elems[k][i] is the number of the vertex (i+1) of the element number (k+1) (if the elements are numbered starting from 1), and 1 <= elems[k][i] <= pts.size(). The boundaries of the polygonal domain defined by the elements are also defined by point numbers with the same convention. Each boundary is defined by the list of numbers of the points they belong to, given in any order. The last argument nbsubdiv is the number of subdivisions wanted. The initial mesh corresponds to nbsubdiv=0. -> Important: the subdivision algorithm generate a new point on each edge of the mesh. It belongs to boundary B if the two end points of the edge belong to the boundary B ; it is an internal point otherwise. Owing to this rule, in order to get a correct result, care must be taken in the definition of the boundaries since too few boundaries may lead to get boundary points that are in fact inside the domain. For instance, subdividing one single triangle leads to mandatory define its three edges as boundaries.
-
class SetOfPoints : public xlifepp::Geometry
-
#include <geometries1D.hpp>
This class defines a set of points.
The points are implicitly ordered according to their position in the vector. This allows the definition of a polygonal line made of successive segments from arbitrary points in 1D, 2D or 3D.
-
class ShapeValues
-
class SingleIM : public xlifepp::IntegrationMethod
-
#include <IntegrationMethod.hpp>
abstract class for integration method of single integral over E
Subclassed by xlifepp::FilonIMT< complex_t >, xlifepp::FilonIMT< T >, xlifepp::LenoirSalles2dIR, xlifepp::LenoirSalles3dIR, xlifepp::PolynomialIM, xlifepp::QuadratureIM
-
class SkylineStorage : public xlifepp::MatrixStorage
-
#include <SkylineStorage.hpp>
abstract base class of all skyline storage classes
Subclassed by xlifepp::DualSkylineStorage, xlifepp::SymSkylineStorage
-
template<typename T, template<class> class OwnershipPolicy, class ConversionPolicy, template<class> class CheckingPolicy, template<class> class StoragePolicy, template<class> class ConstnessPolicy>
class SmartPtr : public StoragePolicy<T>, public OwnershipPolicy<StoragePolicy<T>::InitPointerType>, public CheckingPolicy<StoragePolicy<T>::StoredType>, public ConversionPolicy
-
#include <SmartPtr.hpp>
Smart pointers are objects which store pointers to dynamically allocated (heap) objects.
They behave much like built-in C++ pointers except that they automatically delete the object pointed to at the appropriate time. Conceptually, smart pointers are seen as owning the object pointed to, and thus responsible for deletion of the object when it is no longer needed.
Note
The implementation is adapted from Modern C++ Design: Generic Programming and Design Patterns Applied
-
template<typename T, template<class> class OwnershipPolicy = RefCounted, class ConversionPolicy = DisallowConversion, template<class> class CheckingPolicy = NoCheck, template<class> class StoragePolicy = DefaultSPStorage, template<class> class ConstnessPolicy = DontPropagateConst>
struct SmartPtrDef
-
#include <SmartPtr.hpp>
this class added to unify the usage of SmartPtr.
instead of writing SmartPtr<T,OP,CP,KP,SP> write SmartPtrDef<T,OP,CP,KP,SP>::type
-
template<bool, bool>
struct SolverChoice
-
#include <Traits.hpp>
Helper struct to make choice.
-
template<class ScalarType, class MV, class OP>
class SolverManager
-
#include <XlifeppSolverManager.hpp>
The SolverManager is a templated virtual base class that defines the basic interface that any solver manager will support.
Subclassed by xlifepp::BlockDavidsonSolMgr< ScalarType, MV, OP >, xlifepp::BlockKrylovSchurSolMgr< ScalarType, MV, OP >
-
template<class K_, class M_>
struct SolverPtrTrait
-
template<class ScalarType, class MV, class OP>
class SolverUtils
-
#include <XlifeppSolverUtils.hpp>
xlifepp’s templated, static class providing utilities for the solvers.
This class provides concrete, templated implementations of utilities necessary for the solvers. These utilities include sorting, orthogonalization, projecting/solving local eigensystems, and sanity checking. These are internal utilties, so the user should not alter this class.
-
class SorSolver : public xlifepp::IterativeSolver
-
#include <SorSolver.hpp>
Implement Successive Over Relaxation algorithm.
Implement Symmetric Successive Over Relaxation algorithm.
-
template<class MagnitudeType>
class SortManager
-
#include <XlifeppSortManager.hpp>
xlifepp’s templated pure virtual class for managing the sorting of approximate eigenvalues computed by the eigensolver.
A concrete implementation of this class is necessary.
Subclassed by xlifepp::BasicSort< MagnitudeType >
-
struct SortPointsByXAndY
-
#include <RefElement.hpp>
sort nodes according to coordinates
-
class Space
-
#include <Space.hpp>
base class of spaces
Subclassed by xlifepp::FeSpace, xlifepp::ProdSpace, xlifepp::SpSpace, xlifepp::SubSpace
-
class SpaceInfo
-
#include <Space.hpp>
structure to store general information of a space
-
class SpaceMap
-
#include <Space.hpp>
a class handling the map between dof numbers of the trace of 2 spaces (V1,V2) on an interface the spaces have to be FE spaces on a same mesh with same interpolation ! This class manages a numbering vector, say m, that relates dof numbers of V1 to dof numbers of V2 : i_th dof of V1 = m(i)_th dof of V2 This map allows to transport a TermVector defined on V1 to a TermVector defined on V2
-
template<typename K>
class SparseMatrix : public std::map<NumPair, K>
-
#include <SparseMatrix.hpp>
to deal with numeric sparse matrix (say real or complex vector) using (i,j,v) representation
-
class SpectralBasis
-
#include <SpectralBasis.hpp>
defines an abstract class of global basis functions (not finite element)
Subclassed by xlifepp::SpectralBasisFun, xlifepp::SpectralBasisInt
-
class SpectralBasisFun : public xlifepp::SpectralBasis
-
#include <SpectralBasis.hpp>
defines class of global basis functions given by an analytic expression.
It uses the general Function class (defined in utils lib) with function of the form:
T function(const Point&, Parameters&) T is either a real_t or a complex_t or a Vector<real_t> or a Vector<complex_t>
For instance, to define the spectral basis a_n sin(n pi x), define the standard c++ function:
real_t sin_n(const Point &p,Parameters& pa = defaultParameters) { real_t x=p.x(); real_t h=pa("h"); //get the parameter h (user definition) number_t n=pa("basis size"); //get the size of the basis number_t id=pa("basis index"); //get the index of function to compute return sqrt(2/h)*sin(id*pi*x/h);} //computation }
Parameters p(1,"h"); SpectralBasisFun sinBasis(Omega,Function(sin_n,p),10); //define the set of basis function real_t s1; sinBasis.functions(1,Point(0.5),s1); //compute the basis function n=1 at point x=0.5 in S1 Vector<real_t> sn; sinBasis.functions(Point(0.5),sn); //compute all the basis functions at point x=0.5 in Sn
-
class SpectralBasisInt : public xlifepp::SpectralBasis
-
#include <SpectralBasisInt.hpp>
defines global basis functions given by interpolated functions, say TermVectors
-
class Spline
-
#include <spline.hpp>
abstract Spline class type_, subtype_: C2Spline,_CatmullRomSpline, _BSpline, BezierSpline, Nurbs and _SplineInterpolation, _SplineApproximation degree: degree of polynoms used by spline (called spline degree) controlPoints, knots: internal arrays common to any splines but handling different stuff splinePar_: type of spline parametrization (change the derivatives but not the tangent) yps_, ype_: tangent vector at end points (required by some boundary conditions) (1D) bces_, bce_: boundary condition at start point and end point parameterBounds_: real bounds (a,b) of spline parametrization: parametrization are always set on [0,1] but the spline parametrization functions does the mapping s = a + (b-a)t
Subclassed by xlifepp::BSpline, xlifepp::BezierSpline, xlifepp::C2Spline, xlifepp::CatmullRomSpline, xlifepp::Nurbs
-
class SplineArc : public xlifepp::Curve
-
#include <geometries1D.hpp>
definition of a spline geometry in R^3
SplineArc constructors are based on a key-value system. Here are the available keys:
_vertices: list of control points
_spline: spline object
_spline_type: type of spline one of _C2Spline, _CatmullRomSpline, _BSpline, _BezierSpline, _Nurbs
_spline_subtype: subtype of spline, one of _SplineInterpolation, _SplineApproximation
_spline_BC: spline boundary condition, one of _naturalBC, _clampedBC, _periodicBC
_degree: degree of spline (default 3)
_tension: tension factor for _CatmullRomSpline
_spline_parametrization: spline parametrization type, one of _xParametrization, _uniformParametrization,_chordalParametrization, _centripetalParametrization
_weights: weights of control points (for _BSpline only)
_tangent_0, _tangent_1: tangent vectors at the bounds of the arc (for _clampedBC only)
_nnodes: to define the number of nodes on the arc
_hsteps: to define the local mesh steps on the bounds
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
class SplineSurface : public xlifepp::Surface
-
#include <geometries2D.hpp>
definition of a SplineSurface geometry in R^3 from a Nurbs object (non uniform rational Bspline) only nurbs are available either approximation nurbs or interpolation nurbs (default when subtype is not specified)
SplineSurface constructors are based on a key-value system. Here are the available keys:
_vertices: list of control points
_spline: spline object
_spline_type: type of spline one of _C2Spline, _CatmullRomSpline, _BSpline, _BezierSpline, _Nurbs
_spline_subtype: subtype of spline, one of _SplineInterpolation, _SplineApproximation
_spline_BC: spline boundary condition, one of _naturalBC, _clampedBC, _periodicBC
_degree: degree of spline (default 3)
_nbu: number of control/interpolation points in u-direction (_Nurbs only)
_spline_parametrization: spline parametrization type, one of _xParametrization, _uniformParametrization,_chordalParametrization, _centripetalParametrization
_weights: weights of control points (for _BSpline only)
_nnodes: to define the number of nodes on the arc
_hsteps: to define the local mesh steps on the bounds
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
class SpSpace : public xlifepp::Space
-
#include <SpSpace.hpp>
defines general data of a space defined by a set of spectral functions SpSpace class is not exposed to end users
-
class Sq
-
class SquareGeo : public xlifepp::Rectangle
-
#include <geometries2D.hpp>
definition of a square geometry in R^3
SquareGeo constructors are based on a key-value system. Here are the available keys:
_v1, _v2, _v4: to define the vertices of the Square, counterclockwise oriented
_center: to define the center of the SquareGeo
_origin: to define the first vertex of the SquareGeo (same definition as _v1)
_length: the length of the SquareGeo
_xmin, _xmax, _ymin, _ymax: to define the SquareGeo v1=(xmin, ymin), v2=(xmax, ymin), v4=(xmin, ymax)
_nnodes: to define the number of nodes on each edge of the SquareGeo
_hsteps: to define the local mesh steps on the vertices of the SquareGeo
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
class SsorSolver : public xlifepp::IterativeSolver
-
template<class ScalarType, class MV, class OP>
class StatusTest
-
#include <XlifeppStatusTestDecl.hpp>
A pure virtual class for defining the status tests for the xlifepp iterative solvers.
xlifepp::StatusTest is an interface that can be implemented to create convergence tests for all xlifepp solvers. Almost any kind of test can be expressed using this mechanism, including composite tests (see StatusTestCombo).
Subclassed by xlifepp::StatusTestCombo< ScalarType, MV, OP >, xlifepp::StatusTestMaxIters< ScalarType, MV, OP >, xlifepp::StatusTestOutput< ScalarType, MV, OP >, xlifepp::StatusTestResNorm< ScalarType, MV, OP >, xlifepp::StatusTestWithOrdering< ScalarType, MV, OP >
-
template<class ScalarType, class MV, class OP>
class StatusTestCombo : public xlifepp::StatusTest<ScalarType, MV, OP>
-
#include <XlifeppStatusTestCombo.hpp>
Status test for forming logical combinations of other status tests.
Test types include StatusTestCombo::_OR, StatusTestCombo::_AND, StatusTestCombo::_SEQOR and StatusTestCombo::_SEQAND. The StatusTestCombo::_OR and StatusTestCombo::_AND tests evaluate all of the tests, in the order they were passed to the StatusTestCombo. The StatusTestCombo::_SEQOR and StatusTestCombo::_SEQAND run only the tests necessary to determine the final outcome, short-circuiting on the first test that conclusively decides the outcome. More formally, StatusTestCombo::_SEQAND runs the tests in the order they were given to the StatusTestCombo class and stops after the first test that evaluates _failed. StatusTestCombo::_SEQOR run the tests in the order they were given to the StatusTestCombo class and stops after the first test that evaluates _passed.
-
template<class ScalarType, class MV, class OP>
class StatusTestMaxIters : public xlifepp::StatusTest<ScalarType, MV, OP>
-
#include <XlifeppStatusTestMaxIters.hpp>
A status test for testing the number of iterations.
xlifepp::StatusTestMaxIters will test true when an eigensolver has reached some number of iterations. Specifically, where maxIter is the parameter given to the status tester.
This status test also supports negation, so that it negates the need for a StatusTestMinIters status tester. In this way, all tests on the range of iterations can be constructed through the appropriate use of StatusTestMaxIters and StatusTestCombo.
-
template<class ScalarType, class MV, class OP>
class StatusTestOutput : public xlifepp::StatusTest<ScalarType, MV, OP>
-
#include <XlifeppStatusTestOutput.hpp>
A special StatusTest for printing other status tests.
StatusTestOutput is a wrapper around another StatusTest that calls StatusTest::print() on the underlying object on calls to StatusTestOutput::checkStatus(). The frequency and occasion of the printing can be dictated according to some parameters passed to StatusTestOutput::StatusTestOutput().
-
template<class ScalarType, class MV, class OP>
class StatusTestResNorm : public xlifepp::StatusTest<ScalarType, MV, OP>
-
#include <XlifeppStatusTestResNorm.hpp>
A status test for testing the norm of the eigenvectors residuals.
StatusTestResNorm was designed to be used as a test for convergence. The tester compares the norms of the residual vectors against a user specified tolerance.
In addition to specifying the tolerance, the user may specify:
the norm to be used: 2-norm or OrthoManager::norm() or EigenSolver::getRitzRes2Norms()
the scale: absolute or relative to magnitude of Ritz value
the quorum: the number of vectors required for the test to evaluate as _passed.
-
template<class ScalarType, class MV, class OP>
class StatusTestWithOrdering : public xlifepp::StatusTest<ScalarType, MV, OP>
-
#include <XlifeppStatusTestWithOrdering.hpp>
A status test for testing the norm of the eigenvectors residuals along with a set of auxiliary eigenvalues.
The test evaluates to _passed when then the most significant of the eigenvalues all have a residual below a certain threshhold. The purpose of the test is to not only test convergence for some number of eigenvalues, but to test convergence for the correct ones.
In addition to specifying the tolerance, the user may specify:
the norm to be used: 2-norm or OrthoManager::norm() or getRitzRes2Norms()
the scale: absolute or relative to magnitude of Ritz value
the quorum: the number of vectors required for the test to evaluate as _passed.
Finally, the user must specify the xlifepp::SortManager used for deciding significance.
-
class SuBilinearForm
-
#include <BilinearForm.hpp>
describes a linear combination of bilinear forms with the same pair of Unknowns.
-
class SubSpace : public xlifepp::Space
-
#include <SubSpace.hpp>
defines data related to a ‘subspace’ of a space the subspace may be geometrically supported by a subset of geometrical domain or be a restriction to a boundary of the parent geometrical domain (trace space) or both The SubSpace class is mainly used as a dof numbering object in computation.
SubSpace class is not exposed to end users
Subclassed by xlifepp::FeSubSpace
-
class SuLinearForm
-
#include <LinearForm.hpp>
describes a linear combination of linear forms with the same unknown.
-
class Surface : public xlifepp::Geometry
-
#include <geometries2D.hpp>
base class for 2D geometries
Subclassed by xlifepp::Ellipse, xlifepp::EllipsoidSidePart, xlifepp::ParametrizedSurface, xlifepp::Polygon, xlifepp::SplineSurface, xlifepp::TrunkSidePart
-
class SuTermMatrix : public xlifepp::Term
-
#include <SuTermMatrix.hpp>
handles numerical representation of single unknowns bilinear forms (SuBilinearForm).
Internal class
-
class SuTermVector : public xlifepp::Term
-
#include <SuTermVector.hpp>
handles numerical representation of single unknown linear forms (SuLinearForm).
Internal class
-
class SuTermVectors : public std::vector<SuTermVector>
-
#include <SuTermVector.hpp>
end user class handling vector of SuTermVector it inherits from std::vector
-
class SvdElements
-
template<class ScalarType, class MV, class OP>
class SVQBOrthoManager : public xlifepp::MatOrthoManager<ScalarType, MV, OP>
-
#include <XlifeppSVQBOrthoManager.hpp>
An implementation of the xlifepp::MatOrthoManager that performs orthogonalization using the SVQB iterative orthogonalization technique described by Stathapoulos and Wu.
This orthogonalization routine, while not returning the upper triangular factors of the popular Gram-Schmidt method, has a communication cost (measured in number of communication calls) that is independent of the number of columns in the basis.
-
class SymbolicFunction
-
#include <SymbolicFunction.hpp>
binary node to represent symbolic functions
-
class SymbolicTermMatrix
-
#include <SymbolicTermMatrix.hpp>
handles expressions involving xlifepp::TermMatrix’s
xlifepp::SymbolicTermMatrix class is designed to handle any algebraic expression involving some xlifepp::TermMatrix The following symbolic operations are available + - * *scalar /scalar inv conj adj trans Id No real operations on xlifepp::TermMatrix are performed only the product by a xlifepp::TermVector may be performed example: A + trans(K)*inv(M)*K inv(A+B) is not allowed! We use a binary tree to represent such symbolic operation, a node representing an operation on one or two xlifepp::SymbolicTermMatrix The previous example has the following tree representation
(+) |--------|--------| (Id)A (*) |--------|-------| (trans)K (*) |--------|-------| (inv)M (Id)K
-
class SymCsStorage : public xlifepp::CsStorage
-
#include <SymCsStorage.hpp>
child class for row compressed storage of matrix with symmetrty
-
class SymDenseStorage : public xlifepp::DenseStorage
-
#include <SymDenseStorage.hpp>
handles dense storage of “symetric” matrix storing the lower “triangular” part row by row the diagonal is stored first, then the strict lower part
-
class SymSkylineStorage : public xlifepp::SkylineStorage
-
#include <SymSkylineStorage.hpp>
child class dealing with skyline storage of matrix with symmetry
-
template<typename T>
class Tabular : public std::vector<T>
-
class Term
-
#include <Term.hpp>
abstract base class of TermVector and TermMatrix, that are the numerical representations of linear and bilinear forms on spaces.
Subclassed by xlifepp::SuTermMatrix, xlifepp::SuTermVector, xlifepp::TermMatrix, xlifepp::TermVector
-
class TermMatrix : public xlifepp::Term
-
#include <TermMatrix.hpp>
end user class handling numerical representation of any bilinear form (BilinearForm).
May be multiple unknowns
-
class TermVector : public xlifepp::Term
-
#include <TermVector.hpp>
end user class handling numerical representation of any linear form (LinearForm).
-
class TermVectors : public std::vector<TermVector>
-
#include <TermVector.hpp>
end user class handling vector of TermVector it inherits from std::vector
-
class TestFunction : public xlifepp::Unknown
-
#include <Unknown.hpp>
end user’s class to manage problem test functions
-
class Tetrahedron : public xlifepp::Polyhedron
-
#include <geometries3D.hpp>
definition of a tetrahedron geometry in R^3
Tetrahedron constructors are based on a key-value system. Here are the available keys:
_v1, _v2, _v3, _v4: to define the vertices of the tetrahedron
_nnodes: to define the number of nodes on each edge of the Tetrahedron
_hsteps: to define the local mesh steps on the vertices of the Tetrahedron
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
class ThreadData
-
#include <ThreadData.hpp>
class handling some possible shared data in omp computation(normal vectors, element, dof, …)
-
class Timer
-
#include <Timer.hpp>
cpu time and elapsed time management class
-
class Trace
-
#include <Trace.hpp>
Trace object allows to keep trace of runtime, as a string list, of the hierarchy of functions used up to now.
-
class Transformation
-
#include <Transformation.hpp>
handles mesh transformations
Subclassed by xlifepp::Reflection2d, xlifepp::Reflection3d, xlifepp::Rotation2d, xlifepp::Rotation3d, xlifepp::Scaling, xlifepp::Translation
-
class Translation : public xlifepp::Transformation
-
#include <Transformation.hpp>
representation of a translation of vector u
-
template<typename T>
class TrapzInterval
-
#include <quadratureMethods.hpp>
adaptative trapeze method from a function and a given tolerance eps compute int_[a,b] f(x)dx using trapeze method I1=0.5*(b-a)*[f(a)+f(b)] and the modified trapeze method I2=0.25*(b-a)*[f(a)+2*f(0.5*(a+b))+f(b)] error estimator: |I1-I2|< 3*eps*(b-a)
-
class Trgeo
-
class Triangle : public xlifepp::Polygon
-
#include <geometries2D.hpp>
definition of a triangular geometry in R^3
Triangle constructors are based on a key-value system. Here are the available keys:
_v1, _v2, _v3: to define the vertices of the triangle, counterclockwise oriented
_nnodes: to define the number of nodes on each edge of the Triangle
_hsteps: to define the local mesh steps on the vertices of the Triangle
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
-
template<typename _MatrixType>
class Tridiagonalization
-
#include <Tridiagonalization.hpp>
Tridiagonal decomposition of a selfadjoint matrix.
This class performs a tridiagonal decomposition of a selfadjoint matrix \( A \) such that: \( A = Q T Q^* \) where \( Q \) is unitary and \( T \) a real symmetric tridiagonal matrix.
A tridiagonal matrix is a matrix which has nonzero elements only on the main diagonal and the first diagonal below and above it. The Hessenberg decomposition of a selfadjoint matrix is in fact a tridiagonal decomposition. This class is used in SelfAdjointEigenSolver to compute the eigenvalues and eigenvectors of a selfadjoint matrix.
Call the function compute() to compute the tridiagonal decomposition of a given matrix. Alternatively, you can use the Tridiagonalization(const MatrixType&) constructor which computes the tridiagonal Schur decomposition at construction time. Once the decomposition is computed, you can use the matrixQ() and matrixT() functions to retrieve the matrices Q and T in the decomposition.
- Template Parameters:
-
_MatrixType – the type of the matrix of which we are computing the tridiagonal decomposition; this is expected to be an instantiation of the Matrix class template.
-
template<class K = number_t>
class Triplet
-
struct TrueType
-
class Trunk : public xlifepp::Volume
-
#include <geometries3D.hpp>
A Trunk is a volume defined by a cylinder or a trunk of cone.
A cylinder is a trunk of a cylinder !!! To define it, we need a basis, a translation and a homothety to build the other basis. To make it more simple, we will need a basis, the first point of the other basis (determining the translation and the center of the homothety), and a scale factor. This “first point” of a basis is defined as basis.p(1) : it is the first vertex for a polygon, but the center for an ellipse or a disk
Trunk constructors are based on a key-value system. Here are the available keys:
_basis: to define the geometrical basis of a Trunk (a child object of Surface)
_origin: the origin point of the second basis (the first vertex of a Polygon, but the center of an Ellipse or a Disk)
_scale: the scale factor to define the second basis
_center1, _center2: to define centers of bases when they are elliptical
_v1, _v2: to define apogees of the basis when it is elliptical
_nnodes: to define the number of nodes on the edges of the Trunk
_hsteps: to define the local mesh steps on build points of the Trunk
_domain_name: to define the domain name
_side_names: to define the side names
_varnames: to define the variable names for print purpose
Subclassed by xlifepp::Cone, xlifepp::Cylinder, xlifepp::RevTrunk
-
class TrunkSidePart : public xlifepp::Surface
-
#include <geometries3D.hpp>
definition of a part of trunk side in R^3 (lateral surface) Trunk is defined by its basis_ (B), center1 (C), origin_(O) and scale factor (s) of the top part of side trunk is defined from a Trunk object and either 2 points of basis boundary or two angles if elliptical trunk General parametrisation of a side part ( g(u) parametrization of the basis boundary) P(u,v) = (1-v+sv)g(u) + v(O -sC) no construction via key parameter, no geometric transformation available, no mesh (p_,n_,h_ not managed) not a user geometry for the moment !!!
-
template<typename OrdinalType, typename ScalarType>
class UMFPACK
-
#include <UmfPack.hpp>
This class plays a role of wrapper of Umfpack library.
And only necessary functions are provided here. However, we we can easily extend this class with new methods wrapping functions of Umfpack library. Because Umfpack only works with int/double, (e.x umfpack_di_symbolic, etc) or long/double, (e.x umfpack_dl_symbolic) Class template specialization approach seems to be the best!
-
template<typename MatrixType>
class UmfPackLU
-
#include <UmfPackLU.hpp>
Wrapper class of Umfpack.
-
class UmfPackSolver
-
#include <UmfPackSolver.hpp>
This class solve AX=B with Umfpack library and it provides a same interface as iterative solvers User can invoke this solver with the operator()
-
template<class ScalarType, class MV>
class UndefinedMultiVecTraits
-
#include <XlifeppMultiVecTraits.hpp>
Used by MultiVecTraits to report lack of a specialization.
MultiVecTraits<ScalarType, MV> uses this struct to produce a compile-time error when no specialization exists for the scalar type ScalarType and multivector type MV.
-
template<class ScalarType, class MV, class OP>
struct UndefinedOperatorTraits
-
#include <XlifeppOperatorTraits.hpp>
This is the default struct used by OperatorTraits<ScalarType, MV, OP> class to produce a compile time error when the specialization does not exist for operator type
OP
.
-
template<class T>
struct UndefinedUMFPACKRoutine
-
class Unknown
-
#include <Unknown.hpp>
end user’s class to manage problem unknowns
Subclassed by xlifepp::ComponentOfUnknown, xlifepp::ComponentsOfUnknown, xlifepp::TestFunction
-
class UserBilinearForm : public xlifepp::BasicBilinearForm
-
#include <BilinearForm.hpp>
describes a bilinear form given by a user function computing elementary matrix
bffun_ : user function void uf(BFComputationData&, Parameters&)
-
template<class ScalarType>
struct ValueEigenSolver
-
#include <XlifeppEigenTypes.hpp>
This struct is used for storing eigenvalues and Ritz values, as a pair of real values.
-
template<typename K>
class Vector : public std::vector<K>
-
#include <Vector.hpp>
to deal with numeric vector (say real or complex vector).
may be used for vector of vectors but restricted usage
Subclassed by xlifepp::VectorEigenDense< K >
-
template<typename K>
struct VectorAlgorithmSelector
-
#include <VectorEigenDense.hpp>
Trait to select corresponding algorithm.
-
template<typename K>
class VectorEigenDense : public xlifepp::Vector<K>
-
#include <VectorEigenDense.hpp>
Class (row) dense vector to deal with direct eigen problem solver.
This class provides some basic methods to support calculation of eigen problem dense matrix.
TODO Improve performance by reusing vector data
- Template Parameters:
-
Type – of scalar (real_t, complex_t)
-
class VectorEntry
-
#include <VectorEntry.hpp>
small class handling current types of Vector shadowing template parameter of Vector
-
template<typename Vec>
struct VectorTrait
-
#include <Traits.hpp>
Trait struct to determine the value type for vector f values.
-
class Volume : public xlifepp::Geometry
-
#include <geometries3D.hpp>
base class for 3D geometries
Subclassed by xlifepp::Ellipsoid, xlifepp::Polyhedron, xlifepp::Trunk
-
namespace internalEigenSolver
-
namespace dedicated to internal eigensolver of XLiFE++
Functions
-
template<typename MatrixType, typename VectorsType, typename CoeffsType>
void applyBlockHouseholderOnTheLeft(MatrixType &mat, VectorsType &vectors, const CoeffsType &hCoeffs)
-
template<typename MatrixType>
MatrixType directSwapping(MatrixType &matT, unsigned int p, unsigned int q, real_t gamma)
-
template<typename MatrixType>
void doComputeEigenvectorsComplexSolverInPlace(const real_t matrixnorm, const MatrixType &schurT, const MatrixType &schurU, MatrixType &eigVec)
-
template<typename MatrixType>
void doComputeEigenvectorsRealSolverInPlace(const real_t matrixnorm, const MatrixType &schurT, const MatrixType &schurU, MatrixType &eigVec)
-
template<typename MatrixQR, typename HCoeffs>
void householderQRinplaceBlocked(MatrixQR &mat, HCoeffs &hCoeffs, Index maxBlockSize = 32)
-
template<typename MatrixQR, typename HCoeffs>
void householderQRinplaceUnblocked(MatrixQR &mat, HCoeffs &hCoeffs)
-
template<typename TriangularFactorType, typename VectorsType, typename CoeffsType>
void makeBlockHouseholderTriangularFactor(TriangularFactorType &triFactor, VectorsType &vectors, const CoeffsType &hCoeffs)
-
inline void printOutDebugInfoEigenProblem(const string_t &nameOfClass, const string_t &message)
-
template<typename MatrixType>
void swapComplexSchurInPlace(MatrixType &matrixT, const std::vector<int> &order)
-
template<typename MatrixType>
void swapComplexSchurInPlace(MatrixType &matrixT, MatrixType &matrixQ, const std::vector<int> &order)
-
template<typename MatrixType>
void swapRealSchurInPlace(MatrixType &matrixT, MatrixType &matrixQ, unsigned int ifst, unsigned int ilst)
-
Given the quasi-triangular matrix T and orthogonal matrix Q obtained from the real Schur decomposition, this function reorders the eigenvalues appearing on the (block) diagonal of matrix T The diagonal element of block of T with row index ifst is moved to row ilst.
This is implemented from “On Swapping Diagonal Blocks in Real Schur Form”
- Parameters:
-
matrixT – [inout] quasi-triangular matrix of real Schur decomposition
matrixQ – [inout] orthogonal of real Schur decomposition
ifst – [in] index of row needs moving
ilst – [in] index of destination row
-
inline void testErrorEigenProblem(bool condition, const string_t &s)
-
inline void testErrorEigenProblemMultVec(bool condition, const string_t &s)
-
inline void testWarningEigenProblem(bool condition, const string_t &s)
-
template<typename MatrixType, typename DiagonalType, typename SubDiagonalType>
void tridiagonalizationInplace(MatrixType &mat, DiagonalType &diag, SubDiagonalType &subdiag, bool extractQ)
-
Performs a full tridiagonalization in place.
Computes the tridiagonal decomposition of the selfadjoint matrix
mat
in place such that \( mat = Q T Q^* \) where \( Q \) is unitary and \( T \) a real symmetric tridiagonal matrix.The tridiagonal matrix T is passed to the output parameters
diag
andsubdiag
. IfextractQ
is true, then the orthogonal matrix Q is passed tomat
. Otherwise the lower part of the matrixmat
is destroyed.The vectors
diag
andsubdiag
are not resized. The function assumes that they are already of the correct size. The length of the vectordiag
should equal the number of rows inmat
, and the length of the vectorsubdiag
should be one left.See also
class Tridiagonalization
- Parameters:
-
mat – [inout] On input, the selfadjoint matrix whose tridiagonal decomposition is to be computed. Only the lower triangular part referenced. The rest is left unchanged. On output, the orthogonal matrix Q in the decomposition if
extractQ
is true.diag – [out] The diagonal of the tridiagonal matrix T in the decomposition.
subdiag – [out] The subdiagonal of the tridiagonal matrix T in the decomposition.
extractQ – [in] If true, the orthogonal matrix Q in the decomposition is computed and stored in
mat
.
Note
Currently, it requires two temporary vectors to hold the intermediate Householder coefficients, and to reconstruct the matrix Q from the Householder reflectors.
-
template<typename MatrixType, typename CoeffVectorType>
void tridiagonalizationInplace(MatrixType &matA, CoeffVectorType &hCoeffs)
-
Performs a tridiagonal decomposition of the selfadjoint matrix matA in-place.
On output, the tridiagonal selfadjoint matrix T is stored in the diagonal and lower sub-diagonal of the matrix matA. The unitary matrix Q is represented in a compact way as a product of Householder reflectors \( H_i \) such that: \( Q = H_{N-1} \ldots H_1 H_0 \). The Householder reflectors are defined as \( H_i = (I - h_i v_i v_i^T) \) where \( h_i = hCoeffs[i]\) is the \( i \)th Householder coefficient and \( v_i \) is the Householder vector defined by \( v_i = [ 0, \ldots, 0, 1, matA(i+2,i), \ldots, matA(N-1,i) ]^T \).
Implemented from Golub’s “Matrix Computations”, algorithm 8.3.1.
See also
- Parameters:
-
matA – [inout] On input the selfadjoint matrix. Only the lower triangular part is referenced. On output, the strict upper part is left unchanged, and the lower triangular part represents the T and Q matrices in packed format has detailed below.
hCoeffs – [out] returned Householder coefficients (see below)
-
template<typename MatrixType, typename CoeffVectorType>
void tridiagonalizationUpperInplace(MatrixType &matA, CoeffVectorType &hCoeffs)
-
template<typename MatrixType, bool IsComplex>
struct ComplexSchurReduceToHessenberg
-
template<typename MatrixType, bool IsComplex>
struct ComputeSchurForm
-
struct EigenSolverVerbose
-
#include <EigenTestError.hpp>
struct to handle verbose level
-
template<typename MatrixType, bool IsComplex>
struct EigenValueComputation
-
template<typename MatrixType, bool IsComplex>
struct EigenVectorComputation
-
template<typename MatrixType, bool IsComplex>
struct SortSchurForm
-
template<typename MatrixType, typename VectorsType, typename CoeffsType>
-
namespace iomel
-
namespace dedicated to management of Melina mesh format
Functions
-
number_t checkPointNumbers(const vector<vector<number_t>> &elt_wise_numbers, const pair<number_t, number_t> &mM)
-
checkPointNumbers
-
void domainRead(StringInput &mi, const char kindom, const number_t e1, const char code, MeshDomain *meshdom_p, const vector<GeomElement*> &elements, number_t &no_sideElt)
-
build domain component list from input stream (reads domain list of elements/components)
-
void domainReadComponents(StringInput &mi, const number_t e1, const char f, const vector<GeomElement*> &elements, vector<GeomElement*> &domainElements, number_t &no_sideElt)
-
reads the component list defining a boundary domain or point-wise domain
-
void domainReadElements(StringInput &mi, const number_t e1, const char nxc, const vector<GeomElement*> &elements, vector<GeomElement*> &domainElements)
-
reads the element list defining an element domain
-
char domainReadKind(StringInput &mi, number_t &e1, char &code, dimen_t &dimdom)
-
find domain kind from input stream: list of elements (E) or components (C) Also returns the number of the first element e1, and the domain dimension in the components case (unset otherwise).
-
number_t loadDescription(StringInput &mi, dimen_t &spaceDim)
-
loads mesh description from input file
Syntax: < Description du maillage ^ Mesh Description > < Variables d’’espace ^ Space variables > : &S1 [&S2 [&S3]] < Nombre d’’elements ^ Number of elements > : &I
-
void loadDomain(StringInput &mi, const Mesh &msh, number_t &no_sideElt, vector<GeomDomain*> &domains_)
-
loads a domain description from input file
-
GeomElement *loadGeomElement(ifstream &ifs, const Mesh *msh, const RefElement *r_e, dimen_t spaceDim, vector<real_t> &elt_coords, vector<number_t> &elt_numbers, const number_t no_elt, pair<number_t, number_t> &minmax)
-
loads a Geom Element of mesh from input file
-
string loadTitle(StringInput &mi)
-
loadTitle loads mesh Title from input file.
Syntax: Titre/Title “title as a string” or Titre/Title &I (followed by) “title as &I lines of input”
-
void Points_and_Elements(const number_t nb_points, const vector<vector<real_t>> &elt_wise_coords, const vector<vector<number_t>> &elt_wise_numbers, dimen_t spaceDim, vector<Point> &Nodes, vector<GeomElement*> &Elements)
-
defines mesh nodes and elements_ members: create Nodes vector and set Points in Elements from the number of points in Mesh and element-wise arrays coords and numbers
-
dimen_t readVarNames(StringInput &mi)
-
Reads variable names from input mesh file and returns the space dimension.
-
void updateGeomElement(GeomElement *ge_p, vector<number_t>::const_iterator gnum_el, const number_t nbPts, const RefElement *re_p, vector<Point> &nodes)
-
Utilitary function to update MeshElement part of the GeomElement ge_p.
Variables
-
std::pair<string_t, ShapeType> shapeList[] = {std::make_pair("se", _segment), std::make_pair("tr", _triangle), std::make_pair("qu", _quadrangle), std::make_pair("te", _tetrahedron), std::make_pair("he", _hexahedron), std::make_pair("pr", _prism)}
-
Strings corresponding to the ShapeType identifiers (defined in config.hpp) taken into account by Melina format.
-
class ElementBlock
-
class StringInput
-
#include <StringInput.hpp>
This class is used by the function Mesh::loadMelina to read data from a file containing a mesh in Melina format.
-
number_t checkPointNumbers(const vector<vector<number_t>> &elt_wise_numbers, const pair<number_t, number_t> &mM)
-
namespace subdivision
-
namespace dedicated to tools of “subdivision” mesh generator
Typedefs
-
typedef Point (SubdivisionMesh::* PtCompFun)(const refnum_t localcod, const real_t *coef, const std::vector<Point> &VP) const
-
typedef number_t refnum_t
-
typedef std::set<number_t> set_n
-
typedef Vector<real_t> Vect
Enums
-
enum GeomEndShape
-
Values:
-
enumerator None
-
enumerator Flat
-
enumerator Cone
-
enumerator Ellipsoid
-
enumerator Sphere
-
enumerator None
-
enum topologicalArea
-
Values:
-
enumerator boundaryArea
-
enumerator interfaceArea
-
enumerator subdomainArea
-
enumerator boundaryArea
Functions
-
Point barycenter(const real_t *coef, const std::vector<Point> &VP)
-
Computation of the barycenter of the points stored in the vector VP, with associated coefficients stored in coef.
barycenter of n points
-
Point barycenter(const std::vector<real_t> &coef, const std::vector<Point> &VP)
-
Computation of the barycenter of the points stored in the vector VP, with associated coefficients stored in coefn as std::vector.
-
int DECHOL(const vector<vector<real_t>> &A, int n, vector<vector<real_t>> &L, real_t eps)
-
void DRCHOL(const vector<vector<real_t>> &L, int n, vector<vector<real_t>> &B, int m)
-
string fmtTeX(const string &strorig)
-
TeX format.
This function returns a copy of strorig where some characters have been replaced by their equivalent in typewriter font (tt) in order to allow compilation by TeX.
-
void gsubstitute(string &str, const char *that, const char *bythat)
-
Global substitution.
This function substitutes each occurrence of substring that in str by the string bythat.
-
void IMP(const vector<vector<number_t>> &comesh, const vector<pair<short, short>> &rkEV, const vector<number_t> &rkUnk, const vector<number_t> &rkData)
-
Point projOnPlane(const Point &P, const Point &A, const Vect &U)
-
Projection of the point P onto the plane defined by the point A and the normal unitary vector U.
projection onto the plane defined by the point A and the normal unitary vector U
-
Point projOnSph(const real_t *coef, const std::vector<Point> &VP, const real_t Radius)
-
Projection onto the sphere S of the barycenter of the points stored in VP with associated coefficients stored in coef.
projection onto a sphere of radius Radius of the barycenter of n points
The points in VP are assumed to be lying on the sphere S centered at the origin, with the radius Radius.
-
Matrix<real_t> rotationMatrix(real_t theta, dimen_t axis)
-
Apply rotations defined in rots and the translation of vector U to each point of Pt.
-
Point rotInPlane(const Point &P, const real_t ct, const real_t st, const Point &A, const Vect &U)
-
Rotation of the point P by the angle theta (given by their cosine ct and sine st) around the axis defined by the point A and the unitary vector U in the plane defined by the point P and the normal unitary vector U.
rotation of the current point around the axis defined by the point A and the unitary vector U, in the plane orthogonal to U
-
Point rotOnSph(const Point &P1, const Point &P2, const int k, const int n)
-
Rotation of P1 by the angle alpha = k/n * ang(P1,O,P2) in the plane (P1,O,P2).
rotation of P1 by the angle k/n * ang(P1, O, P2)
P1 and P2 are assumed to be lying onto the sphere, centered at the origin 0.
-
Point translate(const Point &P, const real_t lambda, const Vect &U)
-
Translation of the point P by the vector lambda*U.
translation of the current point by the vector lambda*U
-
template<class T_>
class CartesianFig : public xlifepp::subdivision::GeomFigure
-
template<class T_>
class CartesianMesh : public xlifepp::subdivision::GeomFigureMesh<T_>
-
class DefaultGeometry : public xlifepp::subdivision::PatchGeometry
-
Subclassed by xlifepp::subdivision::SurfPlane
-
struct DivideByZero
-
#include <PatchGeometry.hpp>
Structure used to transmit information in case an exception is thrown.
-
class GeomFigure
-
Subclassed by xlifepp::subdivision::CartesianFig< Hexahedron >, xlifepp::subdivision::CartesianFig< Quadrangle >, xlifepp::subdivision::Simplex< Tetrahedron >, xlifepp::subdivision::Simplex< Triangle >, xlifepp::subdivision::CartesianFig< T_ >, xlifepp::subdivision::Simplex< T_ >
-
template<class T_>
class GeomFigureMesh : public xlifepp::subdivision::SubdivisionMesh
-
Subclassed by xlifepp::subdivision::CartesianMesh< T_ >, xlifepp::subdivision::SimplexMesh< T_ >
-
class Hexahedron : public xlifepp::subdivision::CartesianFig<Hexahedron>
-
class HexahedronMesh : public xlifepp::subdivision::CartesianMesh<Hexahedron>
-
Subclassed by xlifepp::subdivision::VolMeshHexCone, xlifepp::subdivision::VolMeshHexCube, xlifepp::subdivision::VolMeshHexCylinder
-
struct HOV_error
-
#include <GeomFigure.hpp>
Structure used to transmit information in case an exception is thrown.
Used in GeomFigure. Type referenced by GeomFigureMesh.
-
class PatchGeometry
-
#include <PatchGeometry.hpp>
abstract base class that defines the geometrical information associated to the patches of the domain.
Subclassed by xlifepp::subdivision::DefaultGeometry, xlifepp::subdivision::SurfRevolution
-
class Quadrangle : public xlifepp::subdivision::CartesianFig<Quadrangle>
-
class QuadrangleMesh : public xlifepp::subdivision::CartesianMesh<Quadrangle>
-
#include <QuadrangleMesh.hpp>
abstract class that holds a mesh of quadrangles built by successive subdivisions of an initial elementary mesh consisting of several quadrangles.
Subclassed by xlifepp::subdivision::SurfMeshQuaCone, xlifepp::subdivision::SurfMeshQuaCube, xlifepp::subdivision::SurfMeshQuaCylinder, xlifepp::subdivision::SurfMeshQuaDisk, xlifepp::subdivision::SurfMeshQuaSet
-
struct ShapeInfo
-
template<class T_>
class Simplex : public xlifepp::subdivision::GeomFigure
-
template<class T_>
class SimplexMesh : public xlifepp::subdivision::GeomFigureMesh<T_>
-
class SubdivisionMesh
-
Subclassed by xlifepp::subdivision::GeomFigureMesh< Hexahedron >, xlifepp::subdivision::GeomFigureMesh< Quadrangle >, xlifepp::subdivision::GeomFigureMesh< Tetrahedron >, xlifepp::subdivision::GeomFigureMesh< Triangle >, xlifepp::subdivision::GeomFigureMesh< T_ >
-
class SurfCone : public xlifepp::subdivision::SurfRevolution
-
class SurfCylinder : public xlifepp::subdivision::SurfRevolution
-
class SurfEllipsoid : public xlifepp::subdivision::SurfRevolution
-
class SurfMeshQuaCone : public xlifepp::subdivision::QuadrangleMesh
-
class SurfMeshQuaCube : public xlifepp::subdivision::QuadrangleMesh
-
class SurfMeshQuaCylinder : public xlifepp::subdivision::QuadrangleMesh
-
class SurfMeshQuaDisk : public xlifepp::subdivision::QuadrangleMesh
-
class SurfMeshQuaSet : public xlifepp::subdivision::QuadrangleMesh
-
class SurfMeshTriCone : public xlifepp::subdivision::TriangleMesh
-
class SurfMeshTriCylinder : public xlifepp::subdivision::TriangleMesh
-
class SurfMeshTriDisk : public xlifepp::subdivision::TriangleMesh
-
class SurfMeshTriSet : public xlifepp::subdivision::TriangleMesh
-
#include <SurfMeshTriSet.hpp>
This class allows the construction of a surfacic mesh made of triangles.
It is built by successive subdivisions of an initial elementary mesh consisting of a set of triangles given by the user.
-
class SurfMeshTriSphere : public xlifepp::subdivision::TriangleMesh
-
class SurfPlane : public xlifepp::subdivision::DefaultGeometry
-
#include <DefaultGeometry.hpp>
class that defines the shape of a plane surface on the boundary or inside (interface) of a 3D domain.
-
class SurfRevolution : public xlifepp::subdivision::PatchGeometry
-
Subclassed by xlifepp::subdivision::SurfCone, xlifepp::subdivision::SurfCylinder, xlifepp::subdivision::SurfEllipsoid, xlifepp::subdivision::SurfSphere
-
class SurfSphere : public xlifepp::subdivision::SurfRevolution
-
class Tetrahedron : public xlifepp::subdivision::Simplex<Tetrahedron>
-
class TetrahedronMesh : public xlifepp::subdivision::SimplexMesh<Tetrahedron>
-
Subclassed by xlifepp::subdivision::VolMeshTetCone, xlifepp::subdivision::VolMeshTetCube, xlifepp::subdivision::VolMeshTetCylinder, xlifepp::subdivision::VolMeshTetSphere
-
class TeXPolygon
-
class TopoGeom
-
class Triangle : public xlifepp::subdivision::Simplex<Triangle>
-
class TriangleMesh : public xlifepp::subdivision::SimplexMesh<Triangle>
-
Subclassed by xlifepp::subdivision::SurfMeshTriCone, xlifepp::subdivision::SurfMeshTriCylinder, xlifepp::subdivision::SurfMeshTriDisk, xlifepp::subdivision::SurfMeshTriSet, xlifepp::subdivision::SurfMeshTriSphere
-
class Vertex
-
class VolMeshHexCone : public xlifepp::subdivision::HexahedronMesh
-
class VolMeshHexCube : public xlifepp::subdivision::HexahedronMesh
-
class VolMeshHexCylinder : public xlifepp::subdivision::HexahedronMesh
-
class VolMeshTetCone : public xlifepp::subdivision::TetrahedronMesh
-
class VolMeshTetCube : public xlifepp::subdivision::TetrahedronMesh
-
class VolMeshTetCylinder : public xlifepp::subdivision::TetrahedronMesh
-
class VolMeshTetSphere : public xlifepp::subdivision::TetrahedronMesh
-
typedef Point (SubdivisionMesh::* PtCompFun)(const refnum_t localcod, const real_t *coef, const std::vector<Point> &VP) const
-
typedef EcType BcType