BISICLES AMR ice sheet model
0.9
|
Abstract class to manage the nonlinear solve for the ice-sheet momentum. More...
#include <IceVelocitySolver.H>
Public Member Functions | |
IceVelocitySolver () | |
virtual | ~IceVelocitySolver () |
virtual void | define (const ProblemDomain &a_coarseDomain, ConstitutiveRelation *a_constRel, BasalFrictionRelation *a_FrictionRel, const Vector< DisjointBoxLayout > &a_vectGrids, const Vector< int > &a_vectRefRatio, const RealVect &a_dxCrse, IceThicknessIBC *a_bc, int a_numLevels)=0 |
(Re-)define IceVelocitySolver object for a given mesh and set of physics rules More... | |
virtual int | solve (Vector< LevelData< FArrayBox > * > &a_horizontalVel, Vector< LevelData< FArrayBox > * > &a_calvedIce, Vector< LevelData< FArrayBox > * > &a_addedIce, Vector< LevelData< FArrayBox > * > &a_removedIce, Real &a_initialResidualNorm, Real &a_finalResidualNorm, const Real a_convergenceMetric, const Vector< LevelData< FArrayBox > * > &a_rhs, const Vector< LevelData< FArrayBox > * > &a_C, const Vector< LevelData< FArrayBox > * > &a_C0, const Vector< LevelData< FArrayBox > * > &a_A, const Vector< LevelData< FArrayBox > * > &a_muCoef, Vector< RefCountedPtr< LevelSigmaCS > > &a_coordSys, Real a_time, int a_lbase, int a_maxLevel)=0 |
Compute the horizontal, cell centered ice velocity ( u(x,y), v(x,y) ) [VERTICALLY INTEGRATED MODELS!]. More... | |
virtual void | setVerbosity (int a_verbosity) |
virtual void | setMaxIterations (int a_max_iter) |
if relevant, set max number of solver iterations More... | |
virtual void | setTolerance (Real a_tolerance) |
if relevant, set solver tolerance More... | |
virtual bool | isDefined () |
Protected Attributes | |
bool | m_isDefined |
int | m_verbosity |
Abstract class to manage the nonlinear solve for the ice-sheet momentum.
This is a virtual base class to facilitate the implementation of different solution algorithms.
|
inline |
References m_isDefined.
|
pure virtual |
(Re-)define IceVelocitySolver object for a given mesh and set of physics rules
a_coarseDomain | domain boundaries on the coarsest level |
a_constRel | physics rule (e.g Glen's flow law) relating englacial stress and strian-rate |
a_FrictionRel | physics rule (e.g Weertman law) relating basal stress and strain-rate |
a_vectGrids | mesh layout for each level |
a_vectGrids | refinement ratio for each level |
a_dxCrse | mesh spacing on coarsest level |
a_bc | ice thickness and velocity boundary conditions |
a_numLevels | number of mesh levels. |
Implemented in InverseVerticallyIntegratedVelocitySolver, PythonInterface::PythonVelocitySolver, FASIceSolver, PetscIceSolver, and KnownVelocitySolver.
Referenced by InverseVerticallyIntegratedVelocitySolver::define(), AmrIce::defineSolver(), InverseVerticallyIntegratedVelocitySolver::nDoF(), JFNKSolver::Configuration::parse(), PetscIceSolver::solve(), AmrIce::solveVelocityField(), and ~IceVelocitySolver().
|
inlinevirtual |
References m_isDefined.
|
inlinevirtual |
if relevant, set max number of solver iterations
default implementation does nothing – it's assumed that derived classes will implement this in a meaningful way
Reimplemented in FASIceSolver, and PetscIceSolver.
Referenced by AmrIce::defineSolver(), and AmrIce::solveVelocityField().
|
inlinevirtual |
if relevant, set solver tolerance
default implementation does nothing – it's assumed that derived classes will implement this in a meaningful way
Reimplemented in FASIceSolver, and PetscIceSolver.
Referenced by AmrIce::defineSolver(), and AmrIce::solveVelocityField().
|
inlinevirtual |
Reimplemented in FASIceSolver, and PetscIceSolver.
References m_verbosity.
Referenced by AmrIce::defineSolver().
|
pure virtual |
Compute the horizontal, cell centered ice velocity ( u(x,y), v(x,y) ) [VERTICALLY INTEGRATED MODELS!].
a_horizontalVel | on input an initial guess ( u_0(x,y), v_0(x,y) ), on output ( u(x,y), v(x,y) ) |
a_initialResidualNorm | residual norm given the initial guess |
a_finalResidualNorm | residual norm at the end of the calculation |
a_convergenceMetric | desired a_finalResidualNorm/a_initialResidualNorm |
a_rhs | right hand side of the stress balance equation: the driving stress (x,y) components |
a_C | main basal friction coefficient : ![]() |
a_C0 | auxilliary basal friction coefficient : ![]() |
a_A | flow rate factor: one component per layer |
a_muCoef | stiffness factor: one component |
a_coordSys | ice sheet geoemtry |
a_time | current time |
a_lbase | lowest mesh level (probably doesn't work!) |
a_maxLevel | highest mesh level |
Implemented in InverseVerticallyIntegratedVelocitySolver, PythonInterface::PythonVelocitySolver, JFNKSolver, PetscIceSolver, and KnownVelocitySolver.
Referenced by InverseVerticallyIntegratedVelocitySolver::define(), AmrIce::solveVelocityField(), and ~IceVelocitySolver().
|
protected |
Referenced by IceVelocitySolver(), and isDefined().
|
protected |
Referenced by setVerbosity(), and FASIceSolver::setVerbosity().