BISICLES AMR ice sheet model
0.9
|
Abstract class around the englacial constitutive relations for ice. More...
#include <ConstitutiveRelation.H>
Public Member Functions | |
ConstitutiveRelation () | |
virtual | ~ConstitutiveRelation () |
virtual void | computeMu (LevelData< FArrayBox > &a_mu, const LevelData< FArrayBox > &a_vel, const Real &a_scale, const LevelData< FArrayBox > *a_crseVel, int a_nRefCrse, const LevelData< FArrayBox > &a_A, const LevelSigmaCS &a_coordSys, const ProblemDomain &a_domain, const IntVect &a_ghostVect=IntVect::Zero) const =0 |
Compute cell-centered ![]() | |
virtual void | computeDissipation (LevelData< FArrayBox > &a_dissipation, const LevelData< FArrayBox > &a_cellVel, const LevelData< FArrayBox > *a_crseVel, int nRefCrse, const LevelData< FArrayBox > &a_A, const LevelSigmaCS &a_coordSys, const ProblemDomain &a_domain, const IntVect &a_ghostVect=IntVect::Zero) const =0 |
Compute a cell centred bulk dissipation ![]() | |
virtual void | computeFaceMu (LevelData< FluxBox > &a_mu, LevelData< FArrayBox > &a_vel, const Real &a_scale, const LevelData< FArrayBox > *a_crseVel, int a_nRefCrse, const LevelData< FluxBox > &a_A, const LevelSigmaCS &a_coordSys, const ProblemDomain &a_domain, const IntVect &a_ghostVect=IntVect::Zero) const =0 |
compute face-centered effective viscosity ![]() | |
virtual ConstitutiveRelation * | getNewConstitutiveRelation () const =0 |
creates a new copy of this ConstitutiveRelation object. More... | |
void | computeStrainRateInvariant (LevelData< FArrayBox > &a_epsilonSquared, const LevelData< FArrayBox > &a_velocity, const LevelData< FArrayBox > *a_crseVel, int nRefCrse, const LevelSigmaCS &a_coordSys, const IntVect &a_ghostVect=IntVect::Zero) const |
compute cell-centered strainrate invariant epsilon^2 More... | |
void | computeStrainRateInvariantFace (LevelData< FluxBox > &a_epsilonSquared, LevelData< FArrayBox > &a_velocity, const LevelData< FArrayBox > *a_crseVel, int a_nRefCrse, const LevelSigmaCS &a_coordSys, const IntVect &a_ghostVect=IntVect::Zero) const |
compute face-centered strainrate invariant epsilon^2 based on cell-centered velocity More... | |
void | computeStrainRateInvariant (LevelData< FArrayBox > &a_epsilonSquared, LevelData< FArrayBox > &a_gradVelocity, const LevelData< FArrayBox > &a_velocity, const LevelData< FArrayBox > *a_crseVel, int a_nRefCrse, const LevelSigmaCS &a_coordSys, const IntVect &a_ghostVect=IntVect::Zero) const |
compute cell-centered strainrate invariant epsilon^2 and velocity gradients. No more costly than just computing epsilon^2 More... | |
void | computeStrainRateInvariantFace (LevelData< FluxBox > &a_epsilonSquared, LevelData< FluxBox > &a_gradVelocity, LevelData< FArrayBox > &a_velocity, const LevelData< FArrayBox > *a_crseVel, int a_nRefCrse, const LevelSigmaCS &a_coordSys, const IntVect &a_ghostVect=IntVect::Zero) const |
compute face-centered strainrate invariant epsilon^2 and velocity gradients based on cell-centered velocity. No more costly than just computing epsilon^2 More... | |
Static Public Member Functions | |
static ConstitutiveRelation * | parse (const char *a_prefix) |
Abstract class around the englacial constitutive relations for ice.
Specifies an interface for the calculation of the effecive viscosity such that (stress =
*strainrate ) assuming that
.
Also specifies (and provides a default implementation) for the default rate of strain heating (mu * stress * strainrate)
Run-time configuration is carried out in ConstitutiveRelation::parse.
|
inline |
|
inlinevirtual |
|
pure virtual |
Compute a cell centred bulk dissipation (heat source) at the cell centres. This ought to have the same dependencies as cell centred mu.
a_dissipation | ![]() |
a_vel | Cell-centered velocity field. |
a_crseVel | Next coarser level velocity field for coarse-fine bc's (NULL if no coarser level) |
a_nRefCrse | refinement ratio to next coarser level |
a_A | Cell- and layer-centered flow law coefficient (Glenn's ![]() |
a_coordSys | LevelSigmaCS object containing the geometry of this level. |
a_box | cell-centered box over which to do this computation |
Implemented in L1L2ConstitutiveRelation, and DamageConstitutiveRelation.
Referenced by AmrIce::updateInternalEnergy(), and ~ConstitutiveRelation().
|
pure virtual |
compute face-centered effective viscosity based on cell-centered velocity
a_mu | face-centered ![]() |
a_vel | Cell-centered velocity field. |
a_scale | compute mu given input a_vel = m_scale * true_vel |
a_A | Cell- and layer-centered flow law coefficient (Glenn's ![]() |
a_crseVel | Next coarser level velocity field for coarse-fine bc's (NULL if no coarser level) |
a_nRefCrse | refinement ratio to next coarser level |
a_coordSys | LevelSigmaCS object containing the geometry of this level |
a_ghostVect | how the boxes on which we want to compute mu compare with the DisjointBoxLayout. (can be negative) |
Implemented in L1L2ConstitutiveRelation, and DamageConstitutiveRelation.
Referenced by DamageConstitutiveRelation::computeFaceMu(), FASIceViscouseTensorOp::computeMu(), PetscIceSolver::computeMu(), and ~ConstitutiveRelation().
|
pure virtual |
Compute cell-centered based on the cell-centered velocity.
a_mu | ![]() |
a_vel | Cell-centered velocity field. |
a_crseVel | Next coarser level velocity field (for coarse-fine bc's). (NULL if no coarser level) |
a_nRefCrse | refinement ratio to next coarser level |
a_A | Cell- and layer-centered flow law coefficient (Glenn's ![]() |
a_coordSys | LevelSigmaCS object containing the ice-sheet geometry |
a_ghostVect | how the boxes on which we want to compute mu compare with the DisjointBoxLayout. (can be negative) |
Implemented in L1L2ConstitutiveRelation, and DamageConstitutiveRelation.
Referenced by computeStrainRateInvariantFace(), and ~ConstitutiveRelation().
void ConstitutiveRelation::computeStrainRateInvariant | ( | LevelData< FArrayBox > & | a_epsilonSquared, |
const LevelData< FArrayBox > & | a_velocity, | ||
const LevelData< FArrayBox > * | a_crseVel, | ||
int | nRefCrse, | ||
const LevelSigmaCS & | a_coordSys, | ||
const IntVect & | a_ghostVect = IntVect::Zero |
||
) | const |
compute cell-centered strainrate invariant epsilon^2
Referenced by L1L2ConstitutiveRelation::computeDissipation(), L1L2ConstitutiveRelation::computeFaceMu(), computeStrainRateInvariantFace(), AmrIce::tagCellsLevel(), and ~ConstitutiveRelation().
void ConstitutiveRelation::computeStrainRateInvariant | ( | LevelData< FArrayBox > & | a_epsilonSquared, |
LevelData< FArrayBox > & | a_gradVelocity, | ||
const LevelData< FArrayBox > & | a_velocity, | ||
const LevelData< FArrayBox > * | a_crseVel, | ||
int | a_nRefCrse, | ||
const LevelSigmaCS & | a_coordSys, | ||
const IntVect & | a_ghostVect = IntVect::Zero |
||
) | const |
compute cell-centered strainrate invariant epsilon^2 and velocity gradients. No more costly than just computing epsilon^2
References computeCCDerivatives(), and derivComponent().
void ConstitutiveRelation::computeStrainRateInvariantFace | ( | LevelData< FluxBox > & | a_epsilonSquared, |
LevelData< FArrayBox > & | a_velocity, | ||
const LevelData< FArrayBox > * | a_crseVel, | ||
int | a_nRefCrse, | ||
const LevelSigmaCS & | a_coordSys, | ||
const IntVect & | a_ghostVect = IntVect::Zero |
||
) | const |
compute face-centered strainrate invariant epsilon^2 based on cell-centered velocity
Referenced by DamageConstitutiveRelation::computeFaceMu(), L1L2ConstitutiveRelation::computeFaceMu(), computeStrainRateInvariantFace(), and ~ConstitutiveRelation().
void ConstitutiveRelation::computeStrainRateInvariantFace | ( | LevelData< FluxBox > & | a_epsilonSquared, |
LevelData< FluxBox > & | a_gradVelocity, | ||
LevelData< FArrayBox > & | a_velocity, | ||
const LevelData< FArrayBox > * | a_crseVel, | ||
int | a_nRefCrse, | ||
const LevelSigmaCS & | a_coordSys, | ||
const IntVect & | a_ghostVect = IntVect::Zero |
||
) | const |
compute face-centered strainrate invariant epsilon^2 and velocity gradients based on cell-centered velocity. No more costly than just computing epsilon^2
compute face-centered epsilon^2 and grda(u) based on cell-centered velocity
References computeFCDerivatives(), computeMu(), computeStrainRateInvariant(), computeStrainRateInvariantFace(), derivComponent(), and LevelSigmaCS::dx().
|
pure virtual |
creates a new copy of this ConstitutiveRelation object.
Implemented in DamageConstitutiveRelation, and L1L2ConstitutiveRelation.
Referenced by DamageConstitutiveRelation::DamageConstitutiveRelation(), AmrIce::setConstitutiveRelation(), and ~ConstitutiveRelation().
|
static |
References L1L2ConstitutiveRelation::parseParameters().
Referenced by init_bisicles_instance(), and main().