24 #ifndef DBLDEF_ANALYSIS_CONTROL 
   25 #define DBLDEF_ANALYSIS_CONTROL 
  133     enum TypeOfAnisotropy {
 
  135         AXIAL_ANISOTROPY = 1,
 
  285     int getTypeOfAnisotropy() 
const;
 
  288     bool isAnisotropyConsidered() 
const;
 
  312         std::cerr << 
"Error : Copy constructer of the class AnalysisControl is not implemented." 
  319         std::cerr << 
"Error : Assignment operator of the class AnalysisControl is not implemented." 
  577     int m_typeOfAnisotropy;
 
  585                                                                         const int iCutbackCur);
 
  589     bool checkConvergence(
const double objectFunctionalCur, 
const double dataMisft,
 
  590                           const double modelRoughness, 
const double normDist1 = 0.0,
 
  591                           const double normDist2 = 0.0);
 
Definition: AnalysisControl.h:44
 
bool doesCalculateSensitivity(const int iter) const
Definition: AnalysisControl.cpp:2398
 
int getTypeOfDistortion() const
Definition: AnalysisControl.cpp:1877
 
const MeshDataBrickElement * getPointerOfMeshDataBrickElement() const
Definition: AnalysisControl.cpp:1994
 
bool m_continueWithoutCutback
Definition: AnalysisControl.h:499
 
Inversion * m_ptrInversion
Definition: AnalysisControl.h:474
 
double m_objectFunctionalPre
Definition: AnalysisControl.h:477
 
int m_orderOfFiniteElement
Definition: AnalysisControl.h:387
 
ConvergenceBehaviors
Definition: AnalysisControl.h:96
 
@ GO_TO_NEXT_ITERATION
Definition: AnalysisControl.h:98
 
@ DURING_RETRIALS
Definition: AnalysisControl.h:97
 
@ INVERSIN_CONVERGED
Definition: AnalysisControl.h:99
 
double m_normOfRotationsPre
Definition: AnalysisControl.h:492
 
bool isTypeOfElectricFieldSetIndivisually() const
Definition: AnalysisControl.cpp:1886
 
static const int BOUNDARY_BOTTOM_PERFECT_CONDUCTOR
Definition: AnalysisControl.h:50
 
double m_tradeOffParameterForResistivityValue
Definition: AnalysisControl.h:405
 
double m_factorDecreasingStepLength
Definition: AnalysisControl.h:453
 
int getTypeOfMesh() const
Definition: AnalysisControl.cpp:1869
 
int m_totalPE
Definition: AnalysisControl.h:378
 
Forward3DNonConformingHexaElement0thOrder * m_ptrForward3DNonConformingHexaElement0thOrder
Definition: AnalysisControl.h:471
 
bool m_useDifferenceFilter
Definition: AnalysisControl.h:558
 
BackwardOrForwardElement
Definition: AnalysisControl.h:72
 
@ BACKWARD_ELEMENT
Definition: AnalysisControl.h:73
 
@ FORWARD_ELEMENT
Definition: AnalysisControl.h:74
 
void inputControlData()
Definition: AnalysisControl.cpp:483
 
double m_normOfDistortionMatrixDifferencesPre
Definition: AnalysisControl.h:486
 
bool m_isObsLocMovedToCenter
Definition: AnalysisControl.h:546
 
int getIterationNumCurrent() const
Definition: AnalysisControl.cpp:1785
 
int m_numOfIterIncreaseStepLength
Definition: AnalysisControl.h:450
 
int m_typeOfDataSpaceAlgorithm
Definition: AnalysisControl.h:555
 
void run()
Definition: AnalysisControl.cpp:168
 
int getDivisionNumberOfMultipleRHSInForward() const
Definition: AnalysisControl.cpp:1899
 
int m_iterationNumMax
Definition: AnalysisControl.h:426
 
int m_myPE
Definition: AnalysisControl.h:375
 
int m_maxIterationIRWLSForLpOptimization
Definition: AnalysisControl.h:570
 
bool m_binaryOutput
Definition: AnalysisControl.h:530
 
bool isTypeOfOwnerElementSetIndivisually() const
Definition: AnalysisControl.cpp:1894
 
AnalysisControl(const AnalysisControl &rhs)
Definition: AnalysisControl.h:311
 
const MeshDataNonConformingHexaElement * getPointerOfMeshDataNonConformingHexaElement() const
Definition: AnalysisControl.cpp:2017
 
const MeshData * getPointerOfMeshData() const
Definition: AnalysisControl.cpp:1984
 
int getIterationNumMax() const
Definition: AnalysisControl.cpp:1788
 
double getLowerLimitOfDifflog10RhoForLpOptimization() const
Definition: AnalysisControl.cpp:1950
 
bool checkConvergence(const double objectFunctionalCur)
Definition: AnalysisControl.cpp:2339
 
double m_modelRoughnessPre
Definition: AnalysisControl.h:483
 
int getTotalPE() const
Definition: AnalysisControl.cpp:1767
 
TypeOfDataSpaceAlgorithm
Definition: AnalysisControl.h:126
 
@ NEW_DATA_SPACE_ALGORITHM
Definition: AnalysisControl.h:127
 
@ NEW_DATA_SPACE_ALGORITHM_USING_INV_RTR_MATRIX
Definition: AnalysisControl.h:128
 
Forward3DBrickElement0thOrder * m_ptrForward3DBrickElement0thOrder
Definition: AnalysisControl.h:465
 
Forward3D * getPointerOfForward3D() const
Definition: AnalysisControl.cpp:2403
 
double m_dataMisfitPre
Definition: AnalysisControl.h:480
 
bool getIsOutput2DResult() const
Definition: AnalysisControl.cpp:1779
 
int m_iterationNumCurrent
Definition: AnalysisControl.h:429
 
int geTypeOfRoughningMatrix() const
Definition: AnalysisControl.cpp:1880
 
int m_degreeOfLpOptimization
Definition: AnalysisControl.h:561
 
bool doesOutputToVTK(const int paramID) const
Definition: AnalysisControl.cpp:1825
 
const MeshDataTetraElement * getPointerOfMeshDataTetraElement() const
Definition: AnalysisControl.cpp:2005
 
void calcForwardComputation(const int iter)
Definition: AnalysisControl.cpp:2029
 
double m_thresholdIRWLSForLpOptimization
Definition: AnalysisControl.h:573
 
int m_numThreads
Definition: AnalysisControl.h:381
 
double m_stepLengthDampingFactorCur
Definition: AnalysisControl.h:440
 
int getApparentResistivityAndPhaseTreatmentOption() const
Definition: AnalysisControl.cpp:1931
 
double m_tradeOffParameterForDistortionGain
Definition: AnalysisControl.h:411
 
double m_thresholdValueForDecreasing
Definition: AnalysisControl.h:432
 
double getStepLengthDampingFactorCur() const
Definition: AnalysisControl.cpp:1858
 
double getTradeOffParameterForDistortionMatrixComplexity() const
Definition: AnalysisControl.cpp:1839
 
double m_upperLimitOfDifflog10RhoForLpOptimization
Definition: AnalysisControl.h:567
 
int getBoundaryConditionBottom() const
Definition: AnalysisControl.cpp:1758
 
double m_lowerLimitOfDifflog10RhoForLpOptimization
Definition: AnalysisControl.h:564
 
int getNumThreads() const
Definition: AnalysisControl.cpp:1770
 
int m_numConsecutiveIterFunctionalDecreasing
Definition: AnalysisControl.h:496
 
int m_modeOfPARDISO
Definition: AnalysisControl.h:390
 
const UseBackwardOrForwardElement getUseBackwardOrForwardElement() const
Definition: AnalysisControl.cpp:1819
 
double m_tradeOffParameterForDistortionMatrixComplexity
Definition: AnalysisControl.h:408
 
int m_apparentResistivityAndPhaseTreatmentOption
Definition: AnalysisControl.h:549
 
int getTypeOfOwnerElement() const
Definition: AnalysisControl.cpp:1891
 
int getNumberingMethod() const
Definition: AnalysisControl.cpp:1776
 
double m_alphaWeight[3]
Definition: AnalysisControl.h:536
 
int m_inversionMethod
Definition: AnalysisControl.h:543
 
int m_numberingMethod
Definition: AnalysisControl.h:393
 
numbering
Definition: AnalysisControl.h:64
 
@ ZXY
Definition: AnalysisControl.h:68
 
@ NOT_ASSIGNED
Definition: AnalysisControl.h:65
 
@ XYZ
Definition: AnalysisControl.h:66
 
@ YZX
Definition: AnalysisControl.h:67
 
bool m_positiveDefiniteNormalEqMatrix
Definition: AnalysisControl.h:540
 
static const int BOUNDARY_BOTTOM_ONE_DIMENSIONAL
Definition: AnalysisControl.h:47
 
int getMyPE() const
Definition: AnalysisControl.cpp:1764
 
double getTradeOffParameterForGainsOfDistortionMatrix() const
Definition: AnalysisControl.cpp:1845
 
AnalysisControl::ConvergenceBehaviors adjustStepLengthDampingFactor(const int iterCur, const int iCutbackCur)
Definition: AnalysisControl.cpp:2098
 
int m_boundaryConditionBottom
Definition: AnalysisControl.h:384
 
double m_stepLengthDampingFactorMin
Definition: AnalysisControl.h:443
 
int getTypeOfDataSpaceAlgorithm() const
Definition: AnalysisControl.cpp:1941
 
bool holdMemoryForwardSolver() const
Definition: AnalysisControl.cpp:1866
 
int getIsObsLocMovedToCenter() const
Definition: AnalysisControl.cpp:1928
 
std::string outputElapsedTime() const
Definition: AnalysisControl.cpp:1747
 
bool m_holdMemoryForwardSolver
Definition: AnalysisControl.h:462
 
int getOrderOfFiniteElement() const
Definition: AnalysisControl.cpp:1761
 
int m_typeOfMesh
Definition: AnalysisControl.h:505
 
bool writeBinaryFormat() const
Definition: AnalysisControl.cpp:1921
 
double getUpperLimitOfDifflog10RhoForLpOptimization() const
Definition: AnalysisControl.cpp:1955
 
bool m_isTypeOfOwnerElementSetIndivisually
Definition: AnalysisControl.h:521
 
double getAlphaWeight(const int iDir) const
Definition: AnalysisControl.cpp:1909
 
int m_typeOfOwnerElement
Definition: AnalysisControl.h:517
 
int m_maxMemoryPARDISO
Definition: AnalysisControl.h:502
 
int m_typeOfRoughningMatrix
Definition: AnalysisControl.h:508
 
bool getPositiveDefiniteNormalEqMatrix() const
Definition: AnalysisControl.cpp:1916
 
UseBackwardOrForwardElement m_useBackwardOrForwardElement
Definition: AnalysisControl.h:420
 
bool useDifferenceFilter() const
Definition: AnalysisControl.cpp:1944
 
int getTypeOfElectricField() const
Definition: AnalysisControl.cpp:1883
 
int m_iterationNumInit
Definition: AnalysisControl.h:423
 
~AnalysisControl()
Definition: AnalysisControl.cpp:147
 
AppResPhaseTreatmentOption
Definition: AnalysisControl.h:120
 
@ USE_Z_IF_SIGN_OF_RE_Z_DIFFER
Definition: AnalysisControl.h:122
 
@ NO_SPECIAL_TREATMENT_APP_AND_PHASE
Definition: AnalysisControl.h:121
 
int getDegreeOfLpOptimization() const
Definition: AnalysisControl.cpp:1947
 
AnalysisControl & operator=(const AnalysisControl &rhs)
Definition: AnalysisControl.h:318
 
bool m_isOutput2DResult
Definition: AnalysisControl.h:399
 
int m_divisionNumberOfMultipleRHSInInversion
Definition: AnalysisControl.h:527
 
double getThresholdIRWLSForLpOptimization() const
Definition: AnalysisControl.cpp:1965
 
double m_normOfGainsPre
Definition: AnalysisControl.h:489
 
int m_numCutbackMax
Definition: AnalysisControl.h:459
 
AnalysisControl()
Definition: AnalysisControl.cpp:59
 
int getDivisionNumberOfMultipleRHSInInversion() const
Definition: AnalysisControl.cpp:1904
 
Forward3DTetraElement0thOrder * m_ptrForward3DTetraElement0thOrder
Definition: AnalysisControl.h:468
 
int getNumCutbackMax() const
Definition: AnalysisControl.cpp:1863
 
int getInversionMethod() const
Definition: AnalysisControl.cpp:1924
 
int m_typeOfElectricField
Definition: AnalysisControl.h:511
 
int m_divisionNumberOfMultipleRHSInForward
Definition: AnalysisControl.h:524
 
double getTradeOffParameterForResistivityValue() const
Definition: AnalysisControl.cpp:1834
 
int getModeOfPARDISO() const
Definition: AnalysisControl.cpp:1773
 
int getMaxIterationIRWLSForLpOptimization() const
Definition: AnalysisControl.cpp:1960
 
int getIterationNumInit() const
Definition: AnalysisControl.cpp:1782
 
controlParameterID
Definition: AnalysisControl.h:328
 
@ APP_PHS_OPTION
Definition: AnalysisControl.h:362
 
@ STEP_LENGTH
Definition: AnalysisControl.h:342
 
@ BOUNDARY_CONDITION_BOTTOM
Definition: AnalysisControl.h:329
 
@ DATA_SPACE_METHOD
Definition: AnalysisControl.h:364
 
@ FWD_SOLVER
Definition: AnalysisControl.h:331
 
@ MOVE_OBS_LOC
Definition: AnalysisControl.h:360
 
@ DIV_NUM_RHS_INV
Definition: AnalysisControl.h:348
 
@ NUM_THREADS
Definition: AnalysisControl.h:330
 
@ EndOfControlParameterID
Definition: AnalysisControl.h:368
 
@ ITERATION
Definition: AnalysisControl.h:338
 
@ INV_MAT_POSITIVE_DEFINITE
Definition: AnalysisControl.h:353
 
@ OUTPUT_OPTION
Definition: AnalysisControl.h:335
 
@ BOUNDS_DIST_THLD
Definition: AnalysisControl.h:357
 
@ DIV_NUM_RHS_FWD
Definition: AnalysisControl.h:347
 
@ IDW
Definition: AnalysisControl.h:358
 
@ HOLD_FWD_MEM
Definition: AnalysisControl.h:351
 
@ DISTORTION
Definition: AnalysisControl.h:344
 
@ MEM_LIMIT
Definition: AnalysisControl.h:332
 
@ OUTPUT_ROUGH_MATRIX
Definition: AnalysisControl.h:363
 
@ BOTTOM_RESISTIVITY
Definition: AnalysisControl.h:354
 
@ ELEC_FIELD
Definition: AnalysisControl.h:346
 
@ ROUGH_MATRIX
Definition: AnalysisControl.h:345
 
@ SMALL_VALUE
Definition: AnalysisControl.h:359
 
@ BOTTOM_ROUGHNING_FACTOR
Definition: AnalysisControl.h:355
 
@ DECREASE_THRESHOLD
Definition: AnalysisControl.h:339
 
@ RETRIAL
Definition: AnalysisControl.h:341
 
@ MESH_TYPE
Definition: AnalysisControl.h:343
 
@ TRADE_OFF_PARAM
Definition: AnalysisControl.h:337
 
@ CONVERGE
Definition: AnalysisControl.h:340
 
@ NUMBERING_METHOD
Definition: AnalysisControl.h:334
 
@ OUTPUT_2D_RESULTS
Definition: AnalysisControl.h:336
 
@ OWNER_ELEMENT
Definition: AnalysisControl.h:361
 
@ RESISTIVITY_BOUNDS
Definition: AnalysisControl.h:349
 
@ OUTPUT_PARAM
Definition: AnalysisControl.h:333
 
@ INV_METHOD
Definition: AnalysisControl.h:356
 
@ OFILE_TYPE
Definition: AnalysisControl.h:350
 
@ ALPHA_WEIGHT
Definition: AnalysisControl.h:352
 
TypeOfDistortion
Definition: AnalysisControl.h:87
 
@ ESTIMATE_GAINS_ONLY
Definition: AnalysisControl.h:92
 
@ DISTORTION_TYPE_UNDEFINED
Definition: AnalysisControl.h:88
 
@ ESTIMATE_GAINS_AND_ROTATIONS
Definition: AnalysisControl.h:91
 
@ NO_DISTORTION
Definition: AnalysisControl.h:89
 
@ ESTIMATE_DISTORTION_MATRIX_DIFFERENCE
Definition: AnalysisControl.h:90
 
bool m_isRougheningMatrixOutputted
Definition: AnalysisControl.h:552
 
std::set< int > m_outputParametersForVis
Definition: AnalysisControl.h:396
 
double m_factorIncreasingStepLength
Definition: AnalysisControl.h:456
 
outputParameterIDsForVTK
Definition: AnalysisControl.h:54
 
@ OUTPUT_MAGNETIC_FIELD_VECTORS_TO_VTK
Definition: AnalysisControl.h:57
 
@ OUTPUT_SENSITIVITY_DENSITY
Definition: AnalysisControl.h:60
 
@ OUTPUT_ELECTRIC_FIELD_VECTORS_TO_VTK
Definition: AnalysisControl.h:56
 
@ OUTPUT_RESISTIVITY_VALUES_TO_VTK
Definition: AnalysisControl.h:55
 
@ OUTPUT_SENSITIVITY
Definition: AnalysisControl.h:59
 
@ OUTPUT_CURRENT_DENSITY
Definition: AnalysisControl.h:58
 
TypeOfElectricField
Definition: AnalysisControl.h:108
 
@ USE_TANGENTIAL_ELECTRIC_FIELD
Definition: AnalysisControl.h:110
 
@ USE_HORIZONTAL_ELECTRIC_FIELD
Definition: AnalysisControl.h:109
 
double m_stepLengthDampingFactorMax
Definition: AnalysisControl.h:446
 
static AnalysisControl * getInstance()
Definition: AnalysisControl.cpp:53
 
int m_typeOfDistortion
Definition: AnalysisControl.h:533
 
static const int numParamWrittenInControlFile
Definition: AnalysisControl.h:372
 
double getTradeOffParameterForRotationsOfDistortionMatrix() const
Definition: AnalysisControl.cpp:1852
 
double m_tradeOffParameterForDistortionRotation
Definition: AnalysisControl.h:414
 
TypeOfRoughningMatrix
Definition: AnalysisControl.h:78
 
@ USER_DEFINED_ROUGHNING
Definition: AnalysisControl.h:79
 
@ USE_RESISTIVITY_BLOCKS_SHARE_FACES
Definition: AnalysisControl.h:81
 
@ USE_ELEMENTS_SHARE_FACES
Definition: AnalysisControl.h:80
 
@ USE_ELEMENTS_SHARE_FACES_AREA_VOL_RATIO
Definition: AnalysisControl.h:82
 
@ EndOfTypeOfRoughningMatrix
Definition: AnalysisControl.h:83
 
time_t m_startTime
Definition: AnalysisControl.h:417
 
bool estimateDistortionMatrix() const
Definition: AnalysisControl.cpp:1872
 
bool getIsRougheningMatrixOutputted() const
Definition: AnalysisControl.cpp:1936
 
double m_decreaseRatioForConvegence
Definition: AnalysisControl.h:437
 
bool m_isTypeOfElectricFieldSetIndivisually
Definition: AnalysisControl.h:514
 
TypeOfOwnerElement
Definition: AnalysisControl.h:114
 
@ USE_UPPER_ELEMENT
Definition: AnalysisControl.h:116
 
@ USE_LOWER_ELEMENT
Definition: AnalysisControl.h:115
 
Definition: Forward3DBrickElement0thOrder.h:33
 
Definition: Forward3DTetraElement0thOrder.h:33
 
Definition: Forward3D.h:37
 
Definition: Inversion.h:34
 
Definition: MeshDataBrickElement.h:31
 
Definition: MeshDataTetraElement.h:32
 
Definition: MeshData.h:31
 
Definition: AnalysisControl.h:102
 
enum BackwardOrForwardElement directionX
Definition: AnalysisControl.h:103
 
enum BackwardOrForwardElement directionY
Definition: AnalysisControl.h:104