Geophysical Inversion and Modeling Library  v1.0.12-3-g179296b4
GIMLI::PolynomialModelling Class Reference

Multidimensional polynomial modelling class. More...

+ Inheritance diagram for GIMLI::PolynomialModelling:
+ Collaboration diagram for GIMLI::PolynomialModelling:

Public Member Functions

 PolynomialModelling (uint dim, uint nCoeffizient, const std::vector< RVector3 > &referencePoints, const RVector &startModel)
virtual RVector response (const RVector &par)
virtual RVector startModel ()
const PolynomialFunction< double > & polynomialFunction () const
void setPascalsStyle (bool is)
void setSerendipityStyle (bool is)
void setPowCombinationTmp (int i)
- Public Member Functions inherited from GIMLI::ModellingBase
 ModellingBase (bool verbose=false)
 ModellingBase (DataContainer &dataContainer, bool verbose=false)
 ModellingBase (const Mesh &mesh, bool verbose=false)
 ModellingBase (const Mesh &mesh, DataContainer &dataContainer, bool verbose=false)
void setVerbose (bool verbose)
bool verbose () const
virtual RVector response_mt (const RVector &model, Index i=0) const
RVector operator() (const RVector &model)
void setData (DataContainer &data)
DataContainerdata () const
virtual RVector createDefaultStartModel ()
virtual void setStartModel (const RVector &startModel)
void setMesh (const Mesh &mesh, bool ignoreRegionManager=false)
Meshmesh ()
void createRefinedForwardMesh (bool refine=true, bool pRefine=false)
void deleteMesh ()
virtual void setJacobian (MatrixBase *J)
virtual void createJacobian (const RVector &model)
virtual void createJacobian (const RVector &model, const RVector &resp)
virtual void createJacobian_mt (const RVector &model, const RVector &resp)
virtual void initJacobian ()
MatrixBasejacobian ()
MatrixBasejacobian () const
virtual RMatrixjacobianRef () const
virtual RMatrixjacobianRef ()
virtual void clearJacobian ()
virtual void setConstraints (MatrixBase *C)
virtual void clearConstraints ()
virtual void initConstraints ()
virtual void createConstraints ()
virtual MatrixBaseconstraints ()
virtual MatrixBaseconstraints () const
virtual RSparseMapMatrixconstraintsRef () const
virtual RSparseMapMatrixconstraintsRef ()
const RMatrixsolution () const
void mapModel (const RVector &model, double background=0)
RVector createMappedModel (const RVector &model, double background=-1) const
void setRegionManager (RegionManager *reg)
const RegionManagerregionManager () const
RegionManagerregionManager ()
RegionManagerregionManagerRef ()
bool verbose ()
Regionregion (int marker)
RVector createStartModel ()
RVector createStartVector ()
void initRegionManager ()
void setThreadCount (Index nThreads)
Index threadCount () const
void setMultiThreadJacobian (Index nThreads)
Index multiThreadJacobian () const

Protected Attributes

uint dim_
std::vector< RVector3referencePoints_
PolynomialFunction< double > f_
bool pascalTriangle_
bool serendipityStyle_
uint powCombination_
- Protected Attributes inherited from GIMLI::ModellingBase
bool ownJacobian_
bool ownConstraints_
RMatrix solutions_
RVector startModel_
bool verbose_
bool regionManagerInUse_
bool ownRegionManager_
Index nThreads_
Index nThreadsJacobian_

Additional Inherited Members

- Protected Member Functions inherited from GIMLI::ModellingBase
virtual void init_ ()
virtual void deleteMeshDependency_ ()
virtual void updateMeshDependency_ ()
virtual void updateDataDependency_ ()
void setMesh_ (const Mesh &mesh, bool update=true)

Detailed Description

Multidimensional polynomial modelling class.

Multidimensional polynomial modelling class. 1, 2 or 3 dimensional polynomial modelling operator based on PolynomialFunction

Member Function Documentation

◆ polynomialFunction()

const PolynomialFunction< double >& GIMLI::PolynomialModelling::polynomialFunction ( ) const

Return read only reference to the Polynomial Functor.

◆ setPascalsStyle()

void GIMLI::PolynomialModelling::setPascalsStyle ( bool  is)

Constrain to polynomial function based on Pascal's triangle, i.e., forbid x^iy^jz^k with (i +j +k) > size

◆ setSerendipityStyle()

void GIMLI::PolynomialModelling::setSerendipityStyle ( bool  is)

Constrain the polynomial function serendipity style Pascal's triangle, i.e., forbid x^iy^jz^k with (i +j +k) > size+1. Just work if setPascalsStyle is set.

◆ startModel()

RVector GIMLI::PolynomialModelling::startModel ( )

Create starting model. The dimension is recognized here
one-dimensional: p[0][0][*] = 1
two-dimensional: p[0][*][*] = 1
three-dimensional: p[*][*][*] = 1

Reimplemented from GIMLI::ModellingBase.

References GIMLI::Vector< ValueType >::setVal().