11 #ifndef _ICEVELOCITYSOLVER_H_ 12 #define _ICEVELOCITYSOLVER_H_ 17 #include "AMRMultiGrid.H" 19 #include "RefCountedPtr.H" 20 #include "LevelData.H" 21 #include "FArrayBox.H" 26 #include "NamespaceHeader.H" 51 virtual void define(
const ProblemDomain& a_coarseDomain,
54 const Vector<DisjointBoxLayout>& a_vectGrids,
55 const Vector<int>& a_vectRefRatio,
56 const RealVect& a_dxCrse,
78 virtual int solve(Vector<LevelData<FArrayBox>* >& a_horizontalVel,
79 Vector<LevelData<FArrayBox>* >& a_calvedIce,
80 Vector<LevelData<FArrayBox>* >& a_addedIce,
81 Vector<LevelData<FArrayBox>* >& a_removedIce,
82 Real& a_initialResidualNorm, Real& a_finalResidualNorm,
83 const Real a_convergenceMetric,
84 const Vector<LevelData<FArrayBox>* >& a_rhs,
85 const Vector<LevelData<FArrayBox>* >& a_C,
86 const Vector<LevelData<FArrayBox>* >& a_C0,
87 const Vector<LevelData<FArrayBox>* >& a_A,
88 const Vector<LevelData<FArrayBox>* >& a_muCoef,
89 Vector<RefCountedPtr<LevelSigmaCS > >& a_coordSys,
91 int a_lbase,
int a_maxLevel) = 0;
117 #include "NamespaceFooter.H" Abstract class to manage the nonlinear solve for the ice-sheet momentum.
Definition: IceVelocitySolver.H:32
Abstract class around the englacial constitutive relations for ice.
Definition: ConstitutiveRelation.H:34
IceVelocitySolver()
Definition: IceVelocitySolver.H:36
Physical/domain initial and boundary conditions for ice-sheet problems.
Definition: IceThicknessIBC.H:84
int m_verbosity
Definition: IceVelocitySolver.H:113
virtual void setMaxIterations(int a_max_iter)
if relevant, set max number of solver iterations
Definition: IceVelocitySolver.H:99
virtual void setVerbosity(int a_verbosity)
Definition: IceVelocitySolver.H:93
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
virtual ~IceVelocitySolver()
Definition: IceVelocitySolver.H:38
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!]...
Virtual base class for basal friction relations.
Definition: BasalFrictionRelation.H:27
virtual bool isDefined()
Definition: IceVelocitySolver.H:107
bool m_isDefined
Definition: IceVelocitySolver.H:112
virtual void setTolerance(Real a_tolerance)
if relevant, set solver tolerance
Definition: IceVelocitySolver.H:105