BISICLES AMR ice sheet model  0.9
Public Member Functions | Friends | List of all members
DamageConstitutiveRelation Class Reference

Computes the effective viscosity $\mu$ including a factor due to crevassing. More...

#include <DamageConstitutiveRelation.H>

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

Public Member Functions

 DamageConstitutiveRelation (ConstitutiveRelation *a_ptr, AMRDamage *a_damage)
 
virtual ~DamageConstitutiveRelation ()
 
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
 computes cell-centered $\mu_{AS}$ based on the cell-centered velocity More...
 
virtual void computeDissipation (LevelData< FArrayBox > &a_dissipation, const LevelData< FArrayBox > &a_vel, 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
 
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
 
virtual ConstitutiveRelationgetNewConstitutiveRelation () const
 creates a new copy of this ConstitutiveRelation object. More...
 
- Public Member Functions inherited from ConstitutiveRelation
 ConstitutiveRelation ()
 
virtual ~ConstitutiveRelation ()
 
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...
 

Friends

class AMRDamage
 

Additional Inherited Members

- Static Public Member Functions inherited from ConstitutiveRelation
static ConstitutiveRelationparse (const char *a_prefix)
 

Detailed Description

Computes the effective viscosity $\mu$ including a factor due to crevassing.

The effective viscosity $\mu$ is computed by multiplying an effective viscosity $\mu_0$ as calculated by another subclass of ConstitutiveRelation by a factor $(1-d)/H$, where $d$ is the total depth of crevasses (surface plus base). $d$ is set to $d = max ( d_{\rm NYE} + b d_{\rm OLD}) $. $d_{\rm NYE}$ is the Nye crevasse depth, and $d_{\rm OLD}$ is an 'old' crevasse depth, computed by a damage transport model

Constructor & Destructor Documentation

◆ DamageConstitutiveRelation()

DamageConstitutiveRelation::DamageConstitutiveRelation ( ConstitutiveRelation a_ptr,
AMRDamage a_damage 
)
inline

◆ ~DamageConstitutiveRelation()

DamageConstitutiveRelation::~DamageConstitutiveRelation ( )
virtual

Member Function Documentation

◆ computeDissipation()

void DamageConstitutiveRelation::computeDissipation ( LevelData< FArrayBox > &  a_dissipation,
const LevelData< FArrayBox > &  a_vel,
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
virtual

Compute a cell centred bulk dissipation $\Phi/(\rho _i c _i) = \sigma_ij \epsilon _ji /(\rho _i c _i) $ (heat source) at the cell centres. This ought to have the same dependencies as cell centred mu a_dissipation – $\Phi$ based on the local velocity field. a_vel – Cell-centered velocity field. a_crseVel – coarse-level velocity field (for coarse-fine bc's). (NULL if no coarser level) a_nRefCrse – refinement ratio to next coarser level a_A: Cell-centered flow law coefficient (glenn's A) field a_coordSys: SigmaCS object containing the geometry of this patch. a_box: cell-centered box over which to do this computation

Implements ConstitutiveRelation.

References computeFaceMu(), and derivComponent().

Referenced by DamageConstitutiveRelation().

◆ computeFaceMu()

void DamageConstitutiveRelation::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
virtual

a_mu: face-centered $\mu_{AS}$ based on the local velocity field. a_vel: Cell-centered velocity field. a_crseVel – coarse-level velocity field (for coarse-fine bc's). (NULL if no coarser level) a_nRefCrse – refinement ratio to next coarser level a_A: Cell-centered flow law coefficient (glenn's A) field a_coordSys: SigmaCS object containing the geometry of this patch. a_ghostVect – how the boxes over which we want to compute mu relate to those in the DisjointBoxLayout (can be negative)

Implements ConstitutiveRelation.

References ConstitutiveRelation::computeFaceMu(), ConstitutiveRelation::computeStrainRateInvariantFace(), AMRDamage::damage(), LevelSigmaCS::getFaceH(), LevelSigmaCS::getTopography(), LevelSigmaCS::gravity(), LevelSigmaCS::iceDensity(), LevelSigmaCS::seaLevel(), AMRDamage::water(), and LevelSigmaCS::waterDensity().

Referenced by computeDissipation(), and DamageConstitutiveRelation().

◆ computeMu()

void DamageConstitutiveRelation::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
virtual

computes cell-centered $\mu_{AS}$ based on the cell-centered velocity

a_mu – $\mu_{AS}$ based on the local velocity field. a_vel – Cell-centered velocity field. a_crseVel – coarse-level velocity field (for coarse-fine bc's). (NULL if no coarser level) a_nRefCrse – refinement ratio to next coarser level a_A: Cell-centered flow law coefficient (glenn's A) field a_coordSys: SigmaCS object containing the geometry of this patch. a_ghostVect – how the boxes over which we want to compute mu relate to those in the DisjointBoxLayout (can be negative)

Implements ConstitutiveRelation.

Referenced by DamageConstitutiveRelation().

◆ getNewConstitutiveRelation()

ConstitutiveRelation * DamageConstitutiveRelation::getNewConstitutiveRelation ( ) const
virtual

creates a new copy of this ConstitutiveRelation object.

Implements ConstitutiveRelation.

Referenced by DamageConstitutiveRelation().

Friends And Related Function Documentation

◆ AMRDamage

friend class AMRDamage
friend

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