BISICLES AMR ice sheet model
0.9
|
class to manage non-subcycled AMR ice-sheet model More...
#include <AmrIce.H>
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... | |
![]() | |
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< LevelSigmaCS > | geometry (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 () |
SurfaceFlux & | surfaceHeatBoundaryData () 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 |
SurfaceFlux & | basalHeatBoundaryData () 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) |
![]() | |
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 |
IceVelocitySolver * | m_velSolver |
nonlinear elliptic solver for velocity field More... | |
ConstitutiveRelation * | m_constitutiveRelation |
constitutive relation More... | |
RateFactor * | m_rateFactor |
rate factor More... | |
BasalFrictionRelation * | m_basalFrictionRelation |
basal Friction relation More... | |
RateFactor * | m_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... | |
IceThicknessIBC * | m_thicknessIBCPtr |
IBC for thickness advection. More... | |
IceInternalEnergyIBC * | m_internalEnergyIBCPtr |
IBC for internalEnergy advection. More... | |
CalvingModel * | m_calvingModelPtr |
Calving model. More... | |
SurfaceFlux * | m_surfaceFluxPtr |
sets surface flux for ice sheet More... | |
SurfaceFlux * | m_basalFluxPtr |
sets basal flux for ice sheet More... | |
SurfaceFlux * | m_surfaceHeatBoundaryDataPtr |
sets surface heat flux or internalEnergy for ice sheet More... | |
SurfaceFlux * | m_basalHeatBoundaryDataPtr |
sets basal heat flux or temperature for ice sheet More... | |
SurfaceFlux * | m_topographyFluxPtr |
sets topography flux (which raises/lowers bedrock) More... | |
Vector< LevelData< FArrayBox > * > | m_deltaTopography |
BasalFriction * | m_basalFrictionPtr |
sets basal friction coefficient (beta^2) More... | |
MuCoefficient * | m_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_muCoeff |
if true, include viscosity multiplier (muCoefficient) in plotfiles 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 |
class to manage non-subcycled AMR ice-sheet model
|
protected |
|
protected |
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 |
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().
|
virtual |
destructor
destructor
References m_A, m_addedIceThickness, m_bA, m_basalFluxPtr, m_basalFrictionPtr, m_basalFrictionRelation, m_basalHeatBoundaryDataPtr, m_basalRateFactor, m_basalThicknessSource, m_bHeatFlux, m_bInternalEnergy, m_bTemperature, m_calvedIceThickness, m_calvingModelPtr, m_cellMuCoef, m_constitutiveRelation, m_deltaTopography, m_diffusivity, m_divThicknessFlux, m_dragCoef, m_faceVelAdvection, m_faceVelTotal, m_groundingLineProximity, m_iceFrac, m_internalEnergy, m_internalEnergyIBCPtr, m_layerSFaceSVel, m_layerSFaceXYVel, m_layerXYFaceXYVel, m_muCoefficientPtr, m_old_thickness, m_rateFactor, m_removedIceThickness, m_sA, m_sHeatFlux, m_sInternalEnergy, m_sTemperature, m_surfaceFluxPtr, m_surfaceHeatBoundaryDataPtr, m_surfaceThicknessSource, m_tagPythonFunction, m_tagPythonModule, m_temperature, m_thicknessIBCPtr, m_thicknessPatchGodVect, m_thicknessPhysPtr, m_tillWaterDepth, m_velBasalC, m_velocity, m_velRHS, m_velSolver, m_viscosityCoefCell, m_viscousTensorCell, m_viscousTensorFace, m_volumeThicknessSource, and s_verbosity.
|
inline |
References m_addedIceThickness.
|
inline |
Referenced by init_bisicles_instance(), and main().
|
protected |
update real-valued ice fraction through advection from neighboring cells
References dx(), LevelSigmaCS::getFloatingMask(), LevelSigmaCS::getH(), LevelSigmaCS::getTopography(), m_amrDomains, m_amrDx, m_amrGrids, m_cfl, m_cur_step, m_dt, m_finest_level, m_max_box_size, m_refinement_ratios, m_thicknessIBCPtr, m_time, m_vect_coordSys, m_velocity, IceThicknessIBC::setIceFractionBCs(), time(), and IceThicknessIBC::velocityGhostBC().
Referenced by surfaceHeatFlux(), and timeStep().
|
inline |
References m_amrDx.
Referenced by MaximumExtentCalvingModel::applyCriterion(), and CliffCollapseCalvingModel::applyCriterion().
|
inline |
References incrementIceThickness(), and m_vect_coordSys.
Referenced by AMRDamage::timestep(), and AMRMelange::timestep().
|
inline |
return reference to full AMR ice fraction
References m_iceFrac.
|
inline |
return const reference to full AMR ice fraction
References groundingLineProximity(), and m_iceFrac.
|
inline |
References m_velocity.
Referenced by AMRDamage::timestep().
|
protected |
References CalvingModel::applyCriterion(), eliminateRemoteIce(), CalvingModel::Initialization, m_addedIceThickness, m_calvedIceThickness, m_calvingModelPtr, m_eliminate_remote_ice, m_finest_level, m_iceFrac, m_removedIceThickness, m_vect_coordSys, AmrIce::Observer::PostCalving, and AmrIce::Observer::PreCalving.
Referenced by initData(), solveVelocityField(), surfaceHeatFlux(), and updateGeometry().
|
inlinevirtual |
const LevelData< FArrayBox > * AmrIce::basalThicknessSource | ( | int | a_level | ) | const |
References m_basalThicknessSource.
Referenced by groundingLineProximityScale(), and AMRDamage::timestep().
|
inline |
access function for calved ice data
References m_calvedIceThickness.
|
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().
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().
|
protected |
Referenced by surfaceHeatFlux().
|
protected |
compute timestep
References dt(), EXPLICIT, finestTimestepLevel(), m_amrDx, m_amrGrids, m_cfl, m_cur_step, m_diffusionTreatment, m_faceVelAdvection, m_fixed_dt, m_initial_cfl, m_max_dt_grow, m_plot_prefix, m_stable_dt, m_timeStepTicks, m_velocity_exit, s_verbosity, and writePlotFile().
Referenced by computeInitialDt(), run(), and surfaceHeatFlux().
|
protected |
given the current cell centred velocity field, compute a face centred velocity field
References IceUtility::computeFaceVelocity(), IMPLICIT, m_A, m_additionalVelocity, m_amrGrids, m_bA, m_constitutiveRelation, m_diffusionTreatment, m_finest_level, m_refinement_ratios, m_sA, m_thicknessIBCPtr, m_vect_coordSys, and m_velocity.
Referenced by solveVelocityField(), and surfaceHeatFlux().
void AmrIce::computeH_half | ( | Vector< LevelData< FluxBox > * > & | a_H_half, |
Real | a_dt | ||
) |
References dx(), finestTimestepLevel(), IMPLICIT, m_amrGrids, m_basalFluxPtr, m_basalThicknessSource, m_diffusionTreatment, m_diffusivity, m_faceVelAdvection, m_iceFrac, m_old_thickness, m_refinement_ratios, m_surfaceFluxPtr, m_surfaceThicknessSource, m_thicknessPatchGodVect, m_time, m_volumeThicknessSource, setToZero(), and SurfaceFlux::surfaceThicknessFlux().
Referenced by setCalvingModel(), and timeStep().
|
protected |
compute timestep at initial time
References computeDt(), dt(), and s_verbosity.
Referenced by run(), and surfaceHeatFlux().
|
protected |
References m_amrDomains, m_amrDx, m_amrGrids, m_finest_level, m_internalEnergy, m_internalEnergyIBCPtr, m_nLayers, m_old_thickness, m_refinement_ratios, and m_time.
Referenced by surfaceHeatFlux(), and timeStep().
void AmrIce::computeThicknessFluxes | ( | Vector< LevelData< FluxBox > * > & | a_vectFluxes, |
const Vector< LevelData< FluxBox > * > & | a_H_half, | ||
const Vector< LevelData< FluxBox > * > & | a_faceVelAdvection | ||
) |
References finestTimestepLevel(), m_amrGrids, and m_refinement_ratios.
Referenced by setCalvingModel(), and timeStep().
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().
|
protectedvirtual |
initialize diagnostics
define nonlinear ellipic solver for computing velocity field
References IceVelocitySolver::define(), FASIceSolver::define(), InverseVerticallyIntegratedVelocitySolver::define(), FASMGAMR, InverseVerticallyIntegrated, JFNK, KnownVelocity, m_amrDomains, m_amrDx, m_amrGrids, m_basalFrictionRelation, m_constitutiveRelation, m_finest_level, m_maxSolverIterations, m_refinement_ratios, m_solverType, m_thicknessIBCPtr, m_vect_coordSys, m_velocity_solver_tolerance, m_velSolver, PetscNLSolver, Picard, Python, s_verbosity, IceThicknessIBC::setGridHierarchy(), IceVelocitySolver::setMaxIterations(), FASIceSolver::setMaxIterations(), IceVelocitySolver::setTolerance(), FASIceSolver::setTolerance(), and IceVelocitySolver::setVerbosity().
Referenced by initGrids(), readCheckpointFile(), regrid(), setupFixedGrids(), solveVelocityField(), and surfaceHeatFlux().
|
protectedvirtual |
compute RHS for velocity field solve
References IceUtility::defineRHS(), dx(), m_amrDomains, m_amrGrids, m_dt, m_finest_level, m_thicknessIBCPtr, m_time, m_vect_coordSys, and IceThicknessIBC::modifyVelocityRHS().
Referenced by solveVelocityField(), surfaceHeatFlux(), and writeAMRPlotFile().
const LevelData< FArrayBox > * AmrIce::dragCoefficient | ( | int | a_level | ) | const |
References m_dragCoef, and m_viscousTensor_valid.
Referenced by groundingLineProximityScale(), restart(), and writeAMRPlotFile().
|
inline |
References m_dt.
Referenced by CliffCollapseCalvingModel::applyCriterion(), computeDt(), computeInitialDt(), MelangeIceObserver::notify(), DamageIceObserver::notify(), run(), and updateGroundingLineProximity().
|
inlinevirtual |
Implements AmrIceBase.
References m_vect_coordSys.
Referenced by advectIceFrac(), CrevasseCalvingModel::applyCriterion(), bisicles_push_pop_thin_ice(), computeH_half(), defineVelRHS(), levelSetup(), MelangeIceObserver::notify(), DamageIceObserver::notify(), readCheckpointFile(), regrid(), restart(), setupFixedGrids(), solveVelocityField(), tagCellsLevel(), timeStep(), updateGeometry(), updateGroundingLineProximity(), updateInternalEnergy(), and updateInvalidIceFrac().
|
protected |
Identify regions of floating ice that are remote from grounded ice and eliminate them.
References IceUtility::eliminateRemoteIce(), m_addedIceThickness, m_amrDomains, m_amrDx, m_amrGrids, m_calvedIceThickness, m_eliminate_remote_ice_max_iter, m_eliminate_remote_ice_tol, m_finest_level, m_refinement_ratios, m_removedIceThickness, m_vect_coordSys, m_velocity, AmrIce::Observer::PostCalving, AmrIce::Observer::PreCalving, and s_verbosity.
Referenced by applyCalvingCriterion(), initData(), regrid(), solveVelocityField(), and surfaceHeatFlux().
|
inline |
access function for face-centered velocities
References m_faceVelTotal.
Referenced by AMRDamage::timestep().
|
inline |
access function for layered face-centered velocities
References m_layerXYFaceXYVel.
|
inlinevirtual |
Implements AmrIceBase.
References m_finest_level.
Referenced by bisicles_push_pop_thin_ice(), MelangeIceObserver::notify(), DamageIceObserver::notify(), setToZero(), and AMRDamage::timestep().
|
inlineprotected |
References m_finest_level.
Referenced by computeDt(), computeH_half(), computeThicknessFluxes(), implicitThicknessCorrection(), incrementIceThickness(), timeStep(), updateGeometry(), and updateGroundingLineProximity().
|
inlinevirtual |
Implements AmrIceBase.
References m_vect_coordSys.
Referenced by MaskedCalvingModel::applyCriterion(), CrevasseCalvingModel::applyCriterion(), DeglaciationCalvingModelA::applyCriterion(), DomainEdgeCalvingModel::applyCriterion(), ProximityCalvingModel::applyCriterion(), DeglaciationCalvingModelB::applyCriterion(), DamageCalvingModel::applyCriterion(), ThicknessCalvingModel::applyCriterion(), MaximumExtentCalvingModel::applyCriterion(), FlotationCalvingModel::applyCriterion(), CliffCollapseCalvingModel::applyCriterion(), VariableRateCalvingModel::applyCriterion(), RateProportionalToSpeedCalvingModel::applyCriterion(), bisicles_push_pop_thin_ice(), CrevasseCalvingModel::computeStressMeasure(), AMRMelange::increment(), and restart().
|
inline |
References m_faceSigma, and setLayers().
Referenced by levelSetup(), readCheckpointFile(), and writeCheckpointFile().
|
inline |
Referenced by bisicles_get_header().
|
inline |
|
inline |
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().
|
inlinevirtual |
Implements AmrIceBase.
References m_amrGrids.
Referenced by bisicles_push_pop_thin_ice(), MelangeIceObserver::notify(), and DamageIceObserver::notify().
|
inline |
References m_amrGrids.
Referenced by helmholtzSolve(), implicitThicknessCorrection(), readCheckpointFile(), restart(), and updateGroundingLineProximity().
|
virtual |
Implements AmrIceBase.
References m_groundingLineProximity, and updateGroundingLineProximity().
Referenced by amrIceFrac(), and ProximityCalvingModel::applyCriterion().
|
inlinevirtual |
Implements AmrIceBase.
References basalThicknessSource(), dragCoefficient(), m_groundingLineProximityScale, surfaceThicknessSource(), viscosityCoefficient(), and viscousTensor().
|
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().
|
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.
|
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.
|
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.
|
protected |
implicit solve for diffusive fluxes
References finestTimestepLevel(), LevelSigmaCS::getH(), grids(), helmholtzSolve(), m_additionalDiffusivity, m_amrDomains, m_amrDx, m_amrGrids, m_diffusivity, m_refinement_ratios, m_temporalAccuracy, m_vect_coordSys, and s_verbosity.
Referenced by surfaceHeatFlux(), and updateGeometry().
void AmrIce::incrementIceThickness | ( | Vector< LevelData< FArrayBox > *> | a_thk | ) |
nearly direct access to the ice thickness
References finestTimestepLevel(), LevelSigmaCS::getH(), m_amrDomains, m_amrDx, m_amrGrids, m_dt, m_finest_level, m_refinement_ratios, m_thicknessIBCPtr, m_time, m_vect_coordSys, LevelSigmaCS::recomputeGeometry(), and IceThicknessIBC::setGeometryBCs().
Referenced by amrGeometry(), and setLayers().
|
protected |
Referenced by surfaceHeatFlux().
|
protected |
initialize data on hierarchy
References applyCalvingCriterion(), IceThicknessIBC::define(), eliminateRemoteIce(), CalvingModel::Initialization, IceThicknessIBC::initializeIceGeometry(), IceInternalEnergyIBC::initializeIceInternalEnergy(), m_A_valid, m_amrDomains, m_amrDx, m_amrGrids, m_bInternalEnergy, m_deltaTopography, m_domainSize, m_eliminate_remote_ice, m_eliminate_remote_ice_after_regrid, m_finest_level, m_groundingLineProximity_valid, m_internalEnergy, m_internalEnergyIBCPtr, m_old_thickness, m_plot_interval, m_refinement_ratios, m_sInternalEnergy, m_temperature, m_thicknessIBCPtr, m_tillWaterDepth, m_time, m_vect_coordSys, m_velocity, s_verbosity, setIceFrac(), setToZero(), solveVelocityField(), updateTemperature(), and writePlotFile().
Referenced by initGrids(), setupFixedGrids(), and surfaceHeatFlux().
|
protected |
initialize grids at initial time
References defineSolver(), initData(), levelSetup(), m_A_valid, m_amrDomains, m_amrGrids, m_block_factor, m_fill_ratio, m_finest_level, m_groundingLineProximity_valid, m_max_base_grid_size, m_max_box_size, m_max_level, m_nesting_radius, m_refinement_ratios, m_tag_cap, m_vect_coordSys, m_velocity, m_viscousTensor_valid, s_verbosity, and tagCellsInit().
Referenced by initialize(), and surfaceHeatFlux().
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_muCoeff, m_write_solver_rhs, restart(), s_verbosity, IceThermodynamics::setConstants(), setLayers(), setupFixedGrids(), and time().
Referenced by init_bisicles_instance(), and main().
bool AmrIce::isDefined | ( | ) | const |
is this object defined and initialized?
References m_is_defined.
Referenced by levelSetup(), and setCalvingModel().
|
protected |
set up storage, etc on an AMR level
References dx(), getFaceSigma(), isDefined(), m_addedIceThickness, m_amrDomains, m_amrDx, m_basalThicknessSource, m_bHeatFlux, m_bInternalEnergy, m_calvedIceThickness, m_cellMuCoef, m_deltaTopography, m_diffusivity, m_divThicknessFlux, m_faceVelAdvection, m_faceVelTotal, m_gravity, m_iceDensity, m_iceFrac, m_internalEnergy, m_layerSFaceSVel, m_layerSFaceXYVel, m_layerXYFaceXYVel, m_max_level, m_nLayers, m_num_thickness_ghost, m_old_thickness, m_refinement_ratios, m_removedIceThickness, m_seaWaterDensity, m_sHeatFlux, m_sInternalEnergy, m_surfaceThicknessSource, m_tillWaterDepth, m_vect_coordSys, m_velBasalC, m_velocity, m_velRHS, and m_volumeThicknessSource.
Referenced by initGrids(), setupFixedGrids(), and surfaceHeatFlux().
|
inline |
return const ref to real-valued 'mu coefficient' on level a_level
References m_cellMuCoef.
Referenced by ThicknessCalvingModel::applyCriterion().
|
staticprotected |
Referenced by surfaceHeatFlux().
void AmrIce::readCheckpointFile | ( | HDF5Handle & | a_handle | ) |
read checkpoint file for restart
read checkpoint data from file pointed to by a_handle
note that although this check appears to work, it makes a mess of a_handle and the next lot of data are not read...
References InverseIceVelocitySolver::basalFriction(), IceThermodynamics::composeInternalEnergy(), defineSolver(), dx(), getFaceSigma(), LevelSigmaCS::getH(), grids(), m_addedIceThickness, m_amrDomains, m_amrDx, m_amrGrids, m_basalFrictionPtr, m_basalThicknessSource, m_bHeatFlux, m_bInternalEnergy, m_calvedIceThickness, m_cellMuCoef, m_cfl, m_cur_step, m_deltaTopography, m_diffusivity, m_divThicknessFlux, m_doInitialVelGuess, m_doInitialVelSolve, m_dt, m_faceSigma, m_faceVelAdvection, m_faceVelTotal, m_finest_level, m_gravity, m_iceDensity, m_iceFrac, m_internalEnergy, m_layerSFaceSVel, m_layerSFaceXYVel, m_layerXYFaceXYVel, m_max_level, m_muCoefficientPtr, m_nLayers, m_num_thickness_ghost, m_old_thickness, m_refinement_ratios, m_removedIceThickness, m_restart_step, m_seaWaterDensity, m_seconds_per_unit_time, m_sHeatFlux, m_sInternalEnergy, m_surfaceThicknessSource, m_tillWaterDepth, m_time, m_vect_coordSys, m_velBasalC, m_velocity, m_velocitySolveInitialResidualNorm, m_velRHS, m_velSolver, m_volumeThicknessSource, InverseIceVelocitySolver::muCoefficient(), LevelSigmaCS::recomputeGeometry(), refRatios(), s_verbosity, setIceFrac(), LevelSigmaCS::setTopography(), solveVelocityField(), time(), and updateTemperature().
Referenced by getHeader(), and restart().
|
inlinevirtual |
Implements AmrIceBase.
References m_refinement_ratios.
Referenced by MelangeIceObserver::notify(), DamageIceObserver::notify(), and readCheckpointFile().
void AmrIce::regrid | ( | ) |
do regridding
References computeTotalIce(), defineSolver(), destructiveRegrid(), dx(), eliminateRemoteIce(), m_A_valid, m_addedIceThickness, m_amrDomains, m_amrDx, m_amrGrids, m_basalThicknessSource, m_bHeatFlux, m_bInternalEnergy, m_block_factor, m_calvedIceThickness, m_cellMuCoef, m_covered_level, m_deltaTopography, m_diffusivity, m_divThicknessFlux, m_domainSize, m_dt, m_eliminate_remote_ice, m_eliminate_remote_ice_after_regrid, m_evolve_velocity, m_faceVelAdvection, m_faceVelTotal, m_fill_ratio, m_finest_level, m_groundingLineProximity_valid, m_iceFrac, m_internalEnergy, m_internalEnergyIBCPtr, m_interpolate_zb, m_layerSFaceSVel, m_layerSFaceXYVel, m_layerXYFaceXYVel, m_max_box_size, m_max_level, m_n_regrids, m_nesting_radius, m_nLayers, m_num_cells, m_old_thickness, m_refinement_ratios, m_regrid_thickness_interpolation_method, m_removedIceThickness, m_sHeatFlux, m_sInternalEnergy, m_surfaceThicknessSource, m_thicknessIBCPtr, m_tillWaterDepth, m_time, m_vect_coordSys, m_velBasalC, m_velocity, m_velocitySolveInitialResidualNorm, m_velRHS, m_volumeThicknessSource, IceThicknessIBC::regridIceGeometry(), s_verbosity, IceThicknessIBC::setGeometryBCs(), IceInternalEnergyIBC::setIceInternalEnergyBC(), solveVelocityField(), tagCells(), updateTemperature(), and IceThicknessIBC::velocityGhostBC().
Referenced by run(), and setCalvingModel().
|
inline |
References m_removedIceThickness.
|
inline |
References AmrIce::Observer::notify().
Referenced by AmrIce::Observer::~Observer().
void AmrIce::restart | ( | const string & | a_restart_file | ) |
set up for restart
References computeAreaFraction(), dragCoefficient(), dx(), flattenCellData(), geometry(), LevelSigmaCS::getFloatingMask(), LevelSigmaCS::getH(), grids(), LevelSigmaCS::iceDensity(), m_amrDx, m_amrGrids, m_basalThicknessSource, m_bTemperature, m_calvedIceThickness, m_dt, m_finest_level, m_layerSFaceXYVel, m_nLayers, m_old_thickness, m_plot_prefix, m_sTemperature, m_surfaceThicknessSource, m_time, m_vect_coordSys, m_velocity, m_velSolver, m_volumeThicknessSource, m_write_ismip6, readCheckpointFile(), DomainDiagnosticData::record(), DomainDiagnosticData::reset(), column_thermodynamics::rhoi, s_verbosity, InverseIceVelocitySolver::setPreviousTime(), time(), DomainDiagnosticData::write(), and writeAMRHierarchyHDF5().
Referenced by bisicles_read_checkpoint(), getHeader(), and initialize().
void AmrIce::run | ( | Real | a_max_time, |
int | a_max_step | ||
) |
advance solution until either max_time or max_step are reached
References computeDt(), computeInitialDt(), dt(), m_addedIceThickness, m_calvedIceThickness, m_check_exit, m_check_interval, m_cur_step, m_do_restart, m_next_report_time, m_plot_interval, m_plot_time_interval, m_regrid_interval, m_removedIceThickness, m_report_time_interval, m_restart_step, m_time, regrid(), s_verbosity, setToZero(), timeStep(), writeCheckpointFile(), and writePlotFile().
Referenced by main(), and setCalvingModel().
|
inline |
set basal flux for ice sheet
References m_basalFluxPtr, and SurfaceFlux::new_surfaceFlux().
Referenced by init_bisicles_instance(), and main().
|
inline |
set basal friction
References m_basalFrictionPtr, and BasalFriction::new_basalFriction().
Referenced by init_bisicles_instance(), main(), solveVelocityField(), surfaceHeatFlux(), and writeAMRPlotFile().
|
protectedvirtual |
set basal friction coefficients C,C0 prior to velocity solve
References IceUtility::computeA(), IceUtility::computeC0(), m_amrDx, m_amrGrids, m_basalFrictionPtr, m_basalRateFactor, m_bInternalEnergy, m_dt, m_finest_level, m_reset_floating_friction_to_zero, m_vect_coordSys, BasalFriction::setBasalFriction(), IceUtility::setFloatingBasalFriction(), and time().
|
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().
|
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().
|
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().
|
inline |
References computeH_half(), computeThicknessFluxes(), computeTotalIce(), getIceThickness(), isDefined(), m_calvingModelPtr, CalvingModel::new_CalvingModel(), regrid(), run(), timeStep(), and updateGeometry().
Referenced by init_bisicles_instance(), and main().
|
inline |
set constitutive relation
needs to be done before calling initialize
References ConstitutiveRelation::getNewConstitutiveRelation(), and m_constitutiveRelation.
Referenced by init_bisicles_instance(), and main().
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().
|
inline |
set domain size (in meters)
References m_domainSize.
Referenced by init_bisicles_instance(), and main().
|
inline |
Referenced by bisicles_set_header().
|
inline |
|
inline |
|
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().
|
protected |
Referenced by surfaceHeatFlux().
void AmrIce::setInternalEnergyBC | ( | IceInternalEnergyIBC * | a_internalEnergyIBC | ) |
set BC for internalEnergy advection
References m_internalEnergyIBCPtr, and IceInternalEnergyIBC::new_internalEnergyIBC().
Referenced by init_bisicles_instance(), main(), and setBasalFrictionRelation().
|
protected |
References incrementIceThickness(), m_faceSigma, m_nLayers, and m_sigmaSet.
Referenced by getFaceSigma(), and initialize().
|
inline |
References m_muCoefficientPtr, and MuCoefficient::new_muCoefficient().
Referenced by init_bisicles_instance(), main(), solveVelocityField(), and surfaceHeatFlux().
|
protectedvirtual |
set mu coefficient (phi) prior to velocity solve
References m_amrDomains, m_amrGrids, m_dt, m_finest_level, m_muCoefficientPtr, m_refinement_ratios, m_vect_coordSys, MuCoefficient::setMuCoefficient(), and time().
|
inline |
set rate factor
needs to be done before calling initialize
References RateFactor::getNewRateFactor(), and m_rateFactor.
Referenced by init_bisicles_instance(), and main().
|
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().
|
inline |
set surfact flux for ice sheet
References m_surfaceFluxPtr, and SurfaceFlux::new_surfaceFlux().
Referenced by init_bisicles_instance(), and main().
|
inline |
set surface Heat flux for ice sheet
References m_surfaceBoundaryHeatDataDirichlett, m_surfaceBoundaryHeatDataTemperature, m_surfaceHeatBoundaryDataPtr, and SurfaceFlux::new_surfaceFlux().
Referenced by init_bisicles_instance(), and main().
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().
|
inline |
References m_offsetTime, and m_time.
|
inline |
set bedrock flux for ice sheet
References m_topographyFluxPtr, and SurfaceFlux::new_surfaceFlux().
Referenced by init_bisicles_instance(), and main().
|
protected |
References finestLevel().
Referenced by computeH_half(), initData(), run(), and surfaceHeatFlux().
|
protected |
set up grids from grids file
References defineSolver(), dx(), initData(), levelSetup(), m_amrDomains, m_amrDx, m_amrGrids, m_block_factor, m_finest_level, m_max_base_grid_size, m_max_box_size, m_max_level, m_num_thickness_ghost, m_refinement_ratios, m_vect_coordSys, m_velocity, and s_verbosity.
Referenced by initialize(), and surfaceHeatFlux().
|
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().
|
inlinevirtual |
Implements AmrIceBase.
References m_surfaceHeatBoundaryDataPtr.
Referenced by updateInternalEnergy().
|
inlinevirtual |
Implements AmrIceBase.
References m_surfaceBoundaryHeatDataDirichlett.
Referenced by updateInternalEnergy().
|
inlinevirtual |
Implements AmrIceBase.
References m_surfaceBoundaryHeatDataTemperature.
Referenced by updateInternalEnergy().
|
inline |
access function for surface heat flux
References advectIceFrac(), applyCalvingCriterion(), computeA(), computeDischarge(), computeDt(), computeFaceVelocity(), computeInitialDt(), computeInternalEnergyHalf(), defineSolver(), defineVelRHS(), eliminateRemoteIce(), helmholtzSolve(), implicitThicknessCorrection(), incrementWithDivFlux(), initData(), initGrids(), levelSetup(), m_sHeatFlux, postInterpolationReFloat(), setBasalFriction(), setIceFrac(), setIceFracBC(), setMuCoefficient(), setToZero(), setupFixedGrids(), solveVelocityField(), tagCells(), tagCellsInit(), tagCellsLevel(), updateCoordSysWithNewThickness(), updateIceFrac(), updateInternalEnergy(), updateInvalidIceFrac(), and updateTemperature().
Referenced by updateInternalEnergy().
|
inline |
access function for surface temperature
References m_sInternalEnergy.
const LevelData< FArrayBox > * AmrIce::surfaceThicknessSource | ( | int | a_level | ) | const |
References m_surfaceThicknessSource.
Referenced by groundingLineProximityScale(), and AMRDamage::timestep().
|
protected |
compute tags for regridding
References m_finest_level, m_tag_cap, m_vectTagSubset, s_verbosity, and tagCellsLevel().
Referenced by regrid(), surfaceHeatFlux(), and tagCellsInit().
|
protected |
compute tags at initial time
References m_vectTags, s_verbosity, and tagCells().
Referenced by initGrids(), and surfaceHeatFlux().
|
protected |
compute tags for the level a_level
References ConstitutiveRelation::computeStrainRateInvariant(), dx(), LevelSigmaCS::getFaceH(), LevelSigmaCS::getFloatingMask(), LevelSigmaCS::getH(), LevelSigmaCS::getTopography(), m_amrDomains, m_amrDx, m_amrGrids, m_constitutiveRelation, m_divHGradVel_tagVal, m_epsSqr_tagVal, m_groundingLineTaggingMaxBasalFrictionCoef, m_groundingLineTaggingMinVel, m_laplacian_tagging_max_basal_friction_coef, m_laplacian_tagging_val, m_margin_tagVal_finestLevel, m_refinement_ratios, 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_tags_grow, m_tags_grow_dir, m_tagVelDx, m_vect_coordSys, m_velBasalC, m_velDx_tagVal, m_velDx_tagVal_finestLevelFloating, m_velDx_tagVal_finestLevelGrounded, m_velocity, m_velRHS, m_velRHS_tagVal, PythonInterface::PythonEval(), and s_verbosity.
Referenced by surfaceHeatFlux(), and tagCells().
|
inlinevirtual |
read only access members implementing AMRIceBase
Implements AmrIceBase.
References m_offsetTime, and m_time.
Referenced by advectIceFrac(), ProximityCalvingModel::applyCriterion(), initialize(), readCheckpointFile(), DomainDiagnosticData::record(), restart(), setBasalFriction(), setMuCoefficient(), timeStep(), updateGroundingLineProximity(), updateInternalEnergy(), updateInvalidIceFrac(), and writeAMRPlotFile().
void AmrIce::timeStep | ( | Real | a_dt | ) |
compute one timestep
References advectIceFrac(), DomainDiagnosticData::computeDischarge(), computeH_half(), computeInternalEnergyHalf(), computeThicknessFluxes(), dx(), DomainDiagnosticData::endTimestepDiagnostics(), finestTimestepLevel(), LevelSigmaCS::getFaceSigma(), LevelSigmaCS::getH(), LevelSigmaCS::getTopography(), LevelSigmaCS::gravity(), LevelSigmaCS::iceDensity(), m_addedIceThickness, m_amrDomains, m_amrDx, m_amrGrids, m_basalThicknessSource, m_calvedIceThickness, m_cur_step, m_divThicknessFlux, m_dt, m_evolve_ice_frac, m_evolve_velocity, m_faceVelAdvection, m_finest_level, m_iceFrac, m_isothermal, m_layerSFaceXYVel, m_layerXYFaceXYVel, m_next_report_time, m_num_cells, m_old_thickness, m_refinement_ratios, m_removedIceThickness, m_report_discharge, m_surfaceThicknessSource, m_temporalAccuracy, m_time, m_vect_coordSys, m_volumeThicknessSource, AmrIce::Observer::PostGeometryUpdate, s_verbosity, solveVelocityField(), time(), updateGeometry(), updateInternalEnergy(), and LevelSigmaCS::waterDensity().
Referenced by run(), and setCalvingModel().
|
protected |
References LevelSigmaCS::getH(), m_finest_level, m_refinement_ratios, m_vect_coordSys, and LevelSigmaCS::recomputeGeometry().
Referenced by surfaceHeatFlux().
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 | ||
) |
References applyCalvingCriterion(), LevelSigmaCS::dx(), dx(), finestTimestepLevel(), LevelSigmaCS::getFloatingMask(), LevelSigmaCS::getH(), LevelSigmaCS::getTopography(), IMPLICIT, implicitThicknessCorrection(), m_amrDomains, m_amrDx, m_amrGrids, m_basalThicknessSource, m_deltaTopography, m_diffusionTreatment, m_divThicknessFlux, m_dt, m_evolve_ice_frac, m_evolve_thickness, m_evolve_topography_fix_surface, m_finest_level, m_floating_ice_stable, m_frac_sources, m_grounded_ice_stable, m_groundingLineProximity_valid, m_iceFrac, m_refinement_ratios, m_surfaceThicknessSource, m_thicknessIBCPtr, m_time, m_topographyFluxPtr, m_vect_coordSys, m_volumeThicknessSource, CalvingModel::PostThicknessAdvection, LevelSigmaCS::recomputeGeometry(), IceThicknessIBC::setGeometryBCs(), setIceFrac(), setStableSources(), SurfaceFlux::surfaceThicknessFlux(), and updateIceFrac().
Referenced by setCalvingModel(), and timeStep().
|
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().
|
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().
|
protected |
Update the internalEnergy and tillWaterDepth fields.
compute (spatially variable) till water drainage rate
References basalHeatBoundaryData(), IceThermodynamics::composeInternalEnergy(), BasalFrictionRelation::computeDissipation(), ConstitutiveRelation::computeDissipation(), IceUtility::computeSigmaVelocity(), LevelSigmaCS::dx(), dx(), SurfaceFlux::evaluate(), LevelSigmaCS::getDSigma(), LevelSigmaCS::getFaceSigma(), LevelSigmaCS::getFloatingMask(), LevelSigmaCS::getH(), LevelSigmaCS::gravity(), helmholtzSolve(), IceThermodynamics::IceConductivity(), LevelSigmaCS::iceDensity(), IceThermodynamics::IceHeatCapacity(), m_A, m_A_valid, m_amrDomains, m_amrGrids, m_basalFrictionRelation, m_bHeatFlux, m_bInternalEnergy, m_constitutiveRelation, m_finest_level, m_internalEnergy, m_layerSFaceSVel, m_nLayers, m_refinement_ratios, m_sHeatFlux, m_sInternalEnergy, m_surfaceHeatBoundaryDataPtr, IceThermodynamics::m_till_water_drain_factor, m_tillWaterDepth, m_time, m_velBasalC, m_velocity, SurfaceFlux::parse(), column_thermodynamics::rhoi, column_thermodynamics::rhoo, surfaceHeatBoundaryData(), surfaceHeatBoundaryDirichlett(), surfaceHeatBoundaryTemperature(), surfaceHeatFlux(), time(), IceThermodynamics::timestep(), updateTemperature(), and LevelSigmaCS::waterDensity().
Referenced by surfaceHeatFlux(), and timeStep().
|
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().
|
protected |
update the temperature (a derived field)
References IceThermodynamics::decomposeInternalEnergy(), m_amrGrids, m_bInternalEnergy, m_bTemperature, m_finest_level, m_internalEnergy, m_sInternalEnergy, m_sTemperature, m_temperature, and m_vect_coordSys.
Referenced by initData(), readCheckpointFile(), regrid(), surfaceHeatFlux(), and updateInternalEnergy().
|
protected |
References IceNonlinearViscousTensor::alpha(), IceNonlinearViscousTensor::computeViscousTensorFace(), m_A, m_amrDomains, m_amrDx, m_amrGrids, m_basalFrictionRelation, m_constitutiveRelation, m_dragCoef, m_finest_level, m_refinement_ratios, m_thicknessIBCPtr, m_time, m_vect_coordSys, m_velBasalC, m_velocity, m_viscosityCoefCell, m_viscousTensor_valid, m_viscousTensorCell, m_viscousTensorFace, IceNonlinearViscousTensor::mu(), column_thermodynamics::rhoi, and IceNonlinearViscousTensor::setState().
Referenced by solveVelocityField().
|
inlinevirtual |
Implements AmrIceBase.
References m_velocity.
Referenced by ProximityCalvingModel::applyCriterion(), CrevasseCalvingModel::computeStressMeasure(), and RateProportionalToSpeedCalvingModel::getCalvingRate().
const LevelData< FArrayBox > * AmrIce::viscosityCoefficient | ( | int | a_level | ) | const |
References m_viscosityCoefCell, and m_viscousTensor_valid.
Referenced by groundingLineProximityScale(), and writeAMRPlotFile().
const LevelData< FArrayBox > * AmrIce::viscousTensor | ( | int | a_level | ) | const |
References m_viscousTensor_valid, and m_viscousTensorCell.
Referenced by CrevasseCalvingModel::computeStressMeasure(), groundingLineProximityScale(), AMRDamage::timestep(), and writeAMRPlotFile().
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 |
Referenced by getHeader(), restart(), writeAMRHierarchyHDF5(), and writeAMRPlotFile().
|
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
filename | name of hdf5 file |
a_grids | mesh hierarchy |
a_data | data hierarchy, defined on a_grids |
a_name | component names |
a_domain | domain limits on coarse level |
a_dx | mesh spacing on coarse level |
a_dt | time step on coarsest level |
a_time | time |
a_ratio | refinement ratio ![]() ![]() |
a_numLevels | number of levels to write |
Implements AmrIceBase.
References writeAMRHierarchyHDF5().
void AmrIce::writeAMRPlotFile | ( | ) |
write hdf5 plotfile to the standard location
References defineVelRHS(), dragCoefficient(), LevelSigmaCS::getBackgroundSlope(), LevelSigmaCS::getFloatingMask(), LevelSigmaCS::getH(), LevelSigmaCS::getSurfaceHeight(), LevelSigmaCS::getTopography(), m_amrDomains, m_amrDx, m_amrGrids, m_basalFluxPtr, m_basalThicknessSource, m_bHeatFlux, m_bInternalEnergy, m_bTemperature, m_calvedIceThickness, m_cellMuCoef, m_divThicknessFlux, m_dt, m_faceVelTotal, m_finest_level, m_frac_sources, m_iceFrac, m_internalEnergy, m_layerSFaceSVel, m_layerSFaceXYVel, m_nLayers, m_old_thickness, m_plot_prefix, m_reduced_plot, m_refinement_ratios, m_sHeatFlux, m_sInternalEnergy, m_sTemperature, m_surfaceFluxPtr, m_surfaceThicknessSource, m_tillWaterDepth, m_time, m_vect_coordSys, m_velBasalC, m_velocity, m_velRHS, m_write_baseVel, m_write_dHDt, m_write_fluxVel, m_write_internal_energy, m_write_ismip6, m_write_layer_velocities, m_write_map_file, m_write_mask, m_write_muCoeff, m_write_solver_rhs, m_write_thickness_sources, m_write_viscousTensor, s_verbosity, setBasalFriction(), SurfaceFlux::surfaceThicknessFlux(), time(), viscosityCoefficient(), viscousTensor(), writeAMRHierarchyHDF5(), and WriteSigmaMappedAMRHierarchyHDF5().
Referenced by getHeader(), and writePlotFile().
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().
void AmrIce::writeCheckpointFile | ( | const string & | a_file | ) |
write checkpoint file out for later restarting
writes checkpoint data to the location specified by a_file
References getFaceSigma(), LevelSigmaCS::getH(), LevelSigmaCS::getTopography(), m_amrDomains, m_amrDx, m_amrGrids, m_bInternalEnergy, m_cellMuCoef, m_cfl, m_cur_step, m_deltaTopography, m_dt, m_finest_level, m_iceFrac, m_internalEnergy, m_max_level, m_refinement_ratios, m_sInternalEnergy, m_tillWaterDepth, m_time, m_vect_coordSys, m_velBasalC, m_velocity, and s_verbosity.
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().
|
friend |
|
protected |
Referenced by computeFaceVelocity(), solveVelocityField(), updateInternalEnergy(), updateViscousTensor(), and ~AmrIce().
|
mutableprotected |
Referenced by initData(), initGrids(), regrid(), setDefaults(), solveVelocityField(), and updateInternalEnergy().
|
protected |
|
protected |
Referenced by implicitThicknessCorrection(), initialize(), and setDefaults().
|
protected |
Referenced by computeFaceVelocity(), initialize(), and setDefaults().
|
protected |
problem domains at each level
Referenced by advectIceFrac(), computeInternalEnergyHalf(), defineSolver(), defineVelRHS(), eliminateRemoteIce(), getIceThickness(), helmholtzSolve(), implicitThicknessCorrection(), incrementIceThickness(), initData(), initGrids(), initialize(), levelSetup(), readCheckpointFile(), regrid(), setMuCoefficient(), setupFixedGrids(), solveVelocityField(), tagCellsLevel(), timeStep(), updateGeometry(), updateGroundingLineProximity(), updateInternalEnergy(), updateInvalidIceFrac(), updateViscousTensor(), writeAMRPlotFile(), and writeCheckpointFile().
|
protected |
cell spacing at each level
Referenced by advectIceFrac(), amrDx(), computeDt(), computeInternalEnergyHalf(), computeTotalIce(), defineSolver(), eliminateRemoteIce(), getIceThickness(), helmholtzSolve(), implicitThicknessCorrection(), incrementIceThickness(), initData(), initialize(), levelSetup(), readCheckpointFile(), regrid(), restart(), setBasalFriction(), setupFixedGrids(), solveVelocityField(), tagCellsLevel(), timeStep(), updateGeometry(), updateGroundingLineProximity(), updateInvalidIceFrac(), updateViscousTensor(), writeAMRPlotFile(), and writeCheckpointFile().
|
protected |
current grids
Referenced by advectIceFrac(), computeA(), computeDt(), computeFaceVelocity(), computeH_half(), computeInternalEnergyHalf(), computeThicknessFluxes(), defineSolver(), defineVelRHS(), eliminateRemoteIce(), getIceThickness(), grids(), helmholtzSolve(), implicitThicknessCorrection(), incrementIceThickness(), initData(), initGrids(), initialize(), readCheckpointFile(), regrid(), restart(), setBasalFriction(), setMuCoefficient(), setupFixedGrids(), solveVelocityField(), tagCellsLevel(), timeStep(), updateGeometry(), updateGroundingLineProximity(), updateInternalEnergy(), updateInvalidIceFrac(), updateTemperature(), updateViscousTensor(), writeAMRPlotFile(), and writeCheckpointFile().
|
protected |
Referenced by computeFaceVelocity(), solveVelocityField(), and ~AmrIce().
|
protected |
sets basal flux for ice sheet
Referenced by computeH_half(), setBasalFlux(), setDefaults(), writeAMRPlotFile(), and ~AmrIce().
|
protected |
sets basal friction coefficient (beta^2)
Referenced by readCheckpointFile(), setBasalFriction(), solveVelocityField(), and ~AmrIce().
|
protected |
basal Friction relation
Referenced by defineSolver(), setBasalFrictionRelation(), solveVelocityField(), updateInternalEnergy(), updateViscousTensor(), and ~AmrIce().
|
protected |
sets basal heat flux or temperature for ice sheet
Referenced by basalHeatBoundaryData(), setBasalHeatBoundaryData(), and ~AmrIce().
|
protected |
Referenced by initialize(), and setDefaults().
|
protected |
rate factor at base
Referenced by setBasalFriction(), setBasalRateFactor(), and ~AmrIce().
|
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().
|
mutableprotected |
Referenced by basalThicknessSource(), computeH_half(), initialize(), levelSetup(), readCheckpointFile(), regrid(), restart(), timeStep(), updateGeometry(), writeAMRPlotFile(), and ~AmrIce().
|
protected |
type of basal friction distribution
|
protected |
small parameter for use in computing beta, if needed
Referenced by setDefaults().
|
protected |
background value for beta
Referenced by setDefaults().
|
protected |
Referenced by initialize(), levelSetup(), readCheckpointFile(), regrid(), updateInternalEnergy(), writeAMRPlotFile(), and ~AmrIce().
|
protected |
|
protected |
blocking factor
Referenced by initGrids(), initialize(), regrid(), setDefaults(), and setupFixedGrids().
|
protected |
Referenced by restart(), updateTemperature(), writeAMRPlotFile(), and ~AmrIce().
|
protected |
|
protected |
|
protected |
Calving model.
Referenced by applyCalvingCriterion(), setCalvingModel(), and ~AmrIce().
|
protected |
Referenced by initialize(), levelSetup(), muCoef(), readCheckpointFile(), regrid(), solveVelocityField(), writeAMRPlotFile(), writeCheckpointFile(), and ~AmrIce().
|
protected |
timestep scaling
Referenced by advectIceFrac(), computeDt(), initialize(), readCheckpointFile(), setDefaults(), and writeCheckpointFile().
|
protected |
Referenced by run().
|
protected |
Referenced by run().
|
protected |
Referenced by writeCheckpointFile().
|
protected |
Referenced by writeCheckpointFile().
|
protected |
constitutive relation
Referenced by computeFaceVelocity(), defineSolver(), setConstitutiveRelation(), solveVelocityField(), tagCellsLevel(), updateInternalEnergy(), updateViscousTensor(), and ~AmrIce().
|
protected |
keeps track of which levels are completely covered
Referenced by initialize(), and regrid().
|
protected |
Referenced by advectIceFrac(), computeDt(), initialize(), readCheckpointFile(), run(), solveVelocityField(), timeStep(), writeCheckpointFile(), and writePlotFile().
|
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().
|
protected |
Referenced by computeDt(), computeFaceVelocity(), computeH_half(), initialize(), setDefaults(), and updateGeometry().
|
protected |
Referenced by computeH_half(), implicitThicknessCorrection(), initialize(), levelSetup(), readCheckpointFile(), regrid(), solveVelocityField(), and ~AmrIce().
|
protected |
tagging threshold value for undivided div(H grad(vel))
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
Referenced by initialize(), levelSetup(), readCheckpointFile(), regrid(), timeStep(), updateGeometry(), writeAMRPlotFile(), and ~AmrIce().
|
protected |
Referenced by initialize(), run(), and setDefaults().
|
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().
|
protected |
if false, don't do initial velocity solve during problem setup. (default is true)
Referenced by initialize(), readCheckpointFile(), setDefaults(), and solveVelocityField().
|
protected |
Referenced by initData(), initialize(), regrid(), setDefaults(), and setDomainSize().
|
mutableprotected |
Referenced by dragCoefficient(), updateViscousTensor(), and ~AmrIce().
|
protected |
most recent timestep
Referenced by advectIceFrac(), defineVelRHS(), dt(), incrementIceThickness(), readCheckpointFile(), regrid(), restart(), setBasalFriction(), setDefaults(), setMuCoefficient(), timeStep(), updateGeometry(), updateInvalidIceFrac(), writeAMRPlotFile(), and writeCheckpointFile().
|
protected |
Referenced by applyCalvingCriterion(), initData(), initialize(), regrid(), setDefaults(), and solveVelocityField().
|
protected |
Referenced by initData(), initialize(), regrid(), and setDefaults().
|
protected |
Referenced by eliminateRemoteIce(), initialize(), and setDefaults().
|
protected |
Referenced by eliminateRemoteIce(), initialize(), and setDefaults().
|
protected |
tagging value for strain rate invariant
tag if epsSqr*dx > than this value
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
Referenced by initialize(), setDefaults(), timeStep(), and updateGeometry().
|
protected |
Referenced by initialize(), setDefaults(), setStableSources(), and updateGeometry().
|
protected |
Referenced by initialize(), setDefaults(), and updateGeometry().
|
protected |
Referenced by initialize(), regrid(), setDefaults(), and timeStep().
|
protected |
Referenced by getFaceSigma(), readCheckpointFile(), and setLayers().
|
protected |
Referenced by computeDt(), computeH_half(), initialize(), levelSetup(), readCheckpointFile(), regrid(), solveVelocityField(), timeStep(), and ~AmrIce().
|
protected |
Referenced by faceVelocities(), initialize(), levelSetup(), readCheckpointFile(), regrid(), solveVelocityField(), writeAMRPlotFile(), and ~AmrIce().
|
protected |
grid efficiency
Referenced by initGrids(), initialize(), regrid(), and setDefaults().
|
protected |
current finest level
Referenced by advectIceFrac(), applyCalvingCriterion(), computeA(), computeAreaFraction(), computeFaceVelocity(), computeInternalEnergyHalf(), computeTotalIce(), defineSolver(), defineVelRHS(), eliminateRemoteIce(), finestLevel(), finestTimestepLevel(), getIceThickness(), helmholtzSolve(), incrementIceThickness(), initData(), initGrids(), initialize(), readCheckpointFile(), regrid(), restart(), setBasalFriction(), setDefaults(), setMuCoefficient(), setupFixedGrids(), solveVelocityField(), tagCells(), timeStep(), updateCoordSysWithNewThickness(), updateGeometry(), updateGroundingLineProximity(), updateInternalEnergy(), updateInvalidIceFrac(), updateTemperature(), updateViscousTensor(), writeAMRPlotFile(), and writeCheckpointFile().
|
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().
|
protected |
Referenced by computeDt(), initialize(), and setDefaults().
|
protected |
Referenced by initialize(), setDefaults(), and setStableSources().
|
protected |
Referenced by initialize(), setDefaults(), and setStableSources().
|
protected |
Referenced by initialize(), setDefaults(), setStableSources(), and updateGeometry().
|
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().
|
protected |
Referenced by initialize(), levelSetup(), readCheckpointFile(), and setDefaults().
|
protected |
Referenced by initialize(), setDefaults(), and setStableSources().
|
protected |
Referenced by initialize(), setDefaults(), setStableSources(), and updateGeometry().
|
mutableprotected |
Referenced by groundingLineProximity(), updateGroundingLineProximity(), and ~AmrIce().
|
mutableprotected |
Referenced by initData(), initGrids(), regrid(), setDefaults(), updateGeometry(), and updateGroundingLineProximity().
|
protected |
Referenced by initialize(), setDefaults(), and updateGroundingLineProximity().
|
protected |
Referenced by groundingLineProximityScale(), initialize(), setDefaults(), and updateGroundingLineProximity().
|
protected |
threshold Basal friction coefficient at the grounding line : tag if C < value
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
threshold velocity at the grounding line : tag if |u| > value
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
Referenced by initialize(), levelSetup(), readCheckpointFile(), DomainDiagnosticData::record(), and setDefaults().
|
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().
|
protected |
cfl number for initial timestep (useful if initial data needs small cfl)
Referenced by computeDt(), and initialize().
|
protected |
Referenced by initialize(), setDefaults(), and solveVelocityField().
|
protected |
Referenced by initialize(), setDefaults(), and solveVelocityField().
|
protected |
Referenced by initialize(), setDefaults(), and solveVelocityField().
|
protected |
Referenced by initialize(), setDefaults(), and solveVelocityField().
|
protected |
|
protected |
IBC for internalEnergy advection.
Referenced by computeInternalEnergyHalf(), initData(), regrid(), setInternalEnergyBC(), and ~AmrIce().
|
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().
|
protected |
is this object initialized?
Referenced by isDefined(), and setDefaults().
|
protected |
Referenced by initialize(), setDefaults(), and timeStep().
|
protected |
when tagging on undivided lap(vel), ignore cells where the basal friction coeffcient exceeds
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
tagging threshold value for undivided lap(vel)
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
Referenced by initialize(), levelSetup(), readCheckpointFile(), regrid(), updateInternalEnergy(), writeAMRPlotFile(), and ~AmrIce().
|
protected |
Referenced by initialize(), levelSetup(), readCheckpointFile(), regrid(), restart(), solveVelocityField(), timeStep(), writeAMRPlotFile(), and ~AmrIce().
|
protected |
Referenced by faceVelocitiesLayered(), initialize(), levelSetup(), readCheckpointFile(), regrid(), solveVelocityField(), timeStep(), and ~AmrIce().
|
protected |
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
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().
|
protected |
max box size
Referenced by advectIceFrac(), initGrids(), initialize(), regrid(), setDefaults(), and setupFixedGrids().
|
protected |
maximum amount cfl number may grow in one timestep
Referenced by computeDt(), initialize(), and setDefaults().
|
protected |
max number ofSflux levels
Referenced by initGrids(), initialize(), levelSetup(), readCheckpointFile(), regrid(), setDefaults(), setupFixedGrids(), and writeCheckpointFile().
|
protected |
max number of iterations for velocity solver
Referenced by defineSolver(), initialize(), and setDefaults().
|
protected |
sets mu coefficient (phi)
Referenced by readCheckpointFile(), setMuCoefficient(), solveVelocityField(), and ~AmrIce().
|
protected |
Referenced by initialize(), and regrid().
|
protected |
proper nesting radius
Referenced by initGrids(), initialize(), regrid(), and setDefaults().
|
protected |
Referenced by run(), and timeStep().
|
protected |
Referenced by computeA(), computeInternalEnergyHalf(), levelSetup(), readCheckpointFile(), regrid(), restart(), setLayers(), updateInternalEnergy(), and writeAMRPlotFile().
|
protected |
book-keeping; keeps track of number of cells per level
Referenced by initialize(), regrid(), and timeStep().
|
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().
|
protected |
Referenced by initialize(), setDefaults(), setTime(), and time().
|
protected |
current old-time data
Referenced by computeH_half(), computeInternalEnergyHalf(), initData(), initialize(), levelSetup(), readCheckpointFile(), regrid(), restart(), timeStep(), writeAMRPlotFile(), and ~AmrIce().
|
protected |
Referenced by initData(), run(), and solveVelocityField().
|
protected |
Referenced by computeDt(), restart(), solveVelocityField(), and writeAMRPlotFile().
|
protected |
write a plot file every m_plot_time_interval years (rather than steps)
Referenced by run().
|
protected |
rate factor
Referenced by computeA(), setRateFactor(), and ~AmrIce().
|
protected |
if true, reduce the number of fields written to plot files
Referenced by writeAMRPlotFile().
|
protected |
refinement ratios
Referenced by advectIceFrac(), computeA(), computeFaceVelocity(), computeH_half(), computeInternalEnergyHalf(), computeThicknessFluxes(), computeTotalIce(), defineSolver(), eliminateRemoteIce(), helmholtzSolve(), implicitThicknessCorrection(), incrementIceThickness(), initData(), initGrids(), initialize(), levelSetup(), readCheckpointFile(), refRatios(), regrid(), setMuCoefficient(), setupFixedGrids(), solveVelocityField(), tagCellsLevel(), timeStep(), updateCoordSysWithNewThickness(), updateGeometry(), updateGroundingLineProximity(), updateInternalEnergy(), updateInvalidIceFrac(), updateViscousTensor(), writeAMRPlotFile(), and writeCheckpointFile().
|
protected |
regrid interval
Referenced by initialize(), and run().
|
protected |
thickness interpolation method to use on regrid, see LevelSigmaCS::ThicknessInterpolationMethod
Referenced by initialize(), regrid(), and setDefaults().
|
protected |
|
protected |
if true, report discharge of solid ice from the ice edge
Referenced by initialize(), setDefaults(), and timeStep().
|
protected |
report diagnostic every m_report_time_interval years (rather than every time step)
Referenced by initialize(), run(), and setDefaults().
|
protected |
|
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().
|
protected |
if starting from a restart, timestep of restart
Referenced by readCheckpointFile(), run(), and setDefaults().
|
protected |
Referenced by computeFaceVelocity(), solveVelocityField(), and ~AmrIce().
|
protected |
Referenced by initialize(), levelSetup(), readCheckpointFile(), and setDefaults().
|
protected |
Referenced by initialize(), readCheckpointFile(), and setDefaults().
|
protected |
Referenced by initialize(), levelSetup(), readCheckpointFile(), regrid(), surfaceHeatFlux(), updateInternalEnergy(), writeAMRPlotFile(), and ~AmrIce().
|
protected |
Referenced by setDefaults(), and setLayers().
|
protected |
|
protected |
what type of nonlinear solver to use for velocity field
Referenced by defineSolver(), initialize(), setDefaults(), and solveVelocityField().
|
protected |
most recent stable timestep (> m_dt if we took a step just to hit a plot interval)
Referenced by computeDt(), and setDefaults().
|
protected |
Referenced by restart(), updateTemperature(), writeAMRPlotFile(), and ~AmrIce().
|
protected |
should a Dirichlett internal energy condition be imposed at the upper surface?
Referenced by setDefaults(), setSurfaceHeatBoundaryData(), and surfaceHeatBoundaryDirichlett().
|
protected |
is the Dirichlett data a temperature (rather than an internal energy)?
Referenced by setDefaults(), setSurfaceHeatBoundaryData(), and surfaceHeatBoundaryTemperature().
|
protected |
sets surface flux for ice sheet
Referenced by computeH_half(), setSurfaceFlux(), writeAMRPlotFile(), and ~AmrIce().
|
protected |
sets surface heat flux or internalEnergy for ice sheet
Referenced by setSurfaceHeatBoundaryData(), surfaceHeatBoundaryData(), updateInternalEnergy(), and ~AmrIce().
|
mutableprotected |
Referenced by computeH_half(), initialize(), levelSetup(), readCheckpointFile(), regrid(), restart(), surfaceThicknessSource(), timeStep(), updateGeometry(), writeAMRPlotFile(), and ~AmrIce().
|
protected |
maximum level at which refinement tags are computed
Referenced by initGrids(), initialize(), setDefaults(), and tagCells().
|
protected |
only allow tagging within a subset of the coarse domain
|
protected |
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
tag any cell with ice in it
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
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().
|
protected |
tag all cells for refinement (refine entire domain)
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
tagging value (undivided gradient(vel) threshold for regridding)
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
tag the grounding line
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
tag at the ice margin
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
tag on div(H grad (vel))
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
tag on strain rate invariant?
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
tag on grad(velocity)?
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
tag on laplacian(velocity) in grounded regions only
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
tag on laplacian(velocity)
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
tag on velocity solve RHS
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
tag cells according to a python function
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
Referenced by initialize(), setDefaults(), tagCellsLevel(), and ~AmrIce().
|
protected |
Referenced by initialize(), setDefaults(), and ~AmrIce().
|
protected |
amount to buffer tags used in regridding
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
tag where |vel| * dx > m_maxVelDxVal
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
Referenced by initData(), updateTemperature(), and ~AmrIce().
|
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().
|
protected |
IBC for thickness advection.
Referenced by advectIceFrac(), computeFaceVelocity(), defineSolver(), defineVelRHS(), incrementIceThickness(), initData(), initialize(), regrid(), setThicknessBC(), solveVelocityField(), updateGeometry(), updateInvalidIceFrac(), updateViscousTensor(), and ~AmrIce().
|
protected |
PatchGodunov used for thickness advection – one for each level.
Referenced by computeH_half(), initialize(), and ~AmrIce().
|
protected |
pointer to a GodunovPhysics for thickness advection
Referenced by initialize(), and ~AmrIce().
|
protected |
|
protected |
current time
Referenced by advectIceFrac(), computeH_half(), computeInternalEnergyHalf(), defineVelRHS(), incrementIceThickness(), initData(), initialize(), readCheckpointFile(), regrid(), restart(), run(), setTime(), solveVelocityField(), time(), timeStep(), updateGeometry(), updateGroundingLineProximity(), updateInternalEnergy(), updateViscousTensor(), writeAMRPlotFile(), and writeCheckpointFile().
|
protected |
Referenced by computeDt(), initialize(), and setDefaults().
|
protected |
sets topography flux (which raises/lowers bedrock)
Referenced by setTopographyFlux(), and updateGeometry().
|
protected |
Referenced by advectIceFrac(), amrGeometry(), applyCalvingCriterion(), computeAreaFraction(), computeFaceVelocity(), computeTotalIce(), defineSolver(), defineVelRHS(), dx(), eliminateRemoteIce(), geometry(), getIceThickness(), implicitThicknessCorrection(), incrementIceThickness(), initData(), initGrids(), initialize(), levelSetup(), readCheckpointFile(), regrid(), restart(), setBasalFriction(), setMuCoefficient(), setupFixedGrids(), solveVelocityField(), tagCellsLevel(), timeStep(), updateCoordSysWithNewThickness(), updateGeometry(), updateGroundingLineProximity(), updateTemperature(), updateViscousTensor(), writeAMRPlotFile(), and writeCheckpointFile().
|
protected |
stores tags from previous regrids
Referenced by tagCellsInit().
|
protected |
Referenced by initialize(), and tagCells().
|
protected |
|
protected |
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
horizontal velocity field (found by an IceVelocitySolver)
Referenced by advectIceFrac(), amrVelocity(), computeFaceVelocity(), eliminateRemoteIce(), initData(), initGrids(), initialize(), levelSetup(), readCheckpointFile(), regrid(), restart(), setupFixedGrids(), solveVelocityField(), tagCellsLevel(), updateInternalEnergy(), updateViscousTensor(), velocity(), writeAMRPlotFile(), writeCheckpointFile(), and ~AmrIce().
|
protected |
maximum acceptable velocity: if max(u) > m_vel_exit , then dump a plot file and exit
Referenced by computeDt(), initialize(), and setDefaults().
|
protected |
solve the velocity problem every m_velocitySolveInterval timesteps
Referenced by initialize(), setDefaults(), and solveVelocityField().
|
protected |
solver tolerance for velSolver.
Referenced by defineSolver(), initialize(), and setDefaults().
|
protected |
Referenced by solveVelocityField().
|
protected |
Residual norms at the start and end of the last velocity solve.
Referenced by readCheckpointFile(), regrid(), setDefaults(), and solveVelocityField().
|
protected |
velocity solve RHS (in case we want to save it)
Referenced by initialize(), levelSetup(), readCheckpointFile(), regrid(), solveVelocityField(), tagCellsLevel(), writeAMRPlotFile(), and ~AmrIce().
|
protected |
tagging value for velocity RHS
Referenced by initialize(), setDefaults(), and tagCellsLevel().
|
protected |
nonlinear elliptic solver for velocity field
Referenced by defineSolver(), readCheckpointFile(), restart(), solveVelocityField(), and ~AmrIce().
|
mutableprotected |
Referenced by updateViscousTensor(), viscosityCoefficient(), and ~AmrIce().
|
mutableprotected |
Referenced by dragCoefficient(), initGrids(), setDefaults(), solveVelocityField(), updateViscousTensor(), viscosityCoefficient(), and viscousTensor().
|
mutableprotected |
Referenced by updateViscousTensor(), viscousTensor(), and ~AmrIce().
|
mutableprotected |
Referenced by updateViscousTensor(), and ~AmrIce().
|
mutableprotected |
Referenced by computeH_half(), initialize(), levelSetup(), readCheckpointFile(), regrid(), restart(), timeStep(), updateGeometry(), and ~AmrIce().
|
protected |
Referenced by setDefaults().
|
protected |
Referenced by writeAMRPlotFile().
|
protected |
if true, include dH/dt in plotfiles
Referenced by initialize(), and writeAMRPlotFile().
|
protected |
Referenced by solveVelocityField(), and writeAMRPlotFile().
|
protected |
Referenced by writeAMRPlotFile().
|
protected |
Referenced by restart(), and writeAMRPlotFile().
|
protected |
Referenced by writeAMRPlotFile().
|
protected |
if true, write out .map.hdf5 file
Referenced by writeAMRPlotFile().
|
protected |
if true, include mask in plotfiles
Referenced by initialize(), and writeAMRPlotFile().
|
protected |
if true, include viscosity multiplier (muCoefficient) in plotfiles
Referenced by initialize(), and writeAMRPlotFile().
|
protected |
if true, write out plotfile before doing velocity solves
this can be convenient when working with the solverBenchmark
Referenced by solveVelocityField().
|
protected |
if true, include velocity solver RHS in plotfiles
Referenced by initialize(), and writeAMRPlotFile().
|
protected |
Referenced by writeAMRPlotFile().
|
protected |
Referenced by writeAMRPlotFile().
|
staticprotected |
how verbose should we be?
Referenced by computeA(), computeDt(), computeInitialDt(), defineSolver(), eliminateRemoteIce(), helmholtzSolve(), implicitThicknessCorrection(), initData(), initGrids(), initialize(), readCheckpointFile(), regrid(), restart(), run(), setupFixedGrids(), solveVelocityField(), tagCells(), tagCellsInit(), tagCellsLevel(), timeStep(), updateGroundingLineProximity(), writeAMRPlotFile(), writeCheckpointFile(), and ~AmrIce().