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