#include <PythonInterface.H>
|
virtual | ~PythonVelocitySolver () |
|
virtual void | define (const ProblemDomain &a_coarseDomain, ConstitutiveRelation *a_constRel, BasalFrictionRelation *a_basalFrictionRel, const Vector< DisjointBoxLayout > &a_vectGrids, const Vector< int > &a_vectRefRatio, const RealVect &a_dxCrse, IceThicknessIBC *a_bc, int a_numLevels) |
| (Re-)define IceVelocitySolver object for a given mesh and set of physics rules More...
|
|
virtual int | solve (Vector< LevelData< FArrayBox > * > &a_horizontalVel, Vector< LevelData< FArrayBox > * > &a_calvedIce, Vector< LevelData< FArrayBox > * > &a_addedIce, Vector< LevelData< FArrayBox > * > &a_removedIce, Real &a_initialResidualNorm, Real &a_finalResidualNorm, const Real a_convergenceMetric, const Vector< LevelData< FArrayBox > * > &a_rhs, const Vector< LevelData< FArrayBox > * > &a_beta, const Vector< LevelData< FArrayBox > * > &a_beta0, const Vector< LevelData< FArrayBox > * > &a_A, const Vector< LevelData< FArrayBox > * > &a_muCoef, Vector< RefCountedPtr< LevelSigmaCS > > &a_coordSys, Real a_time, int a_lbase, int a_maxLevel) |
| Compute the horizontal, cell centered ice velocity ( u(x,y), v(x,y) ) [VERTICALLY INTEGRATED MODELS!]. More...
|
|
| PythonVelocitySolver (PyObject *a_pModule, PyObject *a_pFunc) |
|
| PythonVelocitySolver () |
|
| IceVelocitySolver () |
|
virtual | ~IceVelocitySolver () |
|
virtual void | setVerbosity (int a_verbosity) |
|
virtual void | setMaxIterations (int a_max_iter) |
| if relevant, set max number of solver iterations More...
|
|
virtual void | setTolerance (Real a_tolerance) |
| if relevant, set solver tolerance More...
|
|
virtual bool | isDefined () |
|
◆ ~PythonVelocitySolver()
PythonInterface::PythonVelocitySolver::~PythonVelocitySolver |
( |
| ) |
|
|
virtual |
◆ PythonVelocitySolver() [1/2]
PythonInterface::PythonVelocitySolver::PythonVelocitySolver |
( |
PyObject * |
a_pModule, |
|
|
PyObject * |
a_pFunc |
|
) |
| |
|
inline |
◆ PythonVelocitySolver() [2/2]
PythonInterface::PythonVelocitySolver::PythonVelocitySolver |
( |
| ) |
|
|
inline |
◆ define()
void PythonInterface::PythonVelocitySolver::define |
( |
const ProblemDomain & |
a_coarseDomain, |
|
|
ConstitutiveRelation * |
a_constRel, |
|
|
BasalFrictionRelation * |
a_FrictionRel, |
|
|
const Vector< DisjointBoxLayout > & |
a_vectGrids, |
|
|
const Vector< int > & |
a_vectRefRatio, |
|
|
const RealVect & |
a_dxCrse, |
|
|
IceThicknessIBC * |
a_bc, |
|
|
int |
a_numLevels |
|
) |
| |
|
virtual |
◆ solve()
int PythonInterface::PythonVelocitySolver::solve |
( |
Vector< LevelData< FArrayBox > * > & |
a_horizontalVel, |
|
|
Vector< LevelData< FArrayBox > * > & |
a_calvedIce, |
|
|
Vector< LevelData< FArrayBox > * > & |
a_addedIce, |
|
|
Vector< LevelData< FArrayBox > * > & |
a_removedIce, |
|
|
Real & |
a_initialResidualNorm, |
|
|
Real & |
a_finalResidualNorm, |
|
|
const Real |
a_convergenceMetric, |
|
|
const Vector< LevelData< FArrayBox > * > & |
a_rhs, |
|
|
const Vector< LevelData< FArrayBox > * > & |
a_C, |
|
|
const Vector< LevelData< FArrayBox > * > & |
a_C0, |
|
|
const Vector< LevelData< FArrayBox > * > & |
a_A, |
|
|
const Vector< LevelData< FArrayBox > * > & |
a_muCoef, |
|
|
Vector< RefCountedPtr< LevelSigmaCS > > & |
a_coordSys, |
|
|
Real |
a_time, |
|
|
int |
a_lbase, |
|
|
int |
a_maxLevel |
|
) |
| |
|
virtual |
Compute the horizontal, cell centered ice velocity ( u(x,y), v(x,y) ) [VERTICALLY INTEGRATED MODELS!].
- Parameters
-
a_horizontalVel | on input an initial guess ( u_0(x,y), v_0(x,y) ), on output ( u(x,y), v(x,y) ) |
a_initialResidualNorm | residual norm given the initial guess |
a_finalResidualNorm | residual norm at the end of the calculation |
a_convergenceMetric | desired a_finalResidualNorm/a_initialResidualNorm |
a_rhs | right hand side of the stress balance equation: the driving stress (x,y) components |
a_C | main basal friction coefficient : |
a_C0 | auxilliary basal friction coefficient : |
a_A | flow rate factor: one component per layer |
a_muCoef | stiffness factor: one component |
a_coordSys | ice sheet geoemtry |
a_time | current time |
a_lbase | lowest mesh level (probably doesn't work!) |
a_maxLevel | highest mesh level |
- Returns
- 0 if solver converges successfully
Implements IceVelocitySolver.
References LevelSigmaCS::dx(), LevelSigmaCS::getH(), LevelSigmaCS::getTopography(), and PythonInterface::PythonEval().
Referenced by define().
The documentation for this class was generated from the following files: