BISICLES AMR ice sheet model  0.9
Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
AmrIce Class Reference

class to manage non-subcycled AMR ice-sheet model More...

#include <AmrIce.H>

Inheritance diagram for AmrIce:
Inheritance graph
[legend]
Collaboration diagram for AmrIce:
Collaboration graph
[legend]

Classes

class  Observer
 part of Observer-Observee implementation More...
 

Public Types

enum  velSolverTypes {
  Picard = 0, JFNK = 1, KnownVelocity = 2, PetscNLSolver = 3,
  FASMGAMR = 4, Python = 5, InverseVerticallyIntegrated = 6, NUM_SOLVER_TYPES
}
 compute area of ice with grounded/floating status given by a_maskval More...
 
- Public Types inherited from AmrIceBase
enum  viscousTensorComponent {
  xx, xy, yx, yy,
  max
}
 

Public Member Functions

 AmrIce ()
 Default constructor. More...
 
virtual ~AmrIce ()
 destructor More...
 
void setDefaults ()
 set default values before initialization More...
 
void initialize ()
 initializes object based on inputs data passed in through parmParse More...
 
void setDomainSize (const RealVect &a_domainSize)
 set domain size (in meters) More...
 
void setConstitutiveRelation (ConstitutiveRelation *a_constRelPtr)
 set constitutive relation More...
 
void setRateFactor (RateFactor *a_rateFactorPtr)
 set rate factor More...
 
void setBasalRateFactor (RateFactor *a_rateFactorPtr)
 set rate factor at base More...
 
void setBasalFrictionRelation (BasalFrictionRelation *a_basalFrictionRelPtr)
 set basal Friction relation More...
 
void setThicknessBC (IceThicknessIBC *a_thicknessIBC)
 set BC for thickness advection More...
 
void setInternalEnergyBC (IceInternalEnergyIBC *a_internalEnergyIBC)
 set BC for internalEnergy advection More...
 
void setSurfaceFlux (SurfaceFlux *a_surfaceFluxPtr)
 set surfact flux for ice sheet More...
 
void setBasalFlux (SurfaceFlux *a_basalFluxPtr)
 set basal flux for ice sheet More...
 
void setSurfaceHeatBoundaryData (SurfaceFlux *a_surfaceHeatBoundaryDataPtr, bool a_dirichlett, bool a_temperature)
 set surface Heat flux for ice sheet More...
 
void setBasalHeatBoundaryData (SurfaceFlux *a_basalHeatBoundaryDataPtr)
 set basal Heat flux for ice sheet. Does not include the heat flux due to sliding friction More...
 
void setTopographyFlux (SurfaceFlux *a_topographyFluxPtr)
 set bedrock flux for ice sheet More...
 
void setBasalFriction (const BasalFriction *a_basalFrictionPtr)
 set basal friction More...
 
void setMuCoefficient (const MuCoefficient *a_muCoefficientPtr)
 
void setCalvingModel (CalvingModel *a_calvingModelPtr)
 
void run (Real a_max_time, int a_max_step)
 advance solution until either max_time or max_step are reached More...
 
void timeStep (Real a_dt)
 compute one timestep More...
 
void computeH_half (Vector< LevelData< FluxBox > * > &a_H_half, Real a_dt)
 
void computeThicknessFluxes (Vector< LevelData< FluxBox > * > &a_vectFluxes, const Vector< LevelData< FluxBox > * > &a_H_half, const Vector< LevelData< FluxBox > * > &a_faceVelAdvection)
 
void updateGeometry (Vector< RefCountedPtr< LevelSigmaCS > > &a_vect_coordSys_new, Vector< RefCountedPtr< LevelSigmaCS > > &a_vectCoords_old, const Vector< LevelData< FluxBox > * > &a_vectFluxes, Real a_dt)
 
void regrid ()
 do regridding More...
 
Real computeTotalIce () const
 diagnostic function – integrates thickness over domain More...
 
void getIceThickness (Real *a_data_ptr, int *a_dim_info, Real *a_dew, Real *a_dns) const
 fill flattened Fortran array of data with ice thickness More...
 
bool isDefined () const
 is this object defined and initialized? More...
 
void setHeader (const std::string &a_key, const std::string &a_val)
 
void getHeader (const std::string &a_key, std::string &a_val)
 
void setHeader (const std::string &a_key, const int &a_val)
 
void getHeader (const std::string &a_key, int &a_val)
 
void setHeader (const std::string &a_key, const Real &a_val)
 
void getHeader (const std::string &a_key, Real &a_val)
 
void writeAMRHierarchyHDF5 (HDF5Handle &a_handle, const Vector< DisjointBoxLayout > &a_grids, const Vector< LevelData< FArrayBox > * > &a_data, const Vector< string > &a_name, const Box &a_domain, const Real &a_dx, const Real &a_dt, const Real &a_time, const Vector< int > &a_ratio, const int &a_numLevels) const
 
void writeAMRHierarchyHDF5 (const string &filename, const Vector< DisjointBoxLayout > &a_grids, const Vector< LevelData< FArrayBox > * > &a_data, const Vector< string > &a_name, const Box &a_domain, const Real &a_dx, const Real &a_dt, const Real &a_time, const Vector< int > &a_ratio, const int &a_numLevels) const
 Write an AMR hierarchy to an hdf5 file. More...
 
void writePlotFile ()
 write hdf5 plotfile to the standard location More...
 
void writeAMRPlotFile ()
 write hdf5 plotfile to the standard location More...
 
void writeCheckpointFile ()
 write checkpoint file out for later restarting More...
 
void writeCheckpointFile (const string &a_file)
 write checkpoint file out for later restarting More...
 
void readCheckpointFile (HDF5Handle &a_handle)
 read checkpoint file for restart More...
 
void restart (const string &a_restart_file)
 set up for restart More...
 
void computeAreaFraction (LevelData< FArrayBox > &a_area, int a_maskVal, int a_level) const
 compute total ice and total grounded ice (volume, at this point) More...
 
void setTime (Real a_time)
 
Real time () const
 read only access members implementing AMRIceBase More...
 
Real dt () const
 
int finestLevel () const
 
const RealVect dx (int a_level) const
 
const RefCountedPtr< LevelSigmaCSgeometry (int a_level) const
 
const DisjointBoxLayout & grids (int a_level) const
 
const Vector< DisjointBoxLayout > & grids () const
 
const Vector< RefCountedPtr< LevelSigmaCS > > & amrGeometry () const
 
void incrementIceThickness (Vector< LevelData< FArrayBox > *> a_thk)
 nearly direct access to the ice thickness More...
 
const Vector< int > & refRatios () const
 
const Vector< Real > & amrDx () const
 
const LevelData< FArrayBox > * velocity (int a_level) const
 
const Vector< LevelData< FArrayBox > *> & amrVelocity ()
 
SurfaceFluxsurfaceHeatBoundaryData () const
 
bool surfaceHeatBoundaryDirichlett () const
 
LevelData< FArrayBox > * iceFrac (int a_level)
 return pointer to real-valued ice fraction on level a_level More...
 
bool surfaceHeatBoundaryTemperature () const
 
SurfaceFluxbasalHeatBoundaryData () const
 
const LevelData< FArrayBox > * iceFrac (int a_level) const
 return pointer to real-valued ice fraction on level a_level More...
 
const LevelData< FArrayBox > & muCoef (int a_level) const
 return const ref to real-valued 'mu coefficient' on level a_level More...
 
Vector< LevelData< FArrayBox > *> & amrIceFrac ()
 return reference to full AMR ice fraction More...
 
const Vector< LevelData< FArrayBox > *> & amrIceFrac () const
 return const reference to full AMR ice fraction More...
 
const LevelData< FArrayBox > * groundingLineProximity (int a_level) const
 
Real groundingLineProximityScale () const
 
const LevelData< FArrayBox > * surfaceThicknessSource (int a_level) const
 
const LevelData< FArrayBox > * basalThicknessSource (int a_level) const
 
const LevelData< FArrayBox > * viscousTensor (int a_level) const
 
const LevelData< FArrayBox > * dragCoefficient (int a_level) const
 
const LevelData< FArrayBox > * viscosityCoefficient (int a_level) const
 
const Vector< LevelData< FluxBox > *> & faceVelocities ()
 access function for face-centered velocities More...
 
const Vector< LevelData< FluxBox > *> & faceVelocitiesLayered () const
 access function for layered face-centered velocities More...
 
const Vector< LevelData< FArrayBox > *> & calvedIceThickness () const
 access function for calved ice data More...
 
const Vector< LevelData< FArrayBox > *> & removedIceThickness () const
 
const Vector< LevelData< FArrayBox > *> & addedIceThickness () const
 
const Vector< LevelData< FArrayBox > *> & surfaceInternalEnergy () const
 access function for surface temperature More...
 
const Vector< LevelData< FArrayBox > *> & surfaceHeatFlux () const
 access function for surface heat flux More...
 
const Vector< Real > & getFaceSigma () const
 
void addObserver (Observer *a_observer)
 
void removeObserver (Observer *a_observer)
 
- Public Member Functions inherited from AmrIceBase
virtual ~AmrIceBase ()
 

Protected Types

enum  initialGuessTypes { SlidingLaw =0, ConstMu =1, Function =2, NUM_INITIAL_GUESS_TYPES }
 
enum  DiffusionTreatment { NONE, IMPLICIT, EXPLICIT }
 

Protected Member Functions

void tagCells (Vector< IntVectSet > &a_tags)
 compute tags for regridding More...
 
void tagCellsLevel (IntVectSet &a_tags, int a_level)
 compute tags for the level a_level More...
 
void tagCellsInit (Vector< IntVectSet > &a_tags)
 compute tags at initial time More...
 
void initGrids (int a_finest_level)
 initialize grids at initial time More...
 
void setupFixedGrids (const std::string &a_gridFile)
 set up grids from grids file More...
 
void levelSetup (int a_level, const DisjointBoxLayout &a_grids)
 set up storage, etc on an AMR level More...
 
void initData (Vector< RefCountedPtr< LevelSigmaCS > > &a_vectCoordSys, Vector< LevelData< FArrayBox > * > &a_initialVelocity)
 initialize data on hierarchy More...
 
virtual void defineSolver ()
 initialize diagnostics More...
 
virtual void solveVelocityField (bool a_forceSolve=false, Real a_convergenceMetric=-1.0)
 solve for velocity field (or just set up some auxilliary quantities) More...
 
virtual void defineVelRHS (Vector< LevelData< FArrayBox > * > &a_vectRhs)
 compute RHS for velocity field solve More...
 
virtual void setBasalFriction (Vector< LevelData< FArrayBox > * > &a_C, Vector< LevelData< FArrayBox > * > &a_C0)
 set basal friction coefficients C,C0 prior to velocity solve More...
 
virtual void setMuCoefficient (Vector< LevelData< FArrayBox > * > &a_cellMuCoef)
 set mu coefficient (phi) prior to velocity solve More...
 
void computeFaceVelocity (Vector< LevelData< FluxBox > * > &a_faceVelAdvection, Vector< LevelData< FluxBox > * > &a_faceVelTotal, Vector< LevelData< FluxBox > * > &a_diffusivity, Vector< LevelData< FluxBox > * > &a_layerXYFaceXYVel, Vector< LevelData< FArrayBox > * > &a_layerSFaceXYVel)
 given the current cell centred velocity field, compute a face centred velocity field More...
 
void incrementWithDivFlux (Vector< LevelData< FArrayBox > * > &a_phi, const Vector< LevelData< FArrayBox > * > &a_dphi, Real a_dt)
 
void updateCoordSysWithNewThickness (const Vector< LevelData< FArrayBox > * > &a_thickness)
 
void setIceFrac (const LevelData< FArrayBox > &a_thickness, int a_level)
 initialize real-valued ice fraction More...
 
void updateIceFrac (LevelData< FArrayBox > &a_thickness, int a_level)
 update real-valued ice fraction after thickness update More...
 
void setIceFracBC (LevelData< FArrayBox > &a_iceFrac, const ProblemDomain &a_domain)
 
void advectIceFrac (Vector< LevelData< FArrayBox > * > &a_iceFrac, const Vector< LevelData< FluxBox > * > &a_faceVelAdvection, Real a_dt)
 update real-valued ice fraction through advection from neighboring cells More...
 
void updateInvalidIceFrac (Vector< LevelData< FArrayBox > *> a_iceFrac)
 update covered cells, ghost cells etc, of a_iceFrac More...
 
Real computeDt ()
 compute timestep More...
 
Real computeInitialDt ()
 compute timestep at initial time More...
 
void setToZero (Vector< LevelData< FArrayBox > *> &a_data)
 
void implicitThicknessCorrection (Real a_dt, const Vector< LevelData< FArrayBox > * > &a_sts, const Vector< LevelData< FArrayBox > * > &a_bts, const Vector< LevelData< FArrayBox > * > &a_vts)
 implicit solve for diffusive fluxes More...
 
void applyCalvingCriterion (CalvingModel::Stage a_stage)
 
void eliminateRemoteIce ()
 
void helmholtzSolve (Vector< LevelData< FArrayBox > * > &a_phi, const Vector< LevelData< FArrayBox > * > &a_rhs, Real a_alpha, Real a_beta) const
 
void helmholtzSolve (Vector< LevelData< FArrayBox > * > &a_phi, Real a_alpha, Real a_beta) const
 
void computeA (Vector< LevelData< FArrayBox > * > &a_A, Vector< LevelData< FArrayBox > * > &a_sA, Vector< LevelData< FArrayBox > * > &a_bA, const Vector< LevelData< FArrayBox > * > &a_internalEnergy, const Vector< LevelData< FArrayBox > * > &a_sInternalEnergy, const Vector< LevelData< FArrayBox > * > &a_bInternalEnergy, const Vector< RefCountedPtr< LevelSigmaCS > > &a_coordSys) const
 compute the flow rate coefficient A given bulk internal energy & geometry More...
 
void computeInternalEnergyHalf (Vector< LevelData< FluxBox > * > &a_layerEH_half, Vector< LevelData< FluxBox > * > &a_layerH_half, const Vector< LevelData< FluxBox > * > &a_layerXYFaceXYVel, const Real a_dt, const Real a_time)
 
void updateInternalEnergy (Vector< LevelData< FluxBox > * > &a_layerTH_half, Vector< LevelData< FluxBox > * > &a_layerH_half, const Vector< LevelData< FluxBox > * > &a_layerXYFaceXYVel, const Vector< LevelData< FArrayBox > * > &a_layerSFaceXYVel, const Real a_dt, const Real a_time, Vector< RefCountedPtr< LevelSigmaCS > > &a_coordSysNew, Vector< RefCountedPtr< LevelSigmaCS > > &a_coordSysOld, const Vector< LevelData< FArrayBox > *> &a_surfaceThicknessSource, const Vector< LevelData< FArrayBox > *> &a_basalThicknessSource, const Vector< LevelData< FArrayBox > *> &a_volumeThicknessSource)
 Update the internalEnergy and tillWaterDepth fields. More...
 
void updateTemperature ()
 update the temperature (a derived field) More...
 
void computeDischarge (const Vector< LevelData< FluxBox > * > &a_vectFluxes)
 
int finestTimestepLevel () const
 
void setStableSources (FArrayBox &a_sts, FArrayBox &a_bts, FArrayBox &a_vts, const FArrayBox &a_divuh, const BaseFab< int > &a_mask, const Box &a_box) const
 modify the source terms (surface,basal,volume) to keep all or part of the ice sheet/shelf steady More...
 
void updateViscousTensor () const
 
void updateGroundingLineProximity () const
 
void setLayers (const Vector< Real > &a_sigma)
 

Static Protected Member Functions

static void postInterpolationReFloat (LevelData< FArrayBox > &a_H, const LevelData< FArrayBox > &a_coarseH, const LevelData< FArrayBox > &a_coarseBed, const DisjointBoxLayout a_newDBL, const ProblemDomain &a_domain, int a_refRatio, Real a_seaLevel, Real a_waterDensity, Real a_iceDensity)
 

Protected Attributes

int m_temporalAccuracy
 temporal accuracy More...
 
int m_num_thickness_ghost
 number of ghost cells we need for m_old_thickness More...
 
int m_solverType
 what type of nonlinear solver to use for velocity field More...
 
int m_maxSolverIterations
 max number of iterations for velocity solver More...
 
Real m_velocity_solver_tolerance
 solver tolerance for velSolver. More...
 
int m_velocity_solve_interval
 solve the velocity problem every m_velocitySolveInterval timesteps More...
 
Real m_velocitySolveInitialResidualNorm
 Residual norms at the start and end of the last velocity solve. More...
 
Real m_velocitySolveFinalResidualNorm
 
IceVelocitySolverm_velSolver
 nonlinear elliptic solver for velocity field More...
 
ConstitutiveRelationm_constitutiveRelation
 constitutive relation More...
 
RateFactorm_rateFactor
 rate factor More...
 
BasalFrictionRelationm_basalFrictionRelation
 basal Friction relation More...
 
RateFactorm_basalRateFactor
 rate factor at base More...
 
bool m_reset_floating_friction_to_zero
 if false, don't reset basal friction for floating ice to zero (default is true) More...
 
GodunovPhysics * m_thicknessPhysPtr
 pointer to a GodunovPhysics for thickness advection More...
 
Vector< PatchGodunov * > m_thicknessPatchGodVect
 PatchGodunov used for thickness advection – one for each level. More...
 
IceThicknessIBCm_thicknessIBCPtr
 IBC for thickness advection. More...
 
IceInternalEnergyIBCm_internalEnergyIBCPtr
 IBC for internalEnergy advection. More...
 
CalvingModelm_calvingModelPtr
 Calving model. More...
 
SurfaceFluxm_surfaceFluxPtr
 sets surface flux for ice sheet More...
 
SurfaceFluxm_basalFluxPtr
 sets basal flux for ice sheet More...
 
SurfaceFluxm_surfaceHeatBoundaryDataPtr
 sets surface heat flux or internalEnergy for ice sheet More...
 
SurfaceFluxm_basalHeatBoundaryDataPtr
 sets basal heat flux or temperature for ice sheet More...
 
SurfaceFluxm_topographyFluxPtr
 sets topography flux (which raises/lowers bedrock) More...
 
Vector< LevelData< FArrayBox > * > m_deltaTopography
 
BasalFrictionm_basalFrictionPtr
 sets basal friction coefficient (beta^2) More...
 
MuCoefficientm_muCoefficientPtr
 sets mu coefficient (phi) More...
 
int m_max_level
 max number ofSflux levels More...
 
int m_finest_level
 current finest level More...
 
int m_finest_timestep_level
 
int m_tag_cap
 maximum level at which refinement tags are computed More...
 
int m_block_factor
 blocking factor More...
 
IntVectSet m_tag_subset
 only allow tagging within a subset of the coarse domain More...
 
Vector< IntVectSet > m_vectTagSubset
 
Real m_fill_ratio
 grid efficiency More...
 
int m_nesting_radius
 proper nesting radius More...
 
int m_max_box_size
 max box size More...
 
int m_max_base_grid_size
 max box size for level 0 (defaults to max_box_size) More...
 
int m_regrid_interval
 regrid interval More...
 
int m_n_regrids
 
bool m_doInitialVelSolve
 
bool m_doInitialVelGuess
 if true, use nonzero initial guess for velocity field (default is false) More...
 
int m_initialGuessType
 
Real m_initialGuessConstMu
 
int m_initialGuessSolverType
 
RealVect m_initialGuessConstVel
 
bool m_interpolate_zb
 if true, interpolate things like base topography at regrid time More...
 
int m_regrid_thickness_interpolation_method
 thickness interpolation method to use on regrid, see LevelSigmaCS::ThicknessInterpolationMethod More...
 
Real m_basalLengthScale
 
Vector< IntVectSet > m_vectTags
 stores tags from previous regrids More...
 
bool m_tagOnGradVel
 tag on grad(velocity)? More...
 
Real m_tagging_val
 tagging value (undivided gradient(vel) threshold for regridding) More...
 
bool m_tagOnLapVel
 tag on laplacian(velocity) More...
 
bool m_tagOnGroundedLapVel
 tag on laplacian(velocity) in grounded regions only More...
 
Real m_laplacian_tagging_val
 tagging threshold value for undivided lap(vel) More...
 
Real m_laplacian_tagging_max_basal_friction_coef
 when tagging on undivided lap(vel), ignore cells where the basal friction coeffcient exceeds More...
 
bool m_tagOnEpsSqr
 tag on strain rate invariant? More...
 
Real m_epsSqr_tagVal
 tagging value for strain rate invariant More...
 
bool m_tagOnVelRHS
 tag on velocity solve RHS More...
 
Real m_velRHS_tagVal
 tagging value for velocity RHS More...
 
bool m_tagOndivHgradVel
 tag on div(H grad (vel)) More...
 
Real m_divHGradVel_tagVal
 tagging threshold value for undivided div(H grad(vel)) More...
 
bool m_tagGroundingLine
 tag the grounding line More...
 
Real m_groundingLineTaggingMinVel
 threshold velocity at the grounding line : tag if |u| > value More...
 
Real m_groundingLineTaggingMaxBasalFrictionCoef
 threshold Basal friction coefficient at the grounding line : tag if C < value More...
 
bool m_tagVelDx
 tag where |vel| * dx > m_maxVelDxVal More...
 
Real m_velDx_tagVal
 
int m_velDx_tagVal_finestLevelGrounded
 
int m_velDx_tagVal_finestLevelFloating
 
bool m_tag_thin_cavity
 
Real m_tag_thin_cavity_thickness
 
bool m_tagMargin
 tag at the ice margin More...
 
int m_margin_tagVal_finestLevel
 
bool m_tagAllIce
 tag any cell with ice in it More...
 
bool m_tagAllIceOnLevel0
 tag any cell with ice in it on level 0 More...
 
bool m_tagEntireDomain
 tag all cells for refinement (refine entire domain) More...
 
bool m_eliminate_remote_ice
 
int m_eliminate_remote_ice_max_iter
 
Real m_eliminate_remote_ice_tol
 
bool m_eliminate_remote_ice_after_regrid
 
bool m_tagPython
 tag cells according to a python function More...
 
PyObject * m_tagPythonModule
 
PyObject * m_tagPythonFunction
 
int m_tags_grow
 amount to buffer tags used in regridding More...
 
IntVect m_tags_grow_dir
 
Vector< int > m_refinement_ratios
 refinement ratios More...
 
Vector< Real > m_amrDx
 cell spacing at each level More...
 
Vector< ProblemDomain > m_amrDomains
 problem domains at each level More...
 
RealVect m_domainSize
 
Vector< DisjointBoxLayout > m_amrGrids
 current grids More...
 
Vector< int > m_covered_level
 keeps track of which levels are completely covered More...
 
Vector< int > m_num_cells
 book-keeping; keeps track of number of cells per level More...
 
Real m_time
 current time More...
 
Real m_offsetTime
 
Real m_dt
 most recent timestep More...
 
Real m_stable_dt
 most recent stable timestep (> m_dt if we took a step just to hit a plot interval) More...
 
Real m_cfl
 timestep scaling More...
 
Real m_initial_cfl
 cfl number for initial timestep (useful if initial data needs small cfl) More...
 
Real m_max_dt_grow
 maximum amount cfl number may grow in one timestep More...
 
Real m_velocity_exit
 maximum acceptable velocity: if max(u) > m_vel_exit , then dump a plot file and exit More...
 
int m_cur_step
 
bool m_isothermal
 
Real m_waterDepth
 
bool m_surfaceBoundaryHeatDataDirichlett
 should a Dirichlett internal energy condition be imposed at the upper surface? More...
 
bool m_surfaceBoundaryHeatDataTemperature
 is the Dirichlett data a temperature (rather than an internal energy)? More...
 
Real m_iceDensity
 
Real m_seaWaterDensity
 
Real m_gravity
 
Real m_seconds_per_unit_time
 
Vector< LevelData< FArrayBox > * > m_old_thickness
 current old-time data More...
 
Vector< LevelData< FArrayBox > * > m_velocity
 horizontal velocity field (found by an IceVelocitySolver) More...
 
Vector< LevelData< FArrayBox > *> m_velRHS
 velocity solve RHS (in case we want to save it) More...
 
Vector< LevelData< FArrayBox > *> m_velBasalC
 
Vector< LevelData< FArrayBox > *> m_cellMuCoef
 
Vector< LevelData< FluxBox > *> m_diffusivity
 
Real m_additionalDiffusivity
 
Vector< LevelData< FluxBox > *> m_faceVelAdvection
 
Vector< LevelData< FluxBox > *> m_faceVelTotal
 
Vector< LevelData< FArrayBox > *> m_layerSFaceXYVel
 
Vector< LevelData< FArrayBox > *> m_layerSFaceSVel
 
Vector< LevelData< FluxBox > *> m_layerXYFaceXYVel
 
Vector< RefCountedPtr< LevelSigmaCS > > m_vect_coordSys
 
Vector< LevelData< FArrayBox > *> m_iceFrac
 
Vector< LevelData< FArrayBox > *> m_internalEnergy
 
Vector< LevelData< FArrayBox > *> m_temperature
 
Vector< LevelData< FArrayBox > *> m_tillWaterDepth
 
Vector< LevelData< FArrayBox > *> m_A
 
bool m_A_valid
 
Vector< LevelData< FArrayBox > *> m_sInternalEnergy
 
Vector< LevelData< FArrayBox > *> m_sTemperature
 
Vector< LevelData< FArrayBox > *> m_bInternalEnergy
 
Vector< LevelData< FArrayBox > *> m_bTemperature
 
Vector< LevelData< FArrayBox > *> m_sHeatFlux
 
Vector< LevelData< FArrayBox > *> m_bHeatFlux
 
Vector< LevelData< FArrayBox > *> m_sA
 
Vector< LevelData< FArrayBox > *> m_bA
 
Vector< LevelData< FArrayBox > *> m_surfaceThicknessSource
 
Vector< LevelData< FArrayBox > *> m_basalThicknessSource
 
Vector< LevelData< FArrayBox > *> m_volumeThicknessSource
 
Vector< LevelData< FArrayBox > *> m_divThicknessFlux
 
Vector< LevelData< FArrayBox > *> m_calvedIceThickness
 
Vector< LevelData< FArrayBox > *> m_removedIceThickness
 
Vector< LevelData< FArrayBox > *> m_addedIceThickness
 
Vector< LevelData< FArrayBox > *> m_calvedThicknessSource
 
Vector< LevelData< FArrayBox > *> m_dragCoef
 
Vector< LevelData< FArrayBox > *> m_viscosityCoefCell
 
Vector< LevelData< FArrayBox > *> m_viscousTensorCell
 
Vector< LevelData< FluxBox > *> m_viscousTensorFace
 
bool m_viscousTensor_valid
 
Vector< LevelData< FArrayBox > *> m_groundingLineProximity
 
bool m_groundingLineProximity_valid
 
Real m_groundingLineProximityScale
 
int m_groundingLineProximityCalcType
 
bool m_report_discharge
 if true, report discharge of solid ice from the ice edge More...
 
Real m_report_time_interval
 report diagnostic every m_report_time_interval years (rather than every time step) More...
 
Real m_next_report_time
 
int m_beta_type
 type of basal friction distribution More...
 
Real m_betaVal
 background value for beta More...
 
Real m_betaEps
 small parameter for use in computing beta, if needed More...
 
RealVect m_basalSlope
 background slope of bottom topography More...
 
bool m_is_defined
 is this object initialized? More...
 
bool m_do_restart
 
int m_restart_step
 if starting from a restart, timestep of restart More...
 
string m_plot_prefix
 
string m_check_prefix
 
bool m_check_overwrite
 
bool m_check_exit
 
int m_plot_interval
 
Real m_plot_time_interval
 write a plot file every m_plot_time_interval years (rather than steps) More...
 
bool m_reduced_plot
 if true, reduce the number of fields written to plot files More...
 
bool m_write_mask
 if true, include mask in plotfiles More...
 
bool m_write_dHDt
 if true, include dH/dt in plotfiles More...
 
bool m_write_fluxVel
 
bool m_write_viscousTensor
 
bool m_write_baseVel
 
bool m_write_solver_rhs
 if true, include velocity solver RHS in plotfiles More...
 
bool m_write_internal_energy
 
bool m_write_thickness_sources
 
bool m_write_ismip6
 
bool m_write_map_file
 if true, write out .map.hdf5 file More...
 
bool m_write_presolve_plotfiles
 if true, write out plotfile before doing velocity solves More...
 
int m_check_interval
 
bool m_evolve_thickness
 
bool m_evolve_ice_frac
 
bool m_evolve_velocity
 
bool m_evolve_topography_fix_surface
 
bool m_grounded_ice_stable
 
bool m_floating_ice_stable
 
bool m_floating_ice_basal_flux_is_dhdt
 
bool m_floating_ice_basal_flux_is_min_dhdt
 
bool m_grounded_ice_basal_flux_is_dhdt
 
bool m_frac_sources
 
DiffusionTreatment m_diffusionTreatment
 
bool m_timeStepTicks
 
Real m_fixed_dt
 
bool m_reportGroundedIce
 
bool m_sigmaSet
 
unsigned int m_nLayers
 
Vector< Real > m_faceSigma
 
bool m_write_layer_velocities
 
bool m_additionalVelocity
 

Static Protected Attributes

static int s_verbosity = 1
 how verbose should we be? More...
 

Friends

class DomainDiagnosticData
 

Detailed Description

class to manage non-subcycled AMR ice-sheet model

Member Enumeration Documentation

◆ DiffusionTreatment

Enumerator
NONE 
IMPLICIT 
EXPLICIT 

◆ initialGuessTypes

enum AmrIce::initialGuessTypes
protected
Enumerator
SlidingLaw 
ConstMu 
Function 
NUM_INITIAL_GUESS_TYPES 

◆ velSolverTypes

compute area of ice with grounded/floating status given by a_maskval

compute area of grounded ice. compute area of floating ice. compute flux over ice compute change in volume over ice compute flux domain

Enumerator
Picard 
JFNK 
KnownVelocity 
PetscNLSolver 
FASMGAMR 
Python 
InverseVerticallyIntegrated 
NUM_SOLVER_TYPES 

Constructor & Destructor Documentation

◆ AmrIce()

AmrIce::AmrIce ( )

Default constructor.

At the moment, there is only one constructor, which defines itself based on an inputs file. (This may change, of course)

References setDefaults().

◆ ~AmrIce()

AmrIce::~AmrIce ( )
virtual

Member Function Documentation

◆ addedIceThickness()

const Vector<LevelData<FArrayBox>* >& AmrIce::addedIceThickness ( ) const
inline

References m_addedIceThickness.

◆ addObserver()

void AmrIce::addObserver ( Observer a_observer)
inline

Referenced by init_bisicles_instance(), and main().

◆ advectIceFrac()

void AmrIce::advectIceFrac ( Vector< LevelData< FArrayBox > * > &  a_iceFrac,
const Vector< LevelData< FluxBox > * > &  a_faceVelAdvection,
Real  a_dt 
)
protected

◆ amrDx()

const Vector<Real>& AmrIce::amrDx ( ) const
inline

◆ amrGeometry()

const Vector<RefCountedPtr<LevelSigmaCS> >& AmrIce::amrGeometry ( ) const
inline

◆ amrIceFrac() [1/2]

Vector<LevelData<FArrayBox>* >& AmrIce::amrIceFrac ( )
inline

return reference to full AMR ice fraction

References m_iceFrac.

◆ amrIceFrac() [2/2]

const Vector<LevelData<FArrayBox>* >& AmrIce::amrIceFrac ( ) const
inline

return const reference to full AMR ice fraction

References groundingLineProximity(), and m_iceFrac.

◆ amrVelocity()

const Vector<LevelData<FArrayBox>* >& AmrIce::amrVelocity ( )
inline

References m_velocity.

Referenced by AMRDamage::timestep().

◆ applyCalvingCriterion()

void AmrIce::applyCalvingCriterion ( CalvingModel::Stage  a_stage)
protected

◆ basalHeatBoundaryData()

SurfaceFlux& AmrIce::basalHeatBoundaryData ( ) const
inlinevirtual

Implements AmrIceBase.

References m_basalHeatBoundaryDataPtr.

Referenced by updateInternalEnergy().

◆ basalThicknessSource()

const LevelData< FArrayBox > * AmrIce::basalThicknessSource ( int  a_level) const

◆ calvedIceThickness()

const Vector<LevelData<FArrayBox>* >& AmrIce::calvedIceThickness ( ) const
inline

access function for calved ice data

References m_calvedIceThickness.

◆ computeA()

void AmrIce::computeA ( Vector< LevelData< FArrayBox > * > &  a_A,
Vector< LevelData< FArrayBox > * > &  a_sA,
Vector< LevelData< FArrayBox > * > &  a_bA,
const Vector< LevelData< FArrayBox > * > &  a_internalEnergy,
const Vector< LevelData< FArrayBox > * > &  a_sInternalEnergy,
const Vector< LevelData< FArrayBox > * > &  a_bInternalEnergy,
const Vector< RefCountedPtr< LevelSigmaCS > > &  a_coordSys 
) const
protected

compute the flow rate coefficient A given bulk internal energy & geometry

update the flow law coefficient A

References IceUtility::computeA(), LevelSigmaCS::getSigma(), m_amrGrids, m_finest_level, m_nLayers, m_rateFactor, m_refinement_ratios, and s_verbosity.

Referenced by solveVelocityField(), and surfaceHeatFlux().

◆ computeAreaFraction()

void AmrIce::computeAreaFraction ( LevelData< FArrayBox > &  a_area,
int  a_maskVal,
int  a_level 
) const

compute total ice and total grounded ice (volume, at this point)

compute volume over flotation fill a_area with per-cell area fraction given by a_maskval e.g when a_maskVal == GROUNDEDMASKVAL, a_area will be filled with values from 0 (not grounded ice) to 1 (entirely grounded ice)

References m_finest_level, and m_vect_coordSys.

Referenced by restart().

◆ computeDischarge()

void AmrIce::computeDischarge ( const Vector< LevelData< FluxBox > * > &  a_vectFluxes)
protected

Referenced by surfaceHeatFlux().

◆ computeDt()

Real AmrIce::computeDt ( )
protected

◆ computeFaceVelocity()

void AmrIce::computeFaceVelocity ( Vector< LevelData< FluxBox > * > &  a_faceVelAdvection,
Vector< LevelData< FluxBox > * > &  a_faceVelTotal,
Vector< LevelData< FluxBox > * > &  a_diffusivity,
Vector< LevelData< FluxBox > * > &  a_layerXYFaceXYVel,
Vector< LevelData< FArrayBox > * > &  a_layerSFaceXYVel 
)
protected

◆ computeH_half()

void AmrIce::computeH_half ( Vector< LevelData< FluxBox > * > &  a_H_half,
Real  a_dt 
)

◆ computeInitialDt()

Real AmrIce::computeInitialDt ( )
protected

compute timestep at initial time

References computeDt(), dt(), and s_verbosity.

Referenced by run(), and surfaceHeatFlux().

◆ computeInternalEnergyHalf()

void AmrIce::computeInternalEnergyHalf ( Vector< LevelData< FluxBox > * > &  a_layerEH_half,
Vector< LevelData< FluxBox > * > &  a_layerH_half,
const Vector< LevelData< FluxBox > * > &  a_layerXYFaceXYVel,
const Real  a_dt,
const Real  a_time 
)
protected

◆ computeThicknessFluxes()

void AmrIce::computeThicknessFluxes ( Vector< LevelData< FluxBox > * > &  a_vectFluxes,
const Vector< LevelData< FluxBox > * > &  a_H_half,
const Vector< LevelData< FluxBox > * > &  a_faceVelAdvection 
)

◆ computeTotalIce()

Real AmrIce::computeTotalIce ( ) const

diagnostic function – integrates thickness over domain

References LevelSigmaCS::getH(), m_amrDx, m_finest_level, m_refinement_ratios, and m_vect_coordSys.

Referenced by regrid(), and setCalvingModel().

◆ defineSolver()

void AmrIce::defineSolver ( )
protectedvirtual

◆ defineVelRHS()

void AmrIce::defineVelRHS ( Vector< LevelData< FArrayBox > * > &  a_vectRhs)
protectedvirtual

◆ dragCoefficient()

const LevelData< FArrayBox > * AmrIce::dragCoefficient ( int  a_level) const

◆ dt()

Real AmrIce::dt ( ) const
inline

◆ dx()

const RealVect AmrIce::dx ( int  a_level) const
inlinevirtual

◆ eliminateRemoteIce()

void AmrIce::eliminateRemoteIce ( )
protected

◆ faceVelocities()

const Vector<LevelData<FluxBox>* >& AmrIce::faceVelocities ( )
inline

access function for face-centered velocities

References m_faceVelTotal.

Referenced by AMRDamage::timestep().

◆ faceVelocitiesLayered()

const Vector<LevelData<FluxBox>* >& AmrIce::faceVelocitiesLayered ( ) const
inline

access function for layered face-centered velocities

References m_layerXYFaceXYVel.

◆ finestLevel()

int AmrIce::finestLevel ( ) const
inlinevirtual

◆ finestTimestepLevel()

int AmrIce::finestTimestepLevel ( ) const
inlineprotected

◆ geometry()

const RefCountedPtr<LevelSigmaCS> AmrIce::geometry ( int  a_level) const
inlinevirtual

◆ getFaceSigma()

const Vector<Real>& AmrIce::getFaceSigma ( ) const
inline

◆ getHeader() [1/3]

void AmrIce::getHeader ( const std::string &  a_key,
std::string &  a_val 
)
inline

Referenced by bisicles_get_header().

◆ getHeader() [2/3]

void AmrIce::getHeader ( const std::string &  a_key,
int &  a_val 
)
inline

◆ getHeader() [3/3]

void AmrIce::getHeader ( const std::string &  a_key,
Real &  a_val 
)
inline

◆ getIceThickness()

void AmrIce::getIceThickness ( Real *  a_data_ptr,
int *  a_dim_info,
Real *  a_dew,
Real *  a_dns 
) const

fill flattened Fortran array of data with ice thickness

References LevelSigmaCS::getH(), m_amrDomains, m_amrDx, m_amrGrids, m_finest_level, and m_vect_coordSys.

Referenced by setCalvingModel().

◆ grids() [1/2]

const DisjointBoxLayout& AmrIce::grids ( int  a_level) const
inlinevirtual

◆ grids() [2/2]

const Vector<DisjointBoxLayout>& AmrIce::grids ( ) const
inline

◆ groundingLineProximity()

const LevelData< FArrayBox > * AmrIce::groundingLineProximity ( int  a_level) const
virtual

◆ groundingLineProximityScale()

Real AmrIce::groundingLineProximityScale ( ) const
inlinevirtual

◆ helmholtzSolve() [1/2]

void AmrIce::helmholtzSolve ( Vector< LevelData< FArrayBox > * > &  a_phi,
const Vector< LevelData< FArrayBox > * > &  a_rhs,
Real  a_alpha,
Real  a_beta 
) const
protected

solve a_alpha * phi - a_beta * laplacian(phi) = a_rhs and grad(phi).n = 0 on the domain boundaries

References grids(), m_amrDomains, m_amrDx, m_amrGrids, m_finest_level, m_refinement_ratios, and s_verbosity.

Referenced by helmholtzSolve(), implicitThicknessCorrection(), surfaceHeatFlux(), and updateInternalEnergy().

◆ helmholtzSolve() [2/2]

void AmrIce::helmholtzSolve ( Vector< LevelData< FArrayBox > * > &  a_phi,
Real  a_alpha,
Real  a_beta 
) const
protected

solve a_alpha* phi - a_beta * laplacian(phi) = phi' and grad(phi).n = 0 on the domain boundaries

References helmholtzSolve(), m_amrGrids, and m_finest_level.

◆ iceFrac() [1/2]

LevelData<FArrayBox>* AmrIce::iceFrac ( int  a_level)
inline

return pointer to real-valued ice fraction on level a_level

(0 = no ice, 1 = full of ice, 0<phi<1 – partially filled (useful for calving model and for communication with POP

References m_iceFrac.

◆ iceFrac() [2/2]

const LevelData<FArrayBox>* AmrIce::iceFrac ( int  a_level) const
inline

return pointer to real-valued ice fraction on level a_level

(0 = no ice, 1 = full of ice, 0<phi<1 – partially filled (useful for calving model and for communication with POP

References m_iceFrac.

◆ implicitThicknessCorrection()

void AmrIce::implicitThicknessCorrection ( Real  a_dt,
const Vector< LevelData< FArrayBox > * > &  a_sts,
const Vector< LevelData< FArrayBox > * > &  a_bts,
const Vector< LevelData< FArrayBox > * > &  a_vts 
)
protected

◆ incrementIceThickness()

void AmrIce::incrementIceThickness ( Vector< LevelData< FArrayBox > *>  a_thk)

◆ incrementWithDivFlux()

void AmrIce::incrementWithDivFlux ( Vector< LevelData< FArrayBox > * > &  a_phi,
const Vector< LevelData< FArrayBox > * > &  a_dphi,
Real  a_dt 
)
protected

Referenced by surfaceHeatFlux().

◆ initData()

void AmrIce::initData ( Vector< RefCountedPtr< LevelSigmaCS > > &  a_vectCoordSys,
Vector< LevelData< FArrayBox > * > &  a_initialVelocity 
)
protected

◆ initGrids()

void AmrIce::initGrids ( int  a_finest_level)
protected

◆ initialize()

void AmrIce::initialize ( )

initializes object based on inputs data passed in through parmParse

initializes new object based on data in ParmParse database. This may change to a more explicit initialization if it's thought to be a good idea.

PatchGodunov used for thickness advection

References EXPLICIT, IMPLICIT, DomainDiagnosticData::initDiagnostics(), initGrids(), PythonInterface::InitializePythonFunction(), PythonInterface::InitializePythonModule(), m_addedIceThickness, m_additionalDiffusivity, m_additionalVelocity, m_amrDomains, m_amrDx, m_amrGrids, m_basalLengthScale, m_basalSlope, m_basalThicknessSource, m_bHeatFlux, m_bInternalEnergy, m_block_factor, m_calvedIceThickness, m_cellMuCoef, m_cfl, m_covered_level, m_cur_step, m_deltaTopography, m_diffusionTreatment, m_diffusivity, m_divHGradVel_tagVal, m_divThicknessFlux, m_do_restart, m_doInitialVelGuess, m_doInitialVelSolve, m_domainSize, m_eliminate_remote_ice, m_eliminate_remote_ice_after_regrid, m_eliminate_remote_ice_max_iter, m_eliminate_remote_ice_tol, m_epsSqr_tagVal, m_evolve_ice_frac, m_evolve_thickness, m_evolve_topography_fix_surface, m_evolve_velocity, m_faceVelAdvection, m_faceVelTotal, m_fill_ratio, m_finest_level, m_finest_timestep_level, m_fixed_dt, m_floating_ice_basal_flux_is_dhdt, m_floating_ice_basal_flux_is_min_dhdt, m_floating_ice_stable, m_frac_sources, m_gravity, m_grounded_ice_basal_flux_is_dhdt, m_grounded_ice_stable, m_groundingLineProximityCalcType, m_groundingLineProximityScale, m_groundingLineTaggingMaxBasalFrictionCoef, m_groundingLineTaggingMinVel, m_iceDensity, m_iceFrac, m_initial_cfl, m_initialGuessConstMu, m_initialGuessConstVel, m_initialGuessSolverType, m_initialGuessType, m_internalEnergy, m_interpolate_zb, m_isothermal, m_laplacian_tagging_max_basal_friction_coef, m_laplacian_tagging_val, m_layerSFaceSVel, m_layerSFaceXYVel, m_layerXYFaceXYVel, m_margin_tagVal_finestLevel, m_max_base_grid_size, m_max_box_size, m_max_dt_grow, m_max_level, m_maxSolverIterations, m_n_regrids, m_nesting_radius, m_num_cells, m_num_thickness_ghost, m_offsetTime, m_old_thickness, m_refinement_ratios, m_regrid_interval, m_regrid_thickness_interpolation_method, m_removedIceThickness, m_report_discharge, m_report_time_interval, m_reset_floating_friction_to_zero, m_seaWaterDensity, m_seconds_per_unit_time, m_sHeatFlux, m_sInternalEnergy, m_solverType, m_surfaceThicknessSource, m_tag_cap, m_tag_thin_cavity, m_tag_thin_cavity_thickness, m_tagAllIce, m_tagAllIceOnLevel0, m_tagEntireDomain, m_tagging_val, m_tagGroundingLine, m_tagMargin, m_tagOndivHgradVel, m_tagOnEpsSqr, m_tagOnGradVel, m_tagOnGroundedLapVel, m_tagOnLapVel, m_tagOnVelRHS, m_tagPython, m_tagPythonFunction, m_tagPythonModule, m_tags_grow, m_tags_grow_dir, m_tagVelDx, m_temporalAccuracy, m_thicknessIBCPtr, m_thicknessPatchGodVect, m_thicknessPhysPtr, m_tillWaterDepth, m_time, m_timeStepTicks, m_vect_coordSys, m_vectTagSubset, m_velBasalC, m_velDx_tagVal, m_velDx_tagVal_finestLevelFloating, m_velDx_tagVal_finestLevelGrounded, m_velocity, m_velocity_exit, m_velocity_solve_interval, m_velocity_solver_tolerance, m_velRHS, m_velRHS_tagVal, m_volumeThicknessSource, m_write_dHDt, m_write_mask, m_write_solver_rhs, restart(), s_verbosity, IceThermodynamics::setConstants(), setLayers(), setupFixedGrids(), and time().

Referenced by init_bisicles_instance(), and main().

◆ isDefined()

bool AmrIce::isDefined ( ) const

is this object defined and initialized?

References m_is_defined.

Referenced by levelSetup(), and setCalvingModel().

◆ levelSetup()

void AmrIce::levelSetup ( int  a_level,
const DisjointBoxLayout &  a_grids 
)
protected

◆ muCoef()

const LevelData<FArrayBox>& AmrIce::muCoef ( int  a_level) const
inline

return const ref to real-valued 'mu coefficient' on level a_level

References m_cellMuCoef.

Referenced by ThicknessCalvingModel::applyCriterion().

◆ postInterpolationReFloat()

static void AmrIce::postInterpolationReFloat ( LevelData< FArrayBox > &  a_H,
const LevelData< FArrayBox > &  a_coarseH,
const LevelData< FArrayBox > &  a_coarseBed,
const DisjointBoxLayout  a_newDBL,
const ProblemDomain &  a_domain,
int  a_refRatio,
Real  a_seaLevel,
Real  a_waterDensity,
Real  a_iceDensity 
)
staticprotected

Referenced by surfaceHeatFlux().

◆ readCheckpointFile()

void AmrIce::readCheckpointFile ( HDF5Handle &  a_handle)

◆ refRatios()

const Vector<int>& AmrIce::refRatios ( ) const
inlinevirtual

◆ regrid()

void AmrIce::regrid ( )

◆ removedIceThickness()

const Vector<LevelData<FArrayBox>* >& AmrIce::removedIceThickness ( ) const
inline

References m_removedIceThickness.

◆ removeObserver()

void AmrIce::removeObserver ( Observer a_observer)
inline

◆ restart()

void AmrIce::restart ( const string &  a_restart_file)

◆ run()

void AmrIce::run ( Real  a_max_time,
int  a_max_step 
)

◆ setBasalFlux()

void AmrIce::setBasalFlux ( SurfaceFlux a_basalFluxPtr)
inline

set basal flux for ice sheet

References m_basalFluxPtr, and SurfaceFlux::new_surfaceFlux().

Referenced by init_bisicles_instance(), and main().

◆ setBasalFriction() [1/2]

void AmrIce::setBasalFriction ( const BasalFriction a_basalFrictionPtr)
inline

◆ setBasalFriction() [2/2]

void AmrIce::setBasalFriction ( Vector< LevelData< FArrayBox > * > &  a_C,
Vector< LevelData< FArrayBox > * > &  a_C0 
)
protectedvirtual

◆ setBasalFrictionRelation()

void AmrIce::setBasalFrictionRelation ( BasalFrictionRelation a_basalFrictionRelPtr)
inline

set basal Friction relation

needs to be done before calling initialize

References BasalFrictionRelation::getNewBasalFrictionRelation(), m_basalFrictionRelation, setInternalEnergyBC(), and setThicknessBC().

Referenced by init_bisicles_instance(), and main().

◆ setBasalHeatBoundaryData()

void AmrIce::setBasalHeatBoundaryData ( SurfaceFlux a_basalHeatBoundaryDataPtr)
inline

set basal Heat flux for ice sheet. Does not include the heat flux due to sliding friction

References m_basalHeatBoundaryDataPtr, and SurfaceFlux::new_surfaceFlux().

Referenced by init_bisicles_instance(), and main().

◆ setBasalRateFactor()

void AmrIce::setBasalRateFactor ( RateFactor a_rateFactorPtr)
inline

set rate factor at base

needs to be done before calling initialize

References RateFactor::getNewRateFactor(), and m_basalRateFactor.

Referenced by init_bisicles_instance(), and main().

◆ setCalvingModel()

void AmrIce::setCalvingModel ( CalvingModel a_calvingModelPtr)
inline

◆ setConstitutiveRelation()

void AmrIce::setConstitutiveRelation ( ConstitutiveRelation a_constRelPtr)
inline

set constitutive relation

needs to be done before calling initialize

References ConstitutiveRelation::getNewConstitutiveRelation(), and m_constitutiveRelation.

Referenced by init_bisicles_instance(), and main().

◆ setDefaults()

void AmrIce::setDefaults ( )

set default values before initialization

References JFNK, m_A_valid, m_additionalDiffusivity, m_additionalVelocity, m_basalFluxPtr, m_basalLengthScale, m_basalSlope, m_betaEps, m_betaVal, m_block_factor, m_cfl, m_diffusionTreatment, m_divHGradVel_tagVal, m_do_restart, m_doInitialVelGuess, m_doInitialVelSolve, m_domainSize, m_dt, m_eliminate_remote_ice, m_eliminate_remote_ice_after_regrid, m_eliminate_remote_ice_max_iter, m_eliminate_remote_ice_tol, m_epsSqr_tagVal, m_evolve_ice_frac, m_evolve_thickness, m_evolve_topography_fix_surface, m_evolve_velocity, m_fill_ratio, m_finest_level, m_finest_timestep_level, m_fixed_dt, m_floating_ice_basal_flux_is_dhdt, m_floating_ice_basal_flux_is_min_dhdt, m_floating_ice_stable, m_frac_sources, m_gravity, m_grounded_ice_basal_flux_is_dhdt, m_grounded_ice_stable, m_groundingLineProximity_valid, m_groundingLineProximityCalcType, m_groundingLineProximityScale, m_groundingLineTaggingMaxBasalFrictionCoef, m_groundingLineTaggingMinVel, m_iceDensity, m_initialGuessConstMu, m_initialGuessConstVel, m_initialGuessSolverType, m_initialGuessType, m_interpolate_zb, m_is_defined, m_isothermal, m_laplacian_tagging_max_basal_friction_coef, m_laplacian_tagging_val, m_margin_tagVal_finestLevel, m_max_base_grid_size, m_max_box_size, m_max_dt_grow, m_max_level, m_maxSolverIterations, m_nesting_radius, m_num_thickness_ghost, m_offsetTime, m_regrid_thickness_interpolation_method, m_report_discharge, m_report_time_interval, m_reset_floating_friction_to_zero, m_restart_step, m_seaWaterDensity, m_seconds_per_unit_time, m_sigmaSet, m_solverType, m_stable_dt, m_surfaceBoundaryHeatDataDirichlett, m_surfaceBoundaryHeatDataTemperature, m_tag_cap, m_tag_thin_cavity, m_tag_thin_cavity_thickness, m_tagAllIce, m_tagAllIceOnLevel0, m_tagEntireDomain, m_tagging_val, m_tagGroundingLine, m_tagMargin, m_tagOndivHgradVel, m_tagOnEpsSqr, m_tagOnGradVel, m_tagOnGroundedLapVel, m_tagOnLapVel, m_tagOnVelRHS, m_tagPython, m_tagPythonFunction, m_tagPythonModule, m_tags_grow, m_tags_grow_dir, m_tagVelDx, m_temporalAccuracy, m_timeStepTicks, m_velDx_tagVal, m_velDx_tagVal_finestLevelFloating, m_velDx_tagVal_finestLevelGrounded, m_velocity_exit, m_velocity_solve_interval, m_velocity_solver_tolerance, m_velocitySolveInitialResidualNorm, m_velRHS_tagVal, m_viscousTensor_valid, m_waterDepth, NONE, and SlidingLaw.

Referenced by AmrIce().

◆ setDomainSize()

void AmrIce::setDomainSize ( const RealVect &  a_domainSize)
inline

set domain size (in meters)

References m_domainSize.

Referenced by init_bisicles_instance(), and main().

◆ setHeader() [1/3]

void AmrIce::setHeader ( const std::string &  a_key,
const std::string &  a_val 
)
inline

Referenced by bisicles_set_header().

◆ setHeader() [2/3]

void AmrIce::setHeader ( const std::string &  a_key,
const int &  a_val 
)
inline

◆ setHeader() [3/3]

void AmrIce::setHeader ( const std::string &  a_key,
const Real &  a_val 
)
inline

◆ setIceFrac()

void AmrIce::setIceFrac ( const LevelData< FArrayBox > &  a_thickness,
int  a_level 
)
protected

initialize real-valued ice fraction

this is entirely based on ice thickness h, as opposed to the advective update

References m_iceFrac.

Referenced by initData(), readCheckpointFile(), surfaceHeatFlux(), and updateGeometry().

◆ setIceFracBC()

void AmrIce::setIceFracBC ( LevelData< FArrayBox > &  a_iceFrac,
const ProblemDomain &  a_domain 
)
protected

Referenced by surfaceHeatFlux().

◆ setInternalEnergyBC()

void AmrIce::setInternalEnergyBC ( IceInternalEnergyIBC a_internalEnergyIBC)

◆ setLayers()

void AmrIce::setLayers ( const Vector< Real > &  a_sigma)
protected

◆ setMuCoefficient() [1/2]

void AmrIce::setMuCoefficient ( const MuCoefficient a_muCoefficientPtr)
inline

◆ setMuCoefficient() [2/2]

void AmrIce::setMuCoefficient ( Vector< LevelData< FArrayBox > * > &  a_cellMuCoef)
protectedvirtual

◆ setRateFactor()

void AmrIce::setRateFactor ( RateFactor a_rateFactorPtr)
inline

set rate factor

needs to be done before calling initialize

References RateFactor::getNewRateFactor(), and m_rateFactor.

Referenced by init_bisicles_instance(), and main().

◆ setStableSources()

void AmrIce::setStableSources ( FArrayBox &  a_sts,
FArrayBox &  a_bts,
FArrayBox &  a_vts,
const FArrayBox &  a_divuh,
const BaseFab< int > &  a_mask,
const Box &  a_box 
) const
protected

modify the source terms (surface,basal,volume) to keep all or part of the ice sheet/shelf steady

References m_evolve_thickness, m_floating_ice_basal_flux_is_dhdt, m_floating_ice_basal_flux_is_min_dhdt, m_floating_ice_stable, m_grounded_ice_basal_flux_is_dhdt, and m_grounded_ice_stable.

Referenced by updateGeometry().

◆ setSurfaceFlux()

void AmrIce::setSurfaceFlux ( SurfaceFlux a_surfaceFluxPtr)
inline

set surfact flux for ice sheet

References m_surfaceFluxPtr, and SurfaceFlux::new_surfaceFlux().

Referenced by init_bisicles_instance(), and main().

◆ setSurfaceHeatBoundaryData()

void AmrIce::setSurfaceHeatBoundaryData ( SurfaceFlux a_surfaceHeatBoundaryDataPtr,
bool  a_dirichlett,
bool  a_temperature 
)
inline

◆ setThicknessBC()

void AmrIce::setThicknessBC ( IceThicknessIBC a_thicknessIBC)

set BC for thickness advection

References m_thicknessIBCPtr, and IceThicknessIBC::new_thicknessIBC().

Referenced by init_bisicles_instance(), main(), and setBasalFrictionRelation().

◆ setTime()

void AmrIce::setTime ( Real  a_time)
inline

References m_offsetTime, and m_time.

◆ setTopographyFlux()

void AmrIce::setTopographyFlux ( SurfaceFlux a_topographyFluxPtr)
inline

set bedrock flux for ice sheet

References m_topographyFluxPtr, and SurfaceFlux::new_surfaceFlux().

Referenced by init_bisicles_instance(), and main().

◆ setToZero()

void AmrIce::setToZero ( Vector< LevelData< FArrayBox > *> &  a_data)
protected

References finestLevel().

Referenced by computeH_half(), initData(), run(), and surfaceHeatFlux().

◆ setupFixedGrids()

void AmrIce::setupFixedGrids ( const std::string &  a_gridFile)
protected

◆ solveVelocityField()

void AmrIce::solveVelocityField ( bool  a_forceSolve = false,
Real  a_convergenceMetric = -1.0 
)
protectedvirtual

solve for velocity field (or just set up some auxilliary quantities)

solve for velocity field

This is probably the most useful notification, as a velocity solve is carried out at the end of every major stage

References applyCalvingCriterion(), InverseIceVelocitySolver::basalFriction(), computeA(), computeFaceVelocity(), ConstMu, IceVelocitySolver::define(), defineSolver(), defineVelRHS(), dx(), eliminateRemoteIce(), Function, LevelSigmaCS::getFloatingMask(), JFNK, m_A, m_A_valid, m_addedIceThickness, m_amrDomains, m_amrDx, m_amrGrids, m_bA, m_basalFrictionPtr, m_basalFrictionRelation, m_bInternalEnergy, m_calvedIceThickness, m_cellMuCoef, m_constitutiveRelation, m_cur_step, m_diffusivity, m_doInitialVelGuess, m_doInitialVelSolve, m_eliminate_remote_ice, m_faceVelAdvection, m_faceVelTotal, m_finest_level, m_initialGuessConstMu, m_initialGuessConstVel, m_initialGuessSolverType, m_initialGuessType, m_internalEnergy, m_layerSFaceXYVel, m_layerXYFaceXYVel, m_muCoefficientPtr, m_plot_interval, m_plot_prefix, m_refinement_ratios, m_removedIceThickness, m_sA, m_sInternalEnergy, m_solverType, m_thicknessIBCPtr, m_tillWaterDepth, m_time, m_vect_coordSys, m_velBasalC, m_velocity, m_velocity_solve_interval, m_velocitySolveFinalResidualNorm, m_velocitySolveInitialResidualNorm, m_velRHS, m_velSolver, m_viscousTensor_valid, m_write_fluxVel, m_write_presolve_plotfiles, InverseIceVelocitySolver::muCoefficient(), Picard, AmrIce::Observer::PostCalving, CalvingModel::PostVelocitySolve, AmrIce::Observer::PostVelocitySolve, AmrIce::Observer::PreCalving, AmrIce::Observer::PreVelocitySolve, s_verbosity, setBasalFriction(), IceVelocitySolver::setMaxIterations(), setMuCoefficient(), IceVelocitySolver::setTolerance(), SlidingLaw, IceVelocitySolver::solve(), JFNKSolver::solve(), BasalFrictionRelation::updateThermodynamics(), updateViscousTensor(), IceThicknessIBC::velocityGhostBC(), and writePlotFile().

Referenced by initData(), readCheckpointFile(), regrid(), surfaceHeatFlux(), and timeStep().

◆ surfaceHeatBoundaryData()

SurfaceFlux& AmrIce::surfaceHeatBoundaryData ( ) const
inlinevirtual

Implements AmrIceBase.

References m_surfaceHeatBoundaryDataPtr.

Referenced by updateInternalEnergy().

◆ surfaceHeatBoundaryDirichlett()

bool AmrIce::surfaceHeatBoundaryDirichlett ( ) const
inlinevirtual

◆ surfaceHeatBoundaryTemperature()

bool AmrIce::surfaceHeatBoundaryTemperature ( ) const
inlinevirtual

◆ surfaceHeatFlux()

const Vector<LevelData<FArrayBox>* >& AmrIce::surfaceHeatFlux ( ) const
inline

◆ surfaceInternalEnergy()

const Vector<LevelData<FArrayBox>* >& AmrIce::surfaceInternalEnergy ( ) const
inline

access function for surface temperature

References m_sInternalEnergy.

◆ surfaceThicknessSource()

const LevelData< FArrayBox > * AmrIce::surfaceThicknessSource ( int  a_level) const

◆ tagCells()

void AmrIce::tagCells ( Vector< IntVectSet > &  a_tags)
protected

compute tags for regridding

References m_finest_level, m_tag_cap, m_vectTagSubset, s_verbosity, and tagCellsLevel().

Referenced by regrid(), surfaceHeatFlux(), and tagCellsInit().

◆ tagCellsInit()

void AmrIce::tagCellsInit ( Vector< IntVectSet > &  a_tags)
protected

compute tags at initial time

References m_vectTags, s_verbosity, and tagCells().

Referenced by initGrids(), and surfaceHeatFlux().

◆ tagCellsLevel()

void AmrIce::tagCellsLevel ( IntVectSet &  a_tags,
int  a_level 
)
protected

◆ time()

Real AmrIce::time ( ) const
inlinevirtual

◆ timeStep()

void AmrIce::timeStep ( Real  a_dt)

◆ updateCoordSysWithNewThickness()

void AmrIce::updateCoordSysWithNewThickness ( const Vector< LevelData< FArrayBox > * > &  a_thickness)
protected

◆ updateGeometry()

void AmrIce::updateGeometry ( Vector< RefCountedPtr< LevelSigmaCS > > &  a_vect_coordSys_new,
Vector< RefCountedPtr< LevelSigmaCS > > &  a_vectCoords_old,
const Vector< LevelData< FluxBox > * > &  a_vectFluxes,
Real  a_dt 
)

◆ updateGroundingLineProximity()

void AmrIce::updateGroundingLineProximity ( ) const
protected

Solves the elliptic problem a * phi - b* grad^2 phi = 0; with natural boundary conditions.

for grounded ice, a = 10^5 and b = 1 for floating ice, s = 0 and b = 1

References dt(), dx(), finestTimestepLevel(), LevelSigmaCS::getFloatingMask(), grids(), m_amrDomains, m_amrDx, m_amrGrids, m_finest_level, m_groundingLineProximity, m_groundingLineProximity_valid, m_groundingLineProximityCalcType, m_groundingLineProximityScale, m_refinement_ratios, m_time, m_vect_coordSys, s_verbosity, and time().

Referenced by groundingLineProximity().

◆ updateIceFrac()

void AmrIce::updateIceFrac ( LevelData< FArrayBox > &  a_thickness,
int  a_level 
)
protected

update real-valued ice fraction after thickness update

this is different from setIceFrac in that it preserves fractional values, but still sets values to zero in cells with no ice. Thickness is non-const because it may set very small values of H (less than epsilon) to zero

References m_iceFrac.

Referenced by surfaceHeatFlux(), and updateGeometry().

◆ updateInternalEnergy()

void AmrIce::updateInternalEnergy ( Vector< LevelData< FluxBox > * > &  a_layerTH_half,
Vector< LevelData< FluxBox > * > &  a_layerH_half,
const Vector< LevelData< FluxBox > * > &  a_layerXYFaceXYVel,
const Vector< LevelData< FArrayBox > * > &  a_layerSFaceXYVel,
const Real  a_dt,
const Real  a_time,
Vector< RefCountedPtr< LevelSigmaCS > > &  a_coordSysNew,
Vector< RefCountedPtr< LevelSigmaCS > > &  a_coordSysOld,
const Vector< LevelData< FArrayBox > *> &  a_surfaceThicknessSource,
const Vector< LevelData< FArrayBox > *> &  a_basalThicknessSource,
const Vector< LevelData< FArrayBox > *> &  a_volumeThicknessSource 
)
protected

◆ updateInvalidIceFrac()

void AmrIce::updateInvalidIceFrac ( Vector< LevelData< FArrayBox > *>  a_iceFrac)
protected

update covered cells, ghost cells etc, of a_iceFrac

Also increment a_thicknessSource based on the calving rate Also increment a_thicknessSource based on the calving rate

References dx(), m_amrDomains, m_amrDx, m_amrGrids, m_dt, m_finest_level, m_iceFrac, m_refinement_ratios, m_thicknessIBCPtr, IceThicknessIBC::setIceFractionBCs(), and time().

Referenced by surfaceHeatFlux().

◆ updateTemperature()

void AmrIce::updateTemperature ( )
protected

◆ updateViscousTensor()

void AmrIce::updateViscousTensor ( ) const
protected

◆ velocity()

const LevelData<FArrayBox>* AmrIce::velocity ( int  a_level) const
inlinevirtual

◆ viscosityCoefficient()

const LevelData< FArrayBox > * AmrIce::viscosityCoefficient ( int  a_level) const

◆ viscousTensor()

const LevelData< FArrayBox > * AmrIce::viscousTensor ( int  a_level) const

◆ writeAMRHierarchyHDF5() [1/2]

void AmrIce::writeAMRHierarchyHDF5 ( HDF5Handle &  a_handle,
const Vector< DisjointBoxLayout > &  a_grids,
const Vector< LevelData< FArrayBox > * > &  a_data,
const Vector< string > &  a_name,
const Box &  a_domain,
const Real &  a_dx,
const Real &  a_dt,
const Real &  a_time,
const Vector< int > &  a_ratio,
const int &  a_numLevels 
) const

◆ writeAMRHierarchyHDF5() [2/2]

void AmrIce::writeAMRHierarchyHDF5 ( const string &  filename,
const Vector< DisjointBoxLayout > &  a_grids,
const Vector< LevelData< FArrayBox > * > &  a_data,
const Vector< string > &  a_name,
const Box &  a_domain,
const Real &  a_dx,
const Real &  a_dt,
const Real &  a_time,
const Vector< int > &  a_ratio,
const int &  a_numLevels 
) const
virtual

Write an AMR hierarchy to an hdf5 file.

Specifying this as part of the interface permits AmrIceBase aware functions to have e.g AmrIce modify their writes to include standard metadata

Parameters
filenamename of hdf5 file
a_gridsmesh hierarchy
a_datadata hierarchy, defined on a_grids
a_namecomponent names
a_domaindomain limits on coarse level
a_dxmesh spacing on coarse level
a_dttime step on coarsest level
a_timetime
a_ratiorefinement ratio $ r_i $ : $ \Delta x_{i} = r_i \Delta x_{i+1} $
a_numLevelsnumber of levels to write

Implements AmrIceBase.

References writeAMRHierarchyHDF5().

◆ writeAMRPlotFile()

void AmrIce::writeAMRPlotFile ( )

◆ writeCheckpointFile() [1/2]

void AmrIce::writeCheckpointFile ( )

write checkpoint file out for later restarting

writes checkpoint data to the standard location; filename is <check_root>.<step>.<DIM>d.hdf5

References m_check_overwrite, m_check_prefix, and s_verbosity.

Referenced by bisicles_write_checkpoint(), getHeader(), and run().

◆ writeCheckpointFile() [2/2]

void AmrIce::writeCheckpointFile ( const string &  a_file)

◆ writePlotFile()

void AmrIce::writePlotFile ( )

write hdf5 plotfile to the standard location

writes plotfile to the standard location; filename is <plot_root>.<step>.<DIM>d.hdf5

References m_cur_step, and writeAMRPlotFile().

Referenced by bisicles_write_plot(), computeDt(), getHeader(), initData(), run(), and solveVelocityField().

Friends And Related Function Documentation

◆ DomainDiagnosticData

friend class DomainDiagnosticData
friend

Member Data Documentation

◆ m_A

Vector<LevelData<FArrayBox>* > AmrIce::m_A
protected

◆ m_A_valid

bool AmrIce::m_A_valid
mutableprotected

◆ m_addedIceThickness

Vector<LevelData<FArrayBox>* > AmrIce::m_addedIceThickness
protected

◆ m_additionalDiffusivity

Real AmrIce::m_additionalDiffusivity
protected

◆ m_additionalVelocity

bool AmrIce::m_additionalVelocity
protected

◆ m_amrDomains

Vector<ProblemDomain> AmrIce::m_amrDomains
protected

◆ m_amrDx

Vector<Real> AmrIce::m_amrDx
protected

◆ m_amrGrids

Vector<DisjointBoxLayout> AmrIce::m_amrGrids
protected

◆ m_bA

Vector<LevelData<FArrayBox>* > AmrIce::m_bA
protected

◆ m_basalFluxPtr

SurfaceFlux* AmrIce::m_basalFluxPtr
protected

sets basal flux for ice sheet

Referenced by computeH_half(), setBasalFlux(), setDefaults(), writeAMRPlotFile(), and ~AmrIce().

◆ m_basalFrictionPtr

BasalFriction* AmrIce::m_basalFrictionPtr
protected

sets basal friction coefficient (beta^2)

Referenced by readCheckpointFile(), setBasalFriction(), solveVelocityField(), and ~AmrIce().

◆ m_basalFrictionRelation

BasalFrictionRelation* AmrIce::m_basalFrictionRelation
protected

◆ m_basalHeatBoundaryDataPtr

SurfaceFlux* AmrIce::m_basalHeatBoundaryDataPtr
protected

sets basal heat flux or temperature for ice sheet

Referenced by basalHeatBoundaryData(), setBasalHeatBoundaryData(), and ~AmrIce().

◆ m_basalLengthScale

Real AmrIce::m_basalLengthScale
protected

Referenced by initialize(), and setDefaults().

◆ m_basalRateFactor

RateFactor* AmrIce::m_basalRateFactor
protected

rate factor at base

Referenced by setBasalFriction(), setBasalRateFactor(), and ~AmrIce().

◆ m_basalSlope

RealVect AmrIce::m_basalSlope
protected

background slope of bottom topography

for various reasons (mostly having to do with periodicity) it's simpler to just keep this as a parameter here in AmrIce, where it's added to the grad(z_surf) when it comes time to compute the RHS for the velocity solve, rather than include it in the sigmaCS definition.

The way this is implemented, the basal height at a realVect location X is defined as

z_b = sigmaCS.getTopography() +basalSlope[0]*X[0] +basalSlope[1]*X[1]

Referenced by initialize(), and setDefaults().

◆ m_basalThicknessSource

Vector<LevelData<FArrayBox>* > AmrIce::m_basalThicknessSource
mutableprotected

◆ m_beta_type

int AmrIce::m_beta_type
protected

type of basal friction distribution

◆ m_betaEps

Real AmrIce::m_betaEps
protected

small parameter for use in computing beta, if needed

Referenced by setDefaults().

◆ m_betaVal

Real AmrIce::m_betaVal
protected

background value for beta

Referenced by setDefaults().

◆ m_bHeatFlux

Vector<LevelData<FArrayBox>* > AmrIce::m_bHeatFlux
protected

◆ m_bInternalEnergy

Vector<LevelData<FArrayBox>* > AmrIce::m_bInternalEnergy
protected

◆ m_block_factor

int AmrIce::m_block_factor
protected

blocking factor

Referenced by initGrids(), initialize(), regrid(), setDefaults(), and setupFixedGrids().

◆ m_bTemperature

Vector<LevelData<FArrayBox>* > AmrIce::m_bTemperature
protected

◆ m_calvedIceThickness

Vector<LevelData<FArrayBox>* > AmrIce::m_calvedIceThickness
protected

◆ m_calvedThicknessSource

Vector<LevelData<FArrayBox>* > AmrIce::m_calvedThicknessSource
protected

◆ m_calvingModelPtr

CalvingModel* AmrIce::m_calvingModelPtr
protected

Calving model.

Referenced by applyCalvingCriterion(), setCalvingModel(), and ~AmrIce().

◆ m_cellMuCoef

Vector<LevelData<FArrayBox>* > AmrIce::m_cellMuCoef
protected

◆ m_cfl

Real AmrIce::m_cfl
protected

◆ m_check_exit

bool AmrIce::m_check_exit
protected

Referenced by run().

◆ m_check_interval

int AmrIce::m_check_interval
protected

Referenced by run().

◆ m_check_overwrite

bool AmrIce::m_check_overwrite
protected

Referenced by writeCheckpointFile().

◆ m_check_prefix

string AmrIce::m_check_prefix
protected

Referenced by writeCheckpointFile().

◆ m_constitutiveRelation

ConstitutiveRelation* AmrIce::m_constitutiveRelation
protected

◆ m_covered_level

Vector<int> AmrIce::m_covered_level
protected

keeps track of which levels are completely covered

Referenced by initialize(), and regrid().

◆ m_cur_step

int AmrIce::m_cur_step
protected

◆ m_deltaTopography

Vector<LevelData<FArrayBox>*> AmrIce::m_deltaTopography
protected

stores the accumulated bedrock difference. This is needed because when m_interpolate_zb == false, the regrid() function re-reads the bedrock, which in many cases is a DEM (e.g, bedmap2), so that the evolution of topography would be obliterated

Referenced by initData(), initialize(), levelSetup(), readCheckpointFile(), regrid(), updateGeometry(), writeCheckpointFile(), and ~AmrIce().

◆ m_diffusionTreatment

DiffusionTreatment AmrIce::m_diffusionTreatment
protected

◆ m_diffusivity

Vector<LevelData<FluxBox>* > AmrIce::m_diffusivity
protected

◆ m_divHGradVel_tagVal

Real AmrIce::m_divHGradVel_tagVal
protected

tagging threshold value for undivided div(H grad(vel))

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_divThicknessFlux

Vector<LevelData<FArrayBox>* > AmrIce::m_divThicknessFlux
protected

◆ m_do_restart

bool AmrIce::m_do_restart
protected

Referenced by initialize(), run(), and setDefaults().

◆ m_doInitialVelGuess

bool AmrIce::m_doInitialVelGuess
protected

if true, use nonzero initial guess for velocity field (default is false)

if true, make semi-informed initial guess for first pass through ice velocity solver

Referenced by initialize(), readCheckpointFile(), setDefaults(), and solveVelocityField().

◆ m_doInitialVelSolve

bool AmrIce::m_doInitialVelSolve
protected

if false, don't do initial velocity solve during problem setup. (default is true)

Referenced by initialize(), readCheckpointFile(), setDefaults(), and solveVelocityField().

◆ m_domainSize

RealVect AmrIce::m_domainSize
protected

◆ m_dragCoef

Vector<LevelData<FArrayBox>* > AmrIce::m_dragCoef
mutableprotected

◆ m_dt

Real AmrIce::m_dt
protected

◆ m_eliminate_remote_ice

bool AmrIce::m_eliminate_remote_ice
protected

◆ m_eliminate_remote_ice_after_regrid

bool AmrIce::m_eliminate_remote_ice_after_regrid
protected

◆ m_eliminate_remote_ice_max_iter

int AmrIce::m_eliminate_remote_ice_max_iter
protected

◆ m_eliminate_remote_ice_tol

Real AmrIce::m_eliminate_remote_ice_tol
protected

◆ m_epsSqr_tagVal

Real AmrIce::m_epsSqr_tagVal
protected

tagging value for strain rate invariant

tag if epsSqr*dx > than this value

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_evolve_ice_frac

bool AmrIce::m_evolve_ice_frac
protected

◆ m_evolve_thickness

bool AmrIce::m_evolve_thickness
protected

◆ m_evolve_topography_fix_surface

bool AmrIce::m_evolve_topography_fix_surface
protected

◆ m_evolve_velocity

bool AmrIce::m_evolve_velocity
protected

◆ m_faceSigma

Vector<Real> AmrIce::m_faceSigma
protected

◆ m_faceVelAdvection

Vector<LevelData<FluxBox>* > AmrIce::m_faceVelAdvection
protected

◆ m_faceVelTotal

Vector<LevelData<FluxBox>* > AmrIce::m_faceVelTotal
protected

◆ m_fill_ratio

Real AmrIce::m_fill_ratio
protected

grid efficiency

Referenced by initGrids(), initialize(), regrid(), and setDefaults().

◆ m_finest_level

int AmrIce::m_finest_level
protected

◆ m_finest_timestep_level

int AmrIce::m_finest_timestep_level
protected

if 0 < m_finest_timestep_level < m_finest_level and >= 0, timestep only levels 0 to m_finest_timestep_level, and interpolate any levels above that. The idea is to avoid being hammered too hard by diminishing stability limits on dt

Referenced by initialize(), and setDefaults().

◆ m_fixed_dt

Real AmrIce::m_fixed_dt
protected

Referenced by computeDt(), initialize(), and setDefaults().

◆ m_floating_ice_basal_flux_is_dhdt

bool AmrIce::m_floating_ice_basal_flux_is_dhdt
protected

◆ m_floating_ice_basal_flux_is_min_dhdt

bool AmrIce::m_floating_ice_basal_flux_is_min_dhdt
protected

◆ m_floating_ice_stable

bool AmrIce::m_floating_ice_stable
protected

◆ m_frac_sources

bool AmrIce::m_frac_sources
protected

if true, scale thickness sources (surface flux and basal flux) by iceFrac values (allows for effective partial cells)

Referenced by initialize(), setDefaults(), updateGeometry(), and writeAMRPlotFile().

◆ m_gravity

Real AmrIce::m_gravity
protected

◆ m_grounded_ice_basal_flux_is_dhdt

bool AmrIce::m_grounded_ice_basal_flux_is_dhdt
protected

◆ m_grounded_ice_stable

bool AmrIce::m_grounded_ice_stable
protected

◆ m_groundingLineProximity

Vector<LevelData<FArrayBox>* > AmrIce::m_groundingLineProximity
mutableprotected

◆ m_groundingLineProximity_valid

bool AmrIce::m_groundingLineProximity_valid
mutableprotected

◆ m_groundingLineProximityCalcType

int AmrIce::m_groundingLineProximityCalcType
protected

◆ m_groundingLineProximityScale

Real AmrIce::m_groundingLineProximityScale
protected

◆ m_groundingLineTaggingMaxBasalFrictionCoef

Real AmrIce::m_groundingLineTaggingMaxBasalFrictionCoef
protected

threshold Basal friction coefficient at the grounding line : tag if C < value

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_groundingLineTaggingMinVel

Real AmrIce::m_groundingLineTaggingMinVel
protected

threshold velocity at the grounding line : tag if |u| > value

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_iceDensity

Real AmrIce::m_iceDensity
protected

◆ m_iceFrac

Vector<LevelData<FArrayBox>* > AmrIce::m_iceFrac
protected

real-valued ice fraction real-valued ice fraction on level a_level (0 = no ice, 1 = full of ice, 0<phi<1 – partially filled (useful for calving model and for communication with POP

Referenced by amrIceFrac(), applyCalvingCriterion(), computeH_half(), iceFrac(), initialize(), levelSetup(), readCheckpointFile(), regrid(), setIceFrac(), timeStep(), updateGeometry(), updateIceFrac(), updateInvalidIceFrac(), writeAMRPlotFile(), writeCheckpointFile(), and ~AmrIce().

◆ m_initial_cfl

Real AmrIce::m_initial_cfl
protected

cfl number for initial timestep (useful if initial data needs small cfl)

Referenced by computeDt(), and initialize().

◆ m_initialGuessConstMu

Real AmrIce::m_initialGuessConstMu
protected

◆ m_initialGuessConstVel

RealVect AmrIce::m_initialGuessConstVel
protected

◆ m_initialGuessSolverType

int AmrIce::m_initialGuessSolverType
protected

◆ m_initialGuessType

int AmrIce::m_initialGuessType
protected

◆ m_internalEnergy

Vector<LevelData<FArrayBox>* > AmrIce::m_internalEnergy
protected

◆ m_internalEnergyIBCPtr

IceInternalEnergyIBC* AmrIce::m_internalEnergyIBCPtr
protected

IBC for internalEnergy advection.

Referenced by computeInternalEnergyHalf(), initData(), regrid(), setInternalEnergyBC(), and ~AmrIce().

◆ m_interpolate_zb

bool AmrIce::m_interpolate_zb
protected

if true, interpolate things like base topography at regrid time

if false, use IceThicknesIBC::regridIceGeometry function to set values

Referenced by initialize(), regrid(), and setDefaults().

◆ m_is_defined

bool AmrIce::m_is_defined
protected

is this object initialized?

Referenced by isDefined(), and setDefaults().

◆ m_isothermal

bool AmrIce::m_isothermal
protected

Referenced by initialize(), setDefaults(), and timeStep().

◆ m_laplacian_tagging_max_basal_friction_coef

Real AmrIce::m_laplacian_tagging_max_basal_friction_coef
protected

when tagging on undivided lap(vel), ignore cells where the basal friction coeffcient exceeds

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_laplacian_tagging_val

Real AmrIce::m_laplacian_tagging_val
protected

tagging threshold value for undivided lap(vel)

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_layerSFaceSVel

Vector<LevelData<FArrayBox>* > AmrIce::m_layerSFaceSVel
protected

◆ m_layerSFaceXYVel

Vector<LevelData<FArrayBox>* > AmrIce::m_layerSFaceXYVel
protected

◆ m_layerXYFaceXYVel

Vector<LevelData<FluxBox>* > AmrIce::m_layerXYFaceXYVel
protected

◆ m_margin_tagVal_finestLevel

int AmrIce::m_margin_tagVal_finestLevel
protected

◆ m_max_base_grid_size

int AmrIce::m_max_base_grid_size
protected

max box size for level 0 (defaults to max_box_size)

this allows a different max box size for the level 0 domain, which can be useful since the number of boxes on level 0 is often driven by load balancing concerns, while max_box_size on other levels is generally driven by issues of cache size, etc)

Referenced by initGrids(), initialize(), setDefaults(), and setupFixedGrids().

◆ m_max_box_size

int AmrIce::m_max_box_size
protected

◆ m_max_dt_grow

Real AmrIce::m_max_dt_grow
protected

maximum amount cfl number may grow in one timestep

Referenced by computeDt(), initialize(), and setDefaults().

◆ m_max_level

int AmrIce::m_max_level
protected

◆ m_maxSolverIterations

int AmrIce::m_maxSolverIterations
protected

max number of iterations for velocity solver

Referenced by defineSolver(), initialize(), and setDefaults().

◆ m_muCoefficientPtr

MuCoefficient* AmrIce::m_muCoefficientPtr
protected

sets mu coefficient (phi)

Referenced by readCheckpointFile(), setMuCoefficient(), solveVelocityField(), and ~AmrIce().

◆ m_n_regrids

int AmrIce::m_n_regrids
protected

Referenced by initialize(), and regrid().

◆ m_nesting_radius

int AmrIce::m_nesting_radius
protected

proper nesting radius

Referenced by initGrids(), initialize(), regrid(), and setDefaults().

◆ m_next_report_time

Real AmrIce::m_next_report_time
protected

Referenced by run(), and timeStep().

◆ m_nLayers

unsigned int AmrIce::m_nLayers
protected

◆ m_num_cells

Vector<int> AmrIce::m_num_cells
protected

book-keeping; keeps track of number of cells per level

Referenced by initialize(), regrid(), and timeStep().

◆ m_num_thickness_ghost

int AmrIce::m_num_thickness_ghost
protected

number of ghost cells we need for m_old_thickness

this is dependent on the advection scheme we're using AMRGodunov-based – 4 RK4 – 1

Referenced by initialize(), levelSetup(), readCheckpointFile(), setDefaults(), and setupFixedGrids().

◆ m_offsetTime

Real AmrIce::m_offsetTime
protected

Referenced by initialize(), setDefaults(), setTime(), and time().

◆ m_old_thickness

Vector<LevelData<FArrayBox>*> AmrIce::m_old_thickness
protected

◆ m_plot_interval

int AmrIce::m_plot_interval
protected

Referenced by initData(), run(), and solveVelocityField().

◆ m_plot_prefix

string AmrIce::m_plot_prefix
protected

◆ m_plot_time_interval

Real AmrIce::m_plot_time_interval
protected

write a plot file every m_plot_time_interval years (rather than steps)

Referenced by run().

◆ m_rateFactor

RateFactor* AmrIce::m_rateFactor
protected

rate factor

Referenced by computeA(), setRateFactor(), and ~AmrIce().

◆ m_reduced_plot

bool AmrIce::m_reduced_plot
protected

if true, reduce the number of fields written to plot files

Referenced by writeAMRPlotFile().

◆ m_refinement_ratios

Vector<int> AmrIce::m_refinement_ratios
protected

◆ m_regrid_interval

int AmrIce::m_regrid_interval
protected

regrid interval

Referenced by initialize(), and run().

◆ m_regrid_thickness_interpolation_method

int AmrIce::m_regrid_thickness_interpolation_method
protected

thickness interpolation method to use on regrid, see LevelSigmaCS::ThicknessInterpolationMethod

Referenced by initialize(), regrid(), and setDefaults().

◆ m_removedIceThickness

Vector<LevelData<FArrayBox>* > AmrIce::m_removedIceThickness
protected

◆ m_report_discharge

bool AmrIce::m_report_discharge
protected

if true, report discharge of solid ice from the ice edge

Referenced by initialize(), setDefaults(), and timeStep().

◆ m_report_time_interval

Real AmrIce::m_report_time_interval
protected

report diagnostic every m_report_time_interval years (rather than every time step)

Referenced by initialize(), run(), and setDefaults().

◆ m_reportGroundedIce

bool AmrIce::m_reportGroundedIce
protected

◆ m_reset_floating_friction_to_zero

bool AmrIce::m_reset_floating_friction_to_zero
protected

if false, don't reset basal friction for floating ice to zero (default is true)

This option exists primarly so that we can run the CISM circular shelf test problem

Referenced by initialize(), setBasalFriction(), and setDefaults().

◆ m_restart_step

int AmrIce::m_restart_step
protected

if starting from a restart, timestep of restart

Referenced by readCheckpointFile(), run(), and setDefaults().

◆ m_sA

Vector<LevelData<FArrayBox>* > AmrIce::m_sA
protected

◆ m_seaWaterDensity

Real AmrIce::m_seaWaterDensity
protected

◆ m_seconds_per_unit_time

Real AmrIce::m_seconds_per_unit_time
protected

◆ m_sHeatFlux

Vector<LevelData<FArrayBox>* > AmrIce::m_sHeatFlux
protected

◆ m_sigmaSet

bool AmrIce::m_sigmaSet
protected

Referenced by setDefaults(), and setLayers().

◆ m_sInternalEnergy

Vector<LevelData<FArrayBox>* > AmrIce::m_sInternalEnergy
protected

◆ m_solverType

int AmrIce::m_solverType
protected

what type of nonlinear solver to use for velocity field

Referenced by defineSolver(), initialize(), setDefaults(), and solveVelocityField().

◆ m_stable_dt

Real AmrIce::m_stable_dt
protected

most recent stable timestep (> m_dt if we took a step just to hit a plot interval)

Referenced by computeDt(), and setDefaults().

◆ m_sTemperature

Vector<LevelData<FArrayBox>* > AmrIce::m_sTemperature
protected

◆ m_surfaceBoundaryHeatDataDirichlett

bool AmrIce::m_surfaceBoundaryHeatDataDirichlett
protected

should a Dirichlett internal energy condition be imposed at the upper surface?

Referenced by setDefaults(), setSurfaceHeatBoundaryData(), and surfaceHeatBoundaryDirichlett().

◆ m_surfaceBoundaryHeatDataTemperature

bool AmrIce::m_surfaceBoundaryHeatDataTemperature
protected

is the Dirichlett data a temperature (rather than an internal energy)?

Referenced by setDefaults(), setSurfaceHeatBoundaryData(), and surfaceHeatBoundaryTemperature().

◆ m_surfaceFluxPtr

SurfaceFlux* AmrIce::m_surfaceFluxPtr
protected

sets surface flux for ice sheet

Referenced by computeH_half(), setSurfaceFlux(), writeAMRPlotFile(), and ~AmrIce().

◆ m_surfaceHeatBoundaryDataPtr

SurfaceFlux* AmrIce::m_surfaceHeatBoundaryDataPtr
protected

sets surface heat flux or internalEnergy for ice sheet

Referenced by setSurfaceHeatBoundaryData(), surfaceHeatBoundaryData(), updateInternalEnergy(), and ~AmrIce().

◆ m_surfaceThicknessSource

Vector<LevelData<FArrayBox>* > AmrIce::m_surfaceThicknessSource
mutableprotected

◆ m_tag_cap

int AmrIce::m_tag_cap
protected

maximum level at which refinement tags are computed

Referenced by initGrids(), initialize(), setDefaults(), and tagCells().

◆ m_tag_subset

IntVectSet AmrIce::m_tag_subset
protected

only allow tagging within a subset of the coarse domain

◆ m_tag_thin_cavity

bool AmrIce::m_tag_thin_cavity
protected

◆ m_tag_thin_cavity_thickness

Real AmrIce::m_tag_thin_cavity_thickness
protected

◆ m_tagAllIce

bool AmrIce::m_tagAllIce
protected

tag any cell with ice in it

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_tagAllIceOnLevel0

bool AmrIce::m_tagAllIceOnLevel0
protected

tag any cell with ice in it on level 0

(useful when running a case like Antarctica or Greenland where the useful domain is subset of the computational domain)

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_tagEntireDomain

bool AmrIce::m_tagEntireDomain
protected

tag all cells for refinement (refine entire domain)

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_tagging_val

Real AmrIce::m_tagging_val
protected

tagging value (undivided gradient(vel) threshold for regridding)

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_tagGroundingLine

bool AmrIce::m_tagGroundingLine
protected

tag the grounding line

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_tagMargin

bool AmrIce::m_tagMargin
protected

tag at the ice margin

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_tagOndivHgradVel

bool AmrIce::m_tagOndivHgradVel
protected

tag on div(H grad (vel))

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_tagOnEpsSqr

bool AmrIce::m_tagOnEpsSqr
protected

tag on strain rate invariant?

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_tagOnGradVel

bool AmrIce::m_tagOnGradVel
protected

tag on grad(velocity)?

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_tagOnGroundedLapVel

bool AmrIce::m_tagOnGroundedLapVel
protected

tag on laplacian(velocity) in grounded regions only

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_tagOnLapVel

bool AmrIce::m_tagOnLapVel
protected

tag on laplacian(velocity)

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_tagOnVelRHS

bool AmrIce::m_tagOnVelRHS
protected

tag on velocity solve RHS

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_tagPython

bool AmrIce::m_tagPython
protected

tag cells according to a python function

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_tagPythonFunction

PyObject* AmrIce::m_tagPythonFunction
protected

◆ m_tagPythonModule

PyObject* AmrIce::m_tagPythonModule
protected

Referenced by initialize(), setDefaults(), and ~AmrIce().

◆ m_tags_grow

int AmrIce::m_tags_grow
protected

amount to buffer tags used in regridding

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_tags_grow_dir

IntVect AmrIce::m_tags_grow_dir
protected

◆ m_tagVelDx

bool AmrIce::m_tagVelDx
protected

tag where |vel| * dx > m_maxVelDxVal

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_temperature

Vector<LevelData<FArrayBox>* > AmrIce::m_temperature
protected

◆ m_temporalAccuracy

int AmrIce::m_temporalAccuracy
protected

temporal accuracy

1 = 1st-order (use old-time velocity for flux computation) 2 = 2nd-order (recompute velocity at half-time for flux computation) 3 = 3rd-order Runge-Kutta update (if eventually implemented) 4 = 4th-order Runge-Kutta update

Referenced by implicitThicknessCorrection(), initialize(), setDefaults(), and timeStep().

◆ m_thicknessIBCPtr

IceThicknessIBC* AmrIce::m_thicknessIBCPtr
protected

◆ m_thicknessPatchGodVect

Vector<PatchGodunov*> AmrIce::m_thicknessPatchGodVect
protected

PatchGodunov used for thickness advection – one for each level.

Referenced by computeH_half(), initialize(), and ~AmrIce().

◆ m_thicknessPhysPtr

GodunovPhysics* AmrIce::m_thicknessPhysPtr
protected

pointer to a GodunovPhysics for thickness advection

Referenced by initialize(), and ~AmrIce().

◆ m_tillWaterDepth

Vector<LevelData<FArrayBox>* > AmrIce::m_tillWaterDepth
protected

◆ m_time

Real AmrIce::m_time
protected

◆ m_timeStepTicks

bool AmrIce::m_timeStepTicks
protected

Referenced by computeDt(), initialize(), and setDefaults().

◆ m_topographyFluxPtr

SurfaceFlux* AmrIce::m_topographyFluxPtr
protected

sets topography flux (which raises/lowers bedrock)

Referenced by setTopographyFlux(), and updateGeometry().

◆ m_vect_coordSys

Vector<RefCountedPtr<LevelSigmaCS > > AmrIce::m_vect_coordSys
protected

◆ m_vectTags

Vector<IntVectSet> AmrIce::m_vectTags
protected

stores tags from previous regrids

Referenced by tagCellsInit().

◆ m_vectTagSubset

Vector<IntVectSet> AmrIce::m_vectTagSubset
protected

Referenced by initialize(), and tagCells().

◆ m_velBasalC

Vector<LevelData<FArrayBox>* > AmrIce::m_velBasalC
protected

◆ m_velDx_tagVal

Real AmrIce::m_velDx_tagVal
protected

◆ m_velDx_tagVal_finestLevelFloating

int AmrIce::m_velDx_tagVal_finestLevelFloating
protected

◆ m_velDx_tagVal_finestLevelGrounded

int AmrIce::m_velDx_tagVal_finestLevelGrounded
protected

◆ m_velocity

Vector<LevelData<FArrayBox>*> AmrIce::m_velocity
protected

◆ m_velocity_exit

Real AmrIce::m_velocity_exit
protected

maximum acceptable velocity: if max(u) > m_vel_exit , then dump a plot file and exit

Referenced by computeDt(), initialize(), and setDefaults().

◆ m_velocity_solve_interval

int AmrIce::m_velocity_solve_interval
protected

solve the velocity problem every m_velocitySolveInterval timesteps

Referenced by initialize(), setDefaults(), and solveVelocityField().

◆ m_velocity_solver_tolerance

Real AmrIce::m_velocity_solver_tolerance
protected

solver tolerance for velSolver.

Referenced by defineSolver(), initialize(), and setDefaults().

◆ m_velocitySolveFinalResidualNorm

Real AmrIce::m_velocitySolveFinalResidualNorm
protected

Referenced by solveVelocityField().

◆ m_velocitySolveInitialResidualNorm

Real AmrIce::m_velocitySolveInitialResidualNorm
protected

Residual norms at the start and end of the last velocity solve.

Referenced by readCheckpointFile(), regrid(), setDefaults(), and solveVelocityField().

◆ m_velRHS

Vector<LevelData<FArrayBox>* > AmrIce::m_velRHS
protected

velocity solve RHS (in case we want to save it)

Referenced by initialize(), levelSetup(), readCheckpointFile(), regrid(), solveVelocityField(), tagCellsLevel(), writeAMRPlotFile(), and ~AmrIce().

◆ m_velRHS_tagVal

Real AmrIce::m_velRHS_tagVal
protected

tagging value for velocity RHS

Referenced by initialize(), setDefaults(), and tagCellsLevel().

◆ m_velSolver

IceVelocitySolver* AmrIce::m_velSolver
protected

nonlinear elliptic solver for velocity field

Referenced by defineSolver(), readCheckpointFile(), restart(), solveVelocityField(), and ~AmrIce().

◆ m_viscosityCoefCell

Vector<LevelData<FArrayBox>* > AmrIce::m_viscosityCoefCell
mutableprotected

◆ m_viscousTensor_valid

bool AmrIce::m_viscousTensor_valid
mutableprotected

◆ m_viscousTensorCell

Vector<LevelData<FArrayBox>* > AmrIce::m_viscousTensorCell
mutableprotected

◆ m_viscousTensorFace

Vector<LevelData<FluxBox>* > AmrIce::m_viscousTensorFace
mutableprotected

Referenced by updateViscousTensor(), and ~AmrIce().

◆ m_volumeThicknessSource

Vector<LevelData<FArrayBox>* > AmrIce::m_volumeThicknessSource
mutableprotected

◆ m_waterDepth

Real AmrIce::m_waterDepth
protected

Referenced by setDefaults().

◆ m_write_baseVel

bool AmrIce::m_write_baseVel
protected

Referenced by writeAMRPlotFile().

◆ m_write_dHDt

bool AmrIce::m_write_dHDt
protected

if true, include dH/dt in plotfiles

Referenced by initialize(), and writeAMRPlotFile().

◆ m_write_fluxVel

bool AmrIce::m_write_fluxVel
protected

◆ m_write_internal_energy

bool AmrIce::m_write_internal_energy
protected

Referenced by writeAMRPlotFile().

◆ m_write_ismip6

bool AmrIce::m_write_ismip6
protected

Referenced by restart(), and writeAMRPlotFile().

◆ m_write_layer_velocities

bool AmrIce::m_write_layer_velocities
protected

Referenced by writeAMRPlotFile().

◆ m_write_map_file

bool AmrIce::m_write_map_file
protected

if true, write out .map.hdf5 file

Referenced by writeAMRPlotFile().

◆ m_write_mask

bool AmrIce::m_write_mask
protected

if true, include mask in plotfiles

Referenced by initialize(), and writeAMRPlotFile().

◆ m_write_presolve_plotfiles

bool AmrIce::m_write_presolve_plotfiles
protected

if true, write out plotfile before doing velocity solves

this can be convenient when working with the solverBenchmark

Referenced by solveVelocityField().

◆ m_write_solver_rhs

bool AmrIce::m_write_solver_rhs
protected

if true, include velocity solver RHS in plotfiles

Referenced by initialize(), and writeAMRPlotFile().

◆ m_write_thickness_sources

bool AmrIce::m_write_thickness_sources
protected

Referenced by writeAMRPlotFile().

◆ m_write_viscousTensor

bool AmrIce::m_write_viscousTensor
protected

Referenced by writeAMRPlotFile().

◆ s_verbosity

int AmrIce::s_verbosity = 1
staticprotected

The documentation for this class was generated from the following files: