BISICLES AMR ice sheet model
0.9
|
Data read through ParmParse. More...
#include <InverseVerticallyIntegratedVelocitySolver.H>
Public Types | |
enum | BoundMethod { none, projection, MAX_BOUND_METHOD } |
enum | VelocityMisfitType { speed, velocity, log_speed, MAX_VELOCITY_MISFIT_TYPE } |
Public Member Functions | |
Configuration () | |
~Configuration () | |
void | parse (const char *a_prefix="control") |
parse parameters from <prefix>.* section of ParmParse table More... | |
Public Attributes | |
int | m_minLevelForOptimization |
Do not attempt to optimize unless the mesh has at least m_minLevel levels. More... | |
Real | m_minTimeBetweenOptimizations |
Real | m_dtTypical |
estimate of typical timestep. Just here to turn times into integers for file names More... | |
BoundMethod | m_boundMethod |
Method to enforce constraints: none, or projection. default projection. More... | |
VelocityMisfitType | m_velMisfitType |
Type of velocity misfit : speed, velocity, or log_speed. Set with <prefix>.vel_misfit_type, default speed. More... | |
bool | m_optimizeX0 |
attempt to optimize w.r.t X0? More... | |
bool | m_optimizeX1 |
attempt to optimize w.r.t X1? More... | |
bool | m_gradMuCoefShelfOnly |
evaluate unregluarized gradient of objective with respect to mucoef (or rather, X1) in the shelf only? More... | |
Real | m_lowerX0 |
Lower bound on ![]() | |
Real | m_upperX0 |
Upper bound on ![]() | |
Real | m_lowerX1 |
Lower bound on ![]() | |
Real | m_upperX1 |
Upper bound on ![]() | |
Real | m_initialLowerMuCoef |
Lower bound on ![]() | |
Real | m_initialUpperMuCoef |
Upper bound on ![]() | |
Real | m_initialLowerC |
Lower bound on ![]() | |
Real | m_initialUpperC |
Upper bound on ![]() | |
Real | m_velMisfitCoefficient |
Coefficient of ![]() ![]() | |
Real | m_divuhMisfitCoefficient |
Coefficient of ![]() ![]() | |
Real | m_divuhMisfitSmooth |
If ![]() ![]() | |
Real | m_gradCsqRegularization |
Coefficient of ![]() ![]() | |
Real | m_gradMuCoefsqRegularization |
Coefficient of ![]() ![]() | |
Real | m_gradX0sqRegularization |
Coefficient of ![]() ![]() | |
Real | m_gradX1sqRegularization |
Coefficient of ![]() ![]() | |
Real | m_X0Regularization |
Coefficient of ![]() ![]() | |
Real | m_X1Regularization |
Coefficient of ![]() ![]() | |
Real | m_X0TimeRegularization |
Coefficient of ![]() ![]() | |
Real | m_X1TimeRegularization |
Coefficient of ![]() ![]() | |
Real | m_thicknessThreshold |
Limit domain of integration ![]() | |
Real | m_CGmaxIter |
Maximum number of 'outer' nonlinear conjugate gradient iterations. Set with <prefix>.CGmaxIter, default 16. More... | |
Real | m_CGtol |
Tolerance for the 'outer' nonlinear conjugate gradient method. Set with <prefix>.CGtol, default 1.0e-3. More... | |
Real | m_CGsecantParameter |
Size of the initial 'inner' secant step. Set with <prefix>.CGsecantParameter, default 1.0e-7. More... | |
Real | m_CGsecantStepMaxGrow |
![]() ![]() ![]() | |
int | m_CGsecantMaxIter |
Maximum number of 'outer' secant iterations. Set with <prefix>.CGsecantMaxIter, default 20. More... | |
Real | m_CGsecantTol |
Tolerance for the 'inner' secant method. Set with <prefix>.CGsecantTol, default 1.0e-1. More... | |
Real | m_CGhang |
Give up when succesive CG steps don't progress quickly enough . Set with <prefix>.CGhang, default 0.999. More... | |
Real | m_CGrestartInterval |
Restart CG at a fixed interval. Set with <prefix>.CGrestartInterval, default 9999. More... | |
SurfaceData * | m_velObs_c |
observed velocity data coefficient More... | |
SurfaceData * | m_velObs_x |
observed x-velocity data More... | |
SurfaceData * | m_velObs_y |
observed y-velocity data More... | |
bool | m_writeInnerSteps |
write inner (secant) steps to plot files More... | |
std::string | m_innerStepFileNameBase |
base of filename for 'inner' plots More... | |
std::string | m_outerStepFileNameBase |
base of filename for 'outer' plots More... | |
SurfaceData * | m_divuhObs_c |
observed flux divergence data coefficient More... | |
SurfaceData * | m_divuhObs_a |
observed flux divergence data More... | |
SurfaceData * | m_gradientFactor |
used to amplify (damp) the gradient non-uniformly More... | |
int | m_outerCounter |
Data read through ParmParse.
InverseVerticallyIntegratedVelocitySolver::Configuration::Configuration | ( | ) |
InverseVerticallyIntegratedVelocitySolver::Configuration::~Configuration | ( | ) |
References m_velObs_c, m_velObs_x, and m_velObs_y.
void InverseVerticallyIntegratedVelocitySolver::Configuration::parse | ( | const char * | a_prefix = "control" | ) |
parse parameters from <prefix>.* section of ParmParse table
a_prefix | prefix string in the ParmParse table |
References InverseVerticallyIntegratedVelocitySolver::define(), and SurfaceFlux::parse().
Referenced by InverseVerticallyIntegratedVelocitySolver::define().
BoundMethod InverseVerticallyIntegratedVelocitySolver::Configuration::m_boundMethod |
Method to enforce constraints: none, or projection. default projection.
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_CGhang |
Give up when succesive CG steps don't progress quickly enough . Set with <prefix>.CGhang, default 0.999.
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_CGmaxIter |
Maximum number of 'outer' nonlinear conjugate gradient iterations. Set with <prefix>.CGmaxIter, default 16.
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_CGrestartInterval |
Restart CG at a fixed interval. Set with <prefix>.CGrestartInterval, default 9999.
Referenced by InverseVerticallyIntegratedVelocitySolver::nDoF().
int InverseVerticallyIntegratedVelocitySolver::Configuration::m_CGsecantMaxIter |
Maximum number of 'outer' secant iterations. Set with <prefix>.CGsecantMaxIter, default 20.
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_CGsecantParameter |
Size of the initial 'inner' secant step. Set with <prefix>.CGsecantParameter, default 1.0e-7.
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_CGsecantStepMaxGrow |
such that secant step
has a maximum length
. Set with <prefix>.CGsecantStepMaxGrow, default 2.0
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_CGsecantTol |
Tolerance for the 'inner' secant method. Set with <prefix>.CGsecantTol, default 1.0e-1.
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_CGtol |
Tolerance for the 'outer' nonlinear conjugate gradient method. Set with <prefix>.CGtol, default 1.0e-3.
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_divuhMisfitCoefficient |
Coefficient of in
. Set with <prefix>.divuhMisfitCoefficient default 1.0.
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_divuhMisfitSmooth |
If , smooth
. Set with <prefix>.divuhMisfitSmooth, default 0.0.
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient().
SurfaceData* InverseVerticallyIntegratedVelocitySolver::Configuration::m_divuhObs_a |
observed flux divergence data
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
SurfaceData* InverseVerticallyIntegratedVelocitySolver::Configuration::m_divuhObs_c |
observed flux divergence data coefficient
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_dtTypical |
estimate of typical timestep. Just here to turn times into integers for file names
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_gradCsqRegularization |
Coefficient of in
. Set with <prefix>.gradCsqRegularization.
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient(), and InverseVerticallyIntegratedVelocitySolver::nDoF().
SurfaceData* InverseVerticallyIntegratedVelocitySolver::Configuration::m_gradientFactor |
used to amplify (damp) the gradient non-uniformly
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient().
bool InverseVerticallyIntegratedVelocitySolver::Configuration::m_gradMuCoefShelfOnly |
evaluate unregluarized gradient of objective with respect to mucoef (or rather, X1) in the shelf only?
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_gradMuCoefsqRegularization |
Coefficient of in
. Set with <prefix>.gradMuCoefsqRegularization.
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient(), and InverseVerticallyIntegratedVelocitySolver::nDoF().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_gradX0sqRegularization |
Coefficient of in
. Set with <prefix>.gradX0sqRegularization.
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient(), and InverseVerticallyIntegratedVelocitySolver::nDoF().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_gradX1sqRegularization |
Coefficient of in
. Set with <prefix>.gradX1sqRegularization.
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient(), and InverseVerticallyIntegratedVelocitySolver::nDoF().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_initialLowerC |
Lower bound on . Set with <prefix>.initialLowerC.
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_initialLowerMuCoef |
Lower bound on . Set with <prefix>.initialLowerMuCoef.
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_initialUpperC |
Upper bound on . Set with <prefix>.initialUpperC.
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_initialUpperMuCoef |
Upper bound on . Set with <prefix>.initialUpperMuCoef.
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
std::string InverseVerticallyIntegratedVelocitySolver::Configuration::m_innerStepFileNameBase |
base of filename for 'inner' plots
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_lowerX0 |
Lower bound on . Set with with <prefix>.lowerX0.
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient(), and InverseVerticallyIntegratedVelocitySolver::nDoF().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_lowerX1 |
Lower bound on . Set with with <prefix>.lowerX1.
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient(), and InverseVerticallyIntegratedVelocitySolver::nDoF().
int InverseVerticallyIntegratedVelocitySolver::Configuration::m_minLevelForOptimization |
Do not attempt to optimize unless the mesh has at least m_minLevel levels.
Do not atttempt optimizion until the mesh has been refined to some desired level. Instead, just fill and
with the initial guess, and return the observed velocity as the solution. This really only makes sense if the we want to use the observed velocity in a refinemnt criterion. That approach was sucessful in the older AMRIceControl class (which did its own refinement), so this parameter exists to support that
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_minTimeBetweenOptimizations |
time delay between optmizations. Allows time-dependent inverse problems without re-doing the optimization at every time step.
Referenced by InverseVerticallyIntegratedVelocitySolver::solve().
bool InverseVerticallyIntegratedVelocitySolver::Configuration::m_optimizeX0 |
attempt to optimize w.r.t X0?
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient().
bool InverseVerticallyIntegratedVelocitySolver::Configuration::m_optimizeX1 |
attempt to optimize w.r.t X1?
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient().
int InverseVerticallyIntegratedVelocitySolver::Configuration::m_outerCounter |
std::string InverseVerticallyIntegratedVelocitySolver::Configuration::m_outerStepFileNameBase |
base of filename for 'outer' plots
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_thicknessThreshold |
Limit domain of integration to regions where ice thickness exceeds this value. Set with <prefix>.thicknessThreshold, default 100.0 m.
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_upperX0 |
Upper bound on . Set with with <prefix>.upperX0.
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient(), and InverseVerticallyIntegratedVelocitySolver::nDoF().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_upperX1 |
Upper bound on . Set with with <prefix>.upperX1.
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient(), and InverseVerticallyIntegratedVelocitySolver::nDoF().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_velMisfitCoefficient |
Coefficient of in
. Set with <prefix>.velMisfitCoefficient, default 1.0.
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient().
VelocityMisfitType InverseVerticallyIntegratedVelocitySolver::Configuration::m_velMisfitType |
Type of velocity misfit : speed, velocity, or log_speed. Set with <prefix>.vel_misfit_type, default speed.
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient().
SurfaceData* InverseVerticallyIntegratedVelocitySolver::Configuration::m_velObs_c |
observed velocity data coefficient
Referenced by InverseVerticallyIntegratedVelocitySolver::solve(), and ~Configuration().
SurfaceData* InverseVerticallyIntegratedVelocitySolver::Configuration::m_velObs_x |
observed x-velocity data
Referenced by InverseVerticallyIntegratedVelocitySolver::solve(), and ~Configuration().
SurfaceData* InverseVerticallyIntegratedVelocitySolver::Configuration::m_velObs_y |
observed y-velocity data
Referenced by InverseVerticallyIntegratedVelocitySolver::solve(), and ~Configuration().
bool InverseVerticallyIntegratedVelocitySolver::Configuration::m_writeInnerSteps |
write inner (secant) steps to plot files
Referenced by InverseVerticallyIntegratedVelocitySolver::computeObjectiveAndGradient().
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_X0Regularization |
Coefficient of in
. Set with <prefix>.X0Regularization.
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_X0TimeRegularization |
Coefficient of in
. Set with <prefix>.X0TimeRegularization.
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_X1Regularization |
Coefficient of in
. Set with <prefix>.X1Regularization.
Real InverseVerticallyIntegratedVelocitySolver::Configuration::m_X1TimeRegularization |
Coefficient of in
. Set with <prefix>.X1TimeRegularization.