Geophysical Inversion and Modelling Library v1.5.4
|
Multidimensional polynomial modelling class. More...
#include <curvefitting.h>
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) |
![]() | |
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) |
DataContainer & | data () const |
virtual RVector | createDefaultStartModel () |
virtual void | setStartModel (const RVector &startModel) |
void | setMesh (const Mesh &mesh, bool ignoreRegionManager=false) |
Mesh * | mesh () |
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 () |
MatrixBase * | jacobian () |
MatrixBase * | jacobian () const |
virtual RMatrix & | jacobianRef () const |
virtual RMatrix & | jacobianRef () |
virtual void | clearJacobian () |
virtual void | setConstraints (MatrixBase *C) |
virtual void | clearConstraints () |
virtual void | initConstraints () |
virtual void | createConstraints () |
virtual MatrixBase * | constraints () |
virtual MatrixBase * | constraints () const |
virtual RSparseMapMatrix & | constraintsRef () const |
virtual RSparseMapMatrix & | constraintsRef () |
const RMatrix & | solution () const |
void | mapModel (const RVector &model, double background=0) |
RVector | createMappedModel (const RVector &model, double background=-9e99) const |
void | setRegionManager (RegionManager *reg) |
const RegionManager & | regionManager () const |
RegionManager & | regionManager () |
RegionManager & | regionManagerRef () |
bool | verbose () |
Region * | region (int marker) |
RVector | createStartModel () |
RVector | createStartVector () |
void | initRegionManager () |
void | setThreadCount (Index nThreads) |
Index | threadCount () |
void | setMultiThreadJacobian (Index nThreads) |
Index | multiThreadJacobian () const |
Protected Attributes | |
uint | dim_ |
std::vector< RVector3 > | referencePoints_ |
PolynomialFunction< double > | f_ |
bool | pascalTriangle_ |
bool | serendipityStyle_ |
uint | powCombination_ |
![]() | |
Mesh * | mesh_ |
DataContainer * | dataContainer_ |
MatrixBase * | jacobian_ |
bool | ownJacobian_ |
MatrixBase * | constraints_ |
bool | ownConstraints_ |
RMatrix | solutions_ |
RVector | startModel_ |
bool | verbose_ |
bool | regionManagerInUse_ |
bool | ownRegionManager_ |
Index | nThreads_ |
Index | nThreadsJacobian_ |
Additional Inherited Members | |
![]() | |
virtual void | init_ () |
virtual void | deleteMeshDependency_ () |
virtual void | updateMeshDependency_ () |
virtual void | updateDataDependency_ () |
void | setMesh_ (const Mesh &mesh, bool update=true) |
Multidimensional polynomial modelling class.
Multidimensional polynomial modelling class. 1, 2 or 3 dimensional polynomial modelling operator based on PolynomialFunction
|
inline |
Return read only reference to the Polynomial Functor.
Reimplemented from GIMLI::ModellingBase.
|
inline |
Constrain to polynomial function based on Pascal's triangle, i.e., forbid x^iy^jz^k with (i +j +k) > size
|
inline |
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.
|
virtual |
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().