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

BedDeformLC Class Reference

Class implementing the bed deformation model described in [BLKfastearth]. More...

#include <deformation.hh>

List of all members.

Public Member Functions

 BedDeformLC ()
 ~BedDeformLC ()
PetscErrorCode settings (const NCConfigVariable &config, PetscTruth myinclude_elastic, PetscInt myMx, PetscInt myMy, PetscScalar mydx, PetscScalar mydy, PetscInt myZ, PetscScalar myicerho, Vec *myHstart, Vec *mybedstart, Vec *myuplift, Vec *myH, Vec *mybed)
PetscErrorCode alloc ()
PetscErrorCode uplift_init ()
PetscErrorCode step (const PetscScalar dtyear, const PetscScalar yearFromStart)

Protected Attributes

PetscTruth include_elastic
PetscInt Mx
PetscInt My
PetscScalar dx
PetscScalar dy
PetscInt Z
PetscScalar icerho
PetscScalar rho
PetscScalar eta
PetscScalar D

Private Attributes

PetscScalar standard_gravity
PetscTruth settingsDone
PetscTruth allocDone
PetscInt Nx
PetscInt Ny
PetscInt Nxge
PetscInt Nyge
PetscInt i0_plate
PetscInt j0_plate
PetscScalar Lx
PetscScalar Ly
PetscScalar fatLx
PetscScalar fatLy
PetscScalar * cx
PetscScalar * cy
Vec * H
Vec * bed
Vec * Hstart
Vec * bedstart
Vec * uplift
Vec Hdiff
Vec dbedElastic
Vec platefat
Vec plateoffset
Vec vleft
Vec vright
Vec lrmE
fftw_complex * bdin
fftw_complex * bdout
fftw_plan bdplanfor
fftw_plan bdplanback

Detailed Description

Class implementing the bed deformation model described in [BLKfastearth].

This class implements the [LingleClark] bed deformation model by a Fourier spectral collocation method, as described in [BLKfastearth]. (The former reference is where the continuum model arose, and a flow-line application is given. The latter reference describes a new, fast method and gives verification results. See also [BLK2006earth] if more technical detail and/or Matlab programs are desired.)

Both a viscous half-space model (with elastic lithosphere) and a spherical elastic model are computed. They are superposed because the underlying earth model is linear.

The class assumes that the supplied Petsc Vecs are *sequential*. It is expected to be run only on processor zero (or possibly by each processor once each processor owns the entire 2D gridded ice thicknesses and bed elevations.)

This class SHOULD! include the scatter structures necessary to make this work in parallel.

A test program for this class is pism/src/verif/tryLCbd.cc.

Called by IceModel in pism/src/iMbeddef.cc.

Definition at line 51 of file deformation.hh.


Constructor & Destructor Documentation

Definition at line 32 of file deformation.cc.

References allocDone, and settingsDone.

Definition at line 38 of file deformation.cc.

References allocDone, bdin, bdout, bdplanback, bdplanfor, cx, cy, dbedElastic, Hdiff, lrmE, platefat, plateoffset, vleft, and vright.


Member Function Documentation

PetscErrorCode alloc ( )
PetscErrorCode settings ( const NCConfigVariable &  config,
PetscTruth  myinclude_elastic,
PetscInt  myMx,
PetscInt  myMy,
PetscScalar  mydx,
PetscScalar  mydy,
PetscInt  myZ,
PetscScalar  myicerho,
Vec *  myHstart,
Vec *  mybedstart,
Vec *  myuplift,
Vec *  myH,
Vec *  mybed 
)

Definition at line 59 of file deformation.cc.

References bed, bedstart, D, dx, dy, eta, fatLx, fatLy, H, Hstart, i0_plate, icerho, include_elastic, j0_plate, Lx, Ly, Mx, My, Nx, Nxge, Ny, Nyge, rho, settingsDone, standard_gravity, uplift, and Z.

Referenced by PBLingleClark::allocate(), and main().

PetscErrorCode step ( const PetscScalar  dtyear,
const PetscScalar  yearFromStart 
)
PetscErrorCode uplift_init ( )

Definition at line 190 of file deformation.cc.

References bdin, bdout, bdplanback, bdplanfor, cx, cy, D, eta, i0_plate, j0_plate, Mx, My, Nx, Ny, platefat, plateoffset, rho, standard_gravity, uplift, vleft, and vright.

Referenced by PBLingleClark::init(), and main().


Member Data Documentation

PetscTruth allocDone [private]

Definition at line 80 of file deformation.hh.

Referenced by alloc(), BedDeformLC(), and ~BedDeformLC().

fftw_complex* bdin [private]

Definition at line 93 of file deformation.hh.

Referenced by alloc(), step(), uplift_init(), and ~BedDeformLC().

fftw_complex * bdout [private]

Definition at line 93 of file deformation.hh.

Referenced by alloc(), step(), uplift_init(), and ~BedDeformLC().

fftw_plan bdplanback [private]

Definition at line 94 of file deformation.hh.

Referenced by alloc(), step(), uplift_init(), and ~BedDeformLC().

fftw_plan bdplanfor [private]

Definition at line 94 of file deformation.hh.

Referenced by alloc(), step(), uplift_init(), and ~BedDeformLC().

Vec * bed [private]

Definition at line 87 of file deformation.hh.

Referenced by settings(), and step().

Vec * bedstart [private]

Definition at line 87 of file deformation.hh.

Referenced by settings(), and step().

PetscScalar* cx [private]

Definition at line 86 of file deformation.hh.

Referenced by alloc(), step(), uplift_init(), and ~BedDeformLC().

PetscScalar * cy [private]

Definition at line 86 of file deformation.hh.

Referenced by alloc(), step(), uplift_init(), and ~BedDeformLC().

PetscScalar D [protected]

Definition at line 73 of file deformation.hh.

Referenced by settings(), step(), and uplift_init().

Vec dbedElastic [private]

Definition at line 88 of file deformation.hh.

Referenced by alloc(), step(), and ~BedDeformLC().

PetscScalar dx [protected]

Definition at line 70 of file deformation.hh.

Referenced by alloc(), settings(), and step().

PetscScalar dy [protected]

Definition at line 70 of file deformation.hh.

Referenced by alloc(), settings(), and step().

PetscScalar eta [protected]

Definition at line 73 of file deformation.hh.

Referenced by settings(), step(), and uplift_init().

PetscScalar fatLx [private]

Definition at line 85 of file deformation.hh.

Referenced by alloc(), settings(), and step().

PetscScalar fatLy [private]

Definition at line 85 of file deformation.hh.

Referenced by alloc(), settings(), and step().

Vec* H [private]

Definition at line 87 of file deformation.hh.

Referenced by alloc(), settings(), and step().

Vec Hdiff [private]

Definition at line 88 of file deformation.hh.

Referenced by alloc(), step(), and ~BedDeformLC().

Vec * Hstart [private]

Definition at line 87 of file deformation.hh.

Referenced by settings(), and step().

PetscInt i0_plate [private]

Definition at line 83 of file deformation.hh.

Referenced by settings(), step(), and uplift_init().

PetscScalar icerho [protected]

Definition at line 73 of file deformation.hh.

Referenced by settings(), and step().

PetscTruth include_elastic [protected]

Definition at line 68 of file deformation.hh.

Referenced by alloc(), settings(), and step().

PetscInt j0_plate [private]

Definition at line 83 of file deformation.hh.

Referenced by settings(), step(), and uplift_init().

Vec lrmE [private]

Definition at line 88 of file deformation.hh.

Referenced by alloc(), step(), and ~BedDeformLC().

PetscScalar Lx [private]

Definition at line 84 of file deformation.hh.

Referenced by settings().

PetscScalar Ly [private]

Definition at line 84 of file deformation.hh.

Referenced by settings().

PetscInt Mx [protected]

Definition at line 69 of file deformation.hh.

Referenced by settings(), step(), and uplift_init().

PetscInt My [protected]

Definition at line 69 of file deformation.hh.

Referenced by settings(), step(), and uplift_init().

PetscInt Nx [private]

Definition at line 81 of file deformation.hh.

Referenced by alloc(), settings(), step(), and uplift_init().

PetscInt Nxge [private]

Definition at line 81 of file deformation.hh.

Referenced by alloc(), settings(), and step().

PetscInt Ny [private]

Definition at line 81 of file deformation.hh.

Referenced by alloc(), settings(), step(), and uplift_init().

PetscInt Nyge [private]

Definition at line 81 of file deformation.hh.

Referenced by alloc(), settings(), and step().

Vec platefat [private]

Definition at line 88 of file deformation.hh.

Referenced by alloc(), step(), uplift_init(), and ~BedDeformLC().

Vec plateoffset [private]

Definition at line 88 of file deformation.hh.

Referenced by alloc(), step(), uplift_init(), and ~BedDeformLC().

PetscScalar rho [protected]

Definition at line 73 of file deformation.hh.

Referenced by settings(), step(), and uplift_init().

PetscTruth settingsDone [private]

Definition at line 80 of file deformation.hh.

Referenced by alloc(), BedDeformLC(), and settings().

PetscScalar standard_gravity [private]

Definition at line 79 of file deformation.hh.

Referenced by settings(), step(), and uplift_init().

Vec * uplift [private]

Definition at line 87 of file deformation.hh.

Referenced by settings(), and uplift_init().

Vec vleft [private]

Definition at line 88 of file deformation.hh.

Referenced by alloc(), step(), uplift_init(), and ~BedDeformLC().

Vec vright [private]

Definition at line 88 of file deformation.hh.

Referenced by alloc(), step(), uplift_init(), and ~BedDeformLC().

PetscInt Z [protected]

Definition at line 71 of file deformation.hh.

Referenced by settings().


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