BISICLES AMR ice sheet model  0.9
Public Member Functions | List of all members
NonlinearViscousTensor Class Referenceabstract

#include <NonlinearViscousTensor.H>

Inheritance diagram for NonlinearViscousTensor:
Inheritance graph
[legend]

Public Member Functions

virtual ~NonlinearViscousTensor ()
 
virtual NonlinearViscousTensornewNonlinearViscousTensor ()=0
 factory method More...
 
virtual void setState (const Vector< LevelData< FArrayBox > *> &a_state)=0
 set the state (velocity) More...
 
virtual void applyBC (Vector< LevelData< FArrayBox > *> &a_phi)=0
 fill ghost cells of a_state as per the boundary conditions More...
 
virtual const Vector< LevelData< FArrayBox > * > & getState ()=0
 retrieve the state More...
 
virtual Vector< RefCountedPtr< LevelData< FArrayBox > > > & alpha ()=0
 Retrieve the drag coefficient, alpha. More...
 
virtual Vector< RefCountedPtr< LevelData< FluxBox > > > & mu ()=0
 Retrieve the viscosity coefficient, mu. More...
 
virtual Vector< RefCountedPtr< LevelData< FluxBox > > > & lambda ()=0
 Retrieve the compressibility coefficient, lambda. More...
 
virtual RefCountedPtr< AMRLevelOpFactory< LevelData< FArrayBox > > > opFactoryPtr ()=0
 provide a pointer to an AMRLevelOpFactory<LevelData<FArrayBox> > defined at the current state More...
 

Detailed Description

Virtual base for classes which encapsulate a nonlinear viscosity tensor.

States are defined by the velocity, and the important dependents are the coefficients in the linear ViscousTensorOp: alpha, mu, lambda.

Constructor & Destructor Documentation

◆ ~NonlinearViscousTensor()

virtual NonlinearViscousTensor::~NonlinearViscousTensor ( )
inlinevirtual

Member Function Documentation

◆ alpha()

virtual Vector<RefCountedPtr< LevelData<FArrayBox> > >& NonlinearViscousTensor::alpha ( )
pure virtual

Retrieve the drag coefficient, alpha.

Returns
an amr hierarchy representing the coefficient $ \alpha(x,y) $, that appears in ViscousTensorOp as the coeffcient of the velocity $ u $.

Implemented in IceNonlinearViscousTensor.

Referenced by LinearizedVTOp::applyOp(), JFNKSolver::solve(), and ~NonlinearViscousTensor().

◆ applyBC()

virtual void NonlinearViscousTensor::applyBC ( Vector< LevelData< FArrayBox > *> &  a_phi)
pure virtual

fill ghost cells of a_state as per the boundary conditions

Implemented in IceNonlinearViscousTensor.

Referenced by ~NonlinearViscousTensor().

◆ getState()

virtual const Vector<LevelData<FArrayBox>*>& NonlinearViscousTensor::getState ( )
pure virtual

retrieve the state

Returns
a reference to the current state (velocity)

Implemented in IceNonlinearViscousTensor.

Referenced by LinearizedVTOp::applyOp(), LinearizedVTOp::setU(), and ~NonlinearViscousTensor().

◆ lambda()

virtual Vector<RefCountedPtr< LevelData<FluxBox> > >& NonlinearViscousTensor::lambda ( )
pure virtual

Retrieve the compressibility coefficient, lambda.

Returns
an amr hierarchy representing the coefficient $ \lambda(x,y) $, that appears in ViscousTensorOp as the coeffcient of the compression rate $ \nabla. \vec{u} I $.

Implemented in IceNonlinearViscousTensor.

Referenced by JFNKSolver::solve(), and ~NonlinearViscousTensor().

◆ mu()

virtual Vector<RefCountedPtr< LevelData<FluxBox> > >& NonlinearViscousTensor::mu ( )
pure virtual

Retrieve the viscosity coefficient, mu.

Returns
an amr hierarchy representing the coefficient $ \mu(x,y) $, that appears in ViscousTensorOp as the coeffcient of the strain rate $ \nabla \vec{u} + ( \nabla \vec{u})^T $.

Implemented in IceNonlinearViscousTensor.

Referenced by LinearizedVTOp::applyOp(), JFNKSolver::solve(), and ~NonlinearViscousTensor().

◆ newNonlinearViscousTensor()

virtual NonlinearViscousTensor* NonlinearViscousTensor::newNonlinearViscousTensor ( )
pure virtual

factory method

Implemented in IceNonlinearViscousTensor.

Referenced by LinearizedVTOp::LinearizedVTOp(), and ~NonlinearViscousTensor().

◆ opFactoryPtr()

virtual RefCountedPtr< AMRLevelOpFactory<LevelData<FArrayBox> > > NonlinearViscousTensor::opFactoryPtr ( )
pure virtual

provide a pointer to an AMRLevelOpFactory<LevelData<FArrayBox> > defined at the current state

Implemented in IceNonlinearViscousTensor.

Referenced by LinearizedVTOp::LinearizedVTOp(), and ~NonlinearViscousTensor().

◆ setState()

virtual void NonlinearViscousTensor::setState ( const Vector< LevelData< FArrayBox > *> &  a_state)
pure virtual

set the state (velocity)

Modify state, and thus the coefficients in the linear ViscousTensorOp: alpha, mu, lambda.

Parameters
[in]a_statean amr hierarchy of velocity data

Implemented in IceNonlinearViscousTensor.

Referenced by LinearizedVTOp::applyOp(), IceNonlinearViscousTensor::setState(), LinearizedVTOp::setU(), JFNKSolver::solve(), and ~NonlinearViscousTensor().


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