1.4.0
CCC
 
OptimCostBinary Class Reference

#include <OptimCostBinary.hpp>

Inheritance diagram for OptimCostBinary:
IOptimCost OptimCostColored

Public Member Functions

 OptimCostBinary ()
 
 OptimCostBinary (const OptimCostBinary &m)
 
OptimCostBinaryoperator= (const OptimCostBinary &m)
 
virtual ~OptimCostBinary ()
 
void reset (PrecisionOp *pmat, const ProjMatrix *projdata, const ProjMatrix *projseis=nullptr, const VectorDouble &propseis=VectorDouble(), const VectorDouble &varseis=VectorDouble())
 
VectorDouble minimize (VectorDouble &indic, bool verbose=false, int maxiter=100, double eps=5.e-4)
 
void calculateGradient (const VectorDouble &indic, const VectorDouble &lambda, double *out)
 
int setMeanProportion (double meanprop)
 
void setPreCondParams (int chebncmax=10001, double chebtol=5.e-3)
 
int isInitialized () const
 
int getNPoint () const
 
int getNVertex () const
 
void toggleSeismic (bool status)
 
- Public Member Functions inherited from IOptimCost
 IOptimCost ()
 
virtual ~IOptimCost ()
 

Constructor & Destructor Documentation

◆ OptimCostBinary() [1/2]

OptimCostBinary::OptimCostBinary ( )

◆ OptimCostBinary() [2/2]

OptimCostBinary::OptimCostBinary ( const OptimCostBinary m)

◆ ~OptimCostBinary()

OptimCostBinary::~OptimCostBinary ( )
virtual

Member Function Documentation

◆ calculateGradient()

void OptimCostBinary::calculateGradient ( const VectorDouble indic,
const VectorDouble lambda,
double *  out 
)
virtual

Calculate the Gradient

Parameters
[in]indicArray containing the Facies indicators (see remarks) (Dimension: npoint)
[in]lambdaArray of input values
[out]outArray of output gradients

Implements IOptimCost.

◆ getNPoint()

int OptimCostBinary::getNPoint ( ) const

Returns the Number of Data Points

◆ getNVertex()

int OptimCostBinary::getNVertex ( ) const

Returns the Number of Meshing Vertices

◆ isInitialized()

int OptimCostBinary::isInitialized ( ) const
inline

◆ minimize()

VectorDouble OptimCostBinary::minimize ( VectorDouble indic,
bool  verbose = false,
int  maxiter = 100,
double  eps = 5.e-4 
)

Perform the minimization

Returns
The array of facies proportions (Dimension: nvertex)
Parameters
[in]indicArray containing the Facies indicators (see remarks) (Dimension: npoint)
[in]verboseVerbose flag
[in]maxiterMaximum number of iterations for Optimization algo.
[in]epsTolerance for Optimization algorithm
Remarks
The argument 'indic' should contain 0 or 1 for active constraints
The inactive constraints should be set to TEST.

◆ operator=()

OptimCostBinary & OptimCostBinary::operator= ( const OptimCostBinary m)

◆ reset()

void OptimCostBinary::reset ( PrecisionOp pmat,
const ProjMatrix projdata,
const ProjMatrix projseis = nullptr,
const VectorDouble propseis = VectorDouble(),
const VectorDouble varseis = VectorDouble() 
)

Initialize the Binary Cost Operator

Parameters
[in]pmatThe precision matrix to be optimized
[in]projdataThe Projection operator between Data and Meshing
[in]projseisThe Projection operator between Seismic and Meshing
[in]propseisArray of facies proportions
[in]varseisArray of variance attached to the seismic

◆ setMeanProportion()

int OptimCostBinary::setMeanProportion ( double  meanprop)

Set the Mean proportion for the indicator

Parameters
[in]meanpropValue of the mean proportion (raw scale)

◆ setPreCondParams()

void OptimCostBinary::setPreCondParams ( int  chebncmax = 10001,
double  chebtol = 5.e-3 
)
inline

Set the constant parameters for internal Pre-Conditioner

◆ toggleSeismic()

void OptimCostBinary::toggleSeismic ( bool  status)

Toggle the use of the Seismic constraint

Parameters
[in]statusStatus assigned to the Seismic Constraints
Remarks
When the Seismic is not defined (i.e. 'projSeis not defined)
this function is useless

The documentation for this class was generated from the following files: