PISM, A Parallel Ice Sheet Model stable 0.4.1779
Public Member Functions | Protected Member Functions | Protected Attributes

SSAFEM_Forward Class Reference

Forward problem for the map from yeild stress to velocities in the SSA. More...

#include <SSAFEM_Forward.hh>

Inheritance diagram for SSAFEM_Forward:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 SSAFEM_Forward (IceGrid &g, IceBasalResistancePlasticLaw &b, IceFlowLaw &i, EnthalpyConverter &e, const NCConfigVariable &c)
virtual ~SSAFEM_Forward ()
PetscErrorCode allocate_ksp ()
PetscErrorCode deallocate_ksp ()
PetscErrorCode set_initial_velocity_guess (IceModelVec2V &v)
PetscErrorCode set_tauc (IceModelVec2S &tauc)
PetscErrorCode setup_vars ()
PetscErrorCode solveF (IceModelVec2V &result)
PetscErrorCode solveT (IceModelVec2S &d, IceModelVec2V &result)
PetscErrorCode solveTStar (IceModelVec2V &r, IceModelVec2S &result)
PetscErrorCode domainIP (IceModelVec2S &a, IceModelVec2S &b, PetscScalar *OUTPUT)
PetscErrorCode rangeIP (IceModelVec2V &a, IceModelVec2V &b, PetscScalar *OUTPUT)
PetscErrorCode domainIP (Vec a, Vec b, PetscScalar *OUTPUT)
PetscErrorCode rangeIP (Vec a, Vec b, PetscScalar *OUTPUT)

Protected Member Functions

PetscErrorCode domainIP_core (PetscReal **A, PetscReal **B, PetscScalar *OUTPUT)
PetscErrorCode rangeIP_core (PISMVector2 **A, PISMVector2 **B, PetscScalar *OUTPUT)
PetscErrorCode solveF_core ()
PetscErrorCode assemble_T_matrix ()
PetscErrorCode assemble_DomainNorm_matrix ()
PetscErrorCode assemble_T_rhs (PISMVector2 **gvel, PetscReal **gdtau, PISMVector2 **grhs)
PetscErrorCode assemble_TStarA_rhs (PISMVector2 **R, PISMVector2 **RHS)
PetscErrorCode assemble_TStarB_rhs (PISMVector2 **Z, PISMVector2 **U, PetscScalar **RHS)

Protected Attributes

KSP m_KSP
KSP m_KSP_B
Mat m_MatA
 Matrices involved in T and T*.
Mat m_MatB
Vec m_VecU
Vec m_VecZ2
 Left- and right-hand side for linear vector problems.
Vec m_VecZ
Vec m_VecRHS2
Vec m_VecV
 Left- and right-hand side for linear scalar problems.
Vec m_VecRHS
bool m_reassemble_T_matrix_needed
bool m_forward_F_needed

Detailed Description

Forward problem for the map from yeild stress to velocities in the SSA.

Definition at line 25 of file SSAFEM_Forward.hh.


Constructor & Destructor Documentation

SSAFEM_Forward ( IceGrid &  g,
IceBasalResistancePlasticLaw b,
IceFlowLaw i,
EnthalpyConverter e,
const NCConfigVariable &  c 
) [inline]

Definition at line 30 of file SSAFEM_Forward.hh.

References allocate_ksp().

virtual ~SSAFEM_Forward ( ) [inline, virtual]

Definition at line 44 of file SSAFEM_Forward.hh.

References deallocate_ksp().


Member Function Documentation

PetscErrorCode allocate_ksp ( )

Definition at line 22 of file SSAFEM_Forward.cc.

References e, PISMComponent::grid, m_KSP, m_KSP_B, m_MatA, m_MatB, m_VecRHS, m_VecRHS2, m_VecU, m_VecV, m_VecZ, m_VecZ2, and SSA::SSADA.

Referenced by SSAFEM_Forward().

PetscErrorCode assemble_DomainNorm_matrix ( ) [protected]
PetscErrorCode assemble_T_matrix ( ) [protected]

Definition at line 316 of file SSAFEM_Forward.cc.

References SSAFEM::compute_local_jacobian(), m_MatA, m_VecU, and SSA::SSADA.

Referenced by solveT(), and solveTStar().

PetscErrorCode assemble_T_rhs ( PISMVector2 **  gvel,
PetscReal **  gdtau,
PISMVector2 **  grhs 
) [protected]
PetscErrorCode assemble_TStarA_rhs ( PISMVector2 **  R,
PISMVector2 **  RHS 
) [protected]
PetscErrorCode assemble_TStarB_rhs ( PISMVector2 **  Z,
PISMVector2 **  U,
PetscScalar **  RHS 
) [protected]
PetscErrorCode deallocate_ksp ( )

Definition at line 57 of file SSAFEM_Forward.cc.

References m_KSP, m_KSP_B, m_MatA, m_MatB, m_VecRHS, m_VecRHS2, m_VecU, m_VecV, m_VecZ, and m_VecZ2.

Referenced by ~SSAFEM_Forward().

PetscErrorCode domainIP ( IceModelVec2S &  a,
IceModelVec2S &  b,
PetscScalar *  OUTPUT 
)

Definition at line 392 of file SSAFEM_Forward.cc.

References domainIP_core().

PetscErrorCode domainIP ( Vec  a,
Vec  b,
PetscScalar *  OUTPUT 
)

Definition at line 381 of file SSAFEM_Forward.cc.

References domainIP_core(), and PISMComponent::grid.

PetscErrorCode domainIP_core ( PetscReal **  A,
PetscReal **  B,
PetscScalar *  OUTPUT 
) [protected]
PetscErrorCode rangeIP ( IceModelVec2V &  a,
IceModelVec2V &  b,
PetscScalar *  OUTPUT 
)

Definition at line 416 of file SSAFEM_Forward.cc.

References rangeIP_core().

PetscErrorCode rangeIP ( Vec  a,
Vec  b,
PetscScalar *  OUTPUT 
)

Definition at line 404 of file SSAFEM_Forward.cc.

References rangeIP_core(), and SSA::SSADA.

PetscErrorCode rangeIP_core ( PISMVector2 **  A,
PISMVector2 **  B,
PetscScalar *  OUTPUT 
) [protected]
PetscErrorCode set_initial_velocity_guess ( IceModelVec2V &  v)

Definition at line 104 of file SSAFEM_Forward.cc.

References m_reassemble_T_matrix_needed, and SSA::SSAX.

PetscErrorCode set_tauc ( IceModelVec2S &  tauc)
PetscErrorCode setup_vars ( )

Definition at line 112 of file SSAFEM_Forward.cc.

References assemble_DomainNorm_matrix(), and SSAFEM::setup().

PetscErrorCode solveF ( IceModelVec2V &  result)

Definition at line 184 of file SSAFEM_Forward.cc.

References solveF_core(), and SSA::SSAX.

PetscErrorCode solveF_core ( ) [protected]
PetscErrorCode solveT ( IceModelVec2S &  d,
IceModelVec2V &  result 
)
PetscErrorCode solveTStar ( IceModelVec2V &  r,
IceModelVec2S &  result 
)

Member Data Documentation

bool m_forward_F_needed [protected]

Definition at line 101 of file SSAFEM_Forward.hh.

Referenced by set_tauc(), and solveF_core().

KSP m_KSP [protected]

Definition at line 92 of file SSAFEM_Forward.hh.

Referenced by allocate_ksp(), deallocate_ksp(), solveT(), and solveTStar().

KSP m_KSP_B [protected]

Definition at line 92 of file SSAFEM_Forward.hh.

Referenced by allocate_ksp(), deallocate_ksp(), and solveTStar().

Mat m_MatA [protected]

Matrices involved in T and T*.

Definition at line 94 of file SSAFEM_Forward.hh.

Referenced by allocate_ksp(), assemble_T_matrix(), deallocate_ksp(), solveT(), and solveTStar().

Mat m_MatB [protected]

Definition at line 101 of file SSAFEM_Forward.hh.

Referenced by set_initial_velocity_guess(), set_tauc(), solveT(), and solveTStar().

Vec m_VecRHS [protected]

Definition at line 99 of file SSAFEM_Forward.hh.

Referenced by allocate_ksp(), deallocate_ksp(), and solveTStar().

Vec m_VecRHS2 [protected]

Definition at line 97 of file SSAFEM_Forward.hh.

Referenced by allocate_ksp(), deallocate_ksp(), solveT(), and solveTStar().

Vec m_VecU [protected]
Vec m_VecV [protected]

Left- and right-hand side for linear scalar problems.

Definition at line 99 of file SSAFEM_Forward.hh.

Referenced by allocate_ksp(), deallocate_ksp(), and solveTStar().

Vec m_VecZ [protected]

Definition at line 97 of file SSAFEM_Forward.hh.

Referenced by allocate_ksp(), deallocate_ksp(), and solveTStar().

Vec m_VecZ2 [protected]

Left- and right-hand side for linear vector problems.

Definition at line 97 of file SSAFEM_Forward.hh.

Referenced by allocate_ksp(), deallocate_ksp(), solveT(), and solveTStar().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines