|
PISM, A Parallel Ice Sheet Model stable 0.4.1779
|
Class implementing the bed deformation model described in [BLKfastearth]. More...
#include <deformation.hh>
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 |
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.
| BedDeformLC | ( | ) |
Definition at line 32 of file deformation.cc.
References allocDone, and settingsDone.
| ~BedDeformLC | ( | ) |
Definition at line 38 of file deformation.cc.
References allocDone, bdin, bdout, bdplanback, bdplanfor, cx, cy, dbedElastic, Hdiff, lrmE, platefat, plateoffset, vleft, and vright.
| PetscErrorCode alloc | ( | ) |
Definition at line 104 of file deformation.cc.
References allocDone, bdin, bdout, bdplanback, bdplanfor, cx, cy, dbedElastic, dblquad_cubature(), dx, ge_params::dx, dy, ge_params::dy, e, fatLx, fatLy, ge_integrand(), H, Hdiff, include_elastic, lrmE, Nx, Nxge, Ny, Nyge, ge_params::p, pi, platefat, plateoffset, ge_params::q, settingsDone, vleft, and vright.
Referenced by PBLingleClark::allocate(), and main().
| 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 step | ( | const PetscScalar | dtyear, |
| const PetscScalar | yearFromStart | ||
| ) |
Definition at line 262 of file deformation.cc.
References bdin, bdout, bdplanback, bdplanfor, bed, bedstart, conv2_same(), cx, cy, D, dbedElastic, dx, dy, eta, fatLx, fatLy, H, Hdiff, Hstart, i0_plate, icerho, include_elastic, j0_plate, lrmE, Mx, My, Nx, Nxge, Ny, Nyge, pi, platefat, plateoffset, rho, secpera, standard_gravity, viscDisc(), vleft, and vright.
Referenced by main(), and PBLingleClark::update().
| 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().
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().
1.7.3