BISICLES AMR ice sheet model  0.9
Public Member Functions | Protected Attributes | List of all members
MultiLevelDataBasalFriction Class Reference

BasalFriction that computes $ \beta^2 $ from data on a non-uniform grid. More...

#include <LevelDataBasalFriction.H>

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

Public Member Functions

 MultiLevelDataBasalFriction (const Vector< RefCountedPtr< LevelData< FArrayBox > > > &a_C, const RealVect &a_dxCrse, const Vector< int > a_ratio)
 construct from non-uniform grid data More...
 
virtual ~MultiLevelDataBasalFriction ()
 
virtual BasalFrictionnew_basalFriction () const
 factory method More...
 
void setBasalFriction (LevelData< FArrayBox > &a_C, RealVect a_dx, Real a_time, Real a_dt)
 Copy data from the stored AMR HIerarchy. More...
 
virtual void setBasalFriction (LevelData< FArrayBox > &a_C, LevelSigmaCS &a_coordSys, Real a_time, Real a_dt)
 compute basal friction coefficient beta^2 and place in a_betaSqr More...
 
- Public Member Functions inherited from BasalFriction
virtual ~BasalFriction ()
 virtual destructor More...
 

Protected Attributes

Vector< RefCountedPtr< LevelData< FArrayBox > > > m_C
 
RealVect m_dxCrse
 
Vector< int > m_ratio
 
bool m_verbose
 

Additional Inherited Members

- Static Public Member Functions inherited from BasalFriction
static BasalFrictionparse (const char *a_prefix, const RealVect &a_domainSize)
 

Detailed Description

BasalFriction that computes $ \beta^2 $ from data on a non-uniform grid.

Run time configuration is carried out in BasalFriction::parse(A, ... ) If the option A.beta_type = LevelData is found, then the expected form is:

Constructor & Destructor Documentation

◆ MultiLevelDataBasalFriction()

MultiLevelDataBasalFriction::MultiLevelDataBasalFriction ( const Vector< RefCountedPtr< LevelData< FArrayBox > > > &  a_C,
const RealVect &  a_dxCrse,
const Vector< int >  a_ratio 
)
inline

construct from non-uniform grid data

Parameters
a_Cdata on a non-uniform grid.
a_dxCrsecoarse level mesh spacing.
a_ratiorefinement ratio between levels

◆ ~MultiLevelDataBasalFriction()

virtual MultiLevelDataBasalFriction::~MultiLevelDataBasalFriction ( )
inlinevirtual

Member Function Documentation

◆ new_basalFriction()

virtual BasalFriction* MultiLevelDataBasalFriction::new_basalFriction ( ) const
inlinevirtual

factory method

Returns
a pointer to a new BasalFriction object

Implements BasalFriction.

References LevelDataBasalFriction::m_C, and LevelDataBasalFriction::setBasalFriction().

◆ setBasalFriction() [1/2]

void MultiLevelDataBasalFriction::setBasalFriction ( LevelData< FArrayBox > &  a_C,
RealVect  a_dx,
Real  a_time,
Real  a_dt 
)

Copy data from the stored AMR HIerarchy.

Parameters
a_Csingle level of output data
a_Ca_dx mesh spacing for a_C
a_timetime
a_dttimestep

References FillFromReference(), flattenCellData(), LevelDataBasalFriction::m_C, LevelDataBasalFriction::m_verbose, and LevelDataBasalFriction::setBasalFriction().

◆ setBasalFriction() [2/2]

virtual void MultiLevelDataBasalFriction::setBasalFriction ( LevelData< FArrayBox > &  a_betaSqr,
LevelSigmaCS a_coordSys,
Real  a_time,
Real  a_dt 
)
inlinevirtual

compute basal friction coefficient beta^2 and place in a_betaSqr

time and dt are included in case this is time-dependent. Units should usually be chosen so that the basal traction $\tau_b(\beta^2, u) $ is measured in Pascals when $u $ is measured in meters per year.

Parameters
a_betaSqrbasal friction coefficient beta^2 data
a_coordSysice sheet geometry
a_timecurrent time
a_dtcurrent time step

Implements BasalFriction.

References LevelSigmaCS::dx(), and LevelDataBasalFriction::setBasalFriction().

Member Data Documentation

◆ m_C

Vector<RefCountedPtr< LevelData<FArrayBox> > > MultiLevelDataBasalFriction::m_C
protected

◆ m_dxCrse

RealVect MultiLevelDataBasalFriction::m_dxCrse
protected

◆ m_ratio

Vector<int> MultiLevelDataBasalFriction::m_ratio
protected

◆ m_verbose

bool MultiLevelDataBasalFriction::m_verbose
protected

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