BISICLES AMR ice sheet model  0.9
KnownVelocitySolver.H
Go to the documentation of this file.
1 #ifdef CH_LANG_CC
2 /*
3  * _______ __
4  * / ___/ / ___ __ _ / / ___
5  * / /__/ _ \/ _ \/ V \/ _ \/ _ \
6  * \___/_//_/\___/_/_/_/_.__/\___/
7  * Please refer to Copyright.txt, in Chombo's root directory.
8  */
9 #endif
10 
11 #ifndef _KNOWNVELSOLVER_H_
12 #define _KNOWNVELSOLVER_H_
13 
14 #include "IceVelocitySolver.H"
15 #include "RealFunction.H"
16 #include "NamespaceHeader.H"
21 {
22 
23  // Real m_wavenumber, m_phase, m_amplitude;
24  //RealVect m_u0,m_k, m_length;
25  Vector<RealVect> m_dx;
26  RealFunction<RealVect>* m_velFunctionPtr;
27 
28 public:
29 
31  {
32  if (m_velFunctionPtr != NULL)
33  delete m_velFunctionPtr;
34  }
35 
36  virtual void define(const ProblemDomain& a_coarseDomain,
37  ConstitutiveRelation* a_constRel,
38  BasalFrictionRelation* a_basalFrictionRel,
39  const Vector<DisjointBoxLayout>& a_vectGrids,
40  const Vector<int>& a_vectRefRatio,
41  const RealVect& a_dxCrse,
42  IceThicknessIBC* a_bc,
43  int a_numLevels);
44 
45  //full solve
46  virtual int solve(Vector<LevelData<FArrayBox>* >& a_horizontalVel,
47  Vector<LevelData<FArrayBox>* >& a_calvedIce,
48  Vector<LevelData<FArrayBox>* >& a_addedIce,
49  Vector<LevelData<FArrayBox>* >& a_removedIce,
50  Real& a_initialResidualNorm, Real& a_finalResidualNorm,
51  const Real a_convergenceMetric,
52  const Vector<LevelData<FArrayBox>* >& a_rhs,
53  const Vector<LevelData<FArrayBox>* >& a_beta,
54  const Vector<LevelData<FArrayBox>* >& a_beta0,
55  const Vector<LevelData<FArrayBox>* >& a_A,
56  const Vector<LevelData<FArrayBox>* >& a_muCoef,
57  Vector<RefCountedPtr<LevelSigmaCS > >& a_coordSys,
58  Real a_time,
59  int a_lbase, int a_maxLevel) ;
60 
61 };
62 #include "NamespaceFooter.H"
63 #endif
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
Physical/domain initial and boundary conditions for ice-sheet problems.
Definition: IceThicknessIBC.H:84
~KnownVelocitySolver()
Definition: KnownVelocitySolver.H:30
virtual void define(const ProblemDomain &a_coarseDomain, ConstitutiveRelation *a_constRel, BasalFrictionRelation *a_basalFrictionRel, const Vector< DisjointBoxLayout > &a_vectGrids, const Vector< int > &a_vectRefRatio, const RealVect &a_dxCrse, IceThicknessIBC *a_bc, int a_numLevels)
(Re-)define IceVelocitySolver object for a given mesh and set of physics rules
Definition: KnownVelocitySolver.cpp:15
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_beta, const Vector< LevelData< FArrayBox > * > &a_beta0, 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)
Compute the horizontal, cell centered ice velocity ( u(x,y), v(x,y) ) [VERTICALLY INTEGRATED MODELS!]...
Definition: KnownVelocitySolver.cpp:58
Virtual base class for basal friction relations.
Definition: BasalFrictionRelation.H:27
Definition: KnownVelocitySolver.H:20