PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800

◆ max_timestep_cfl_3d()

CFLData pism::max_timestep_cfl_3d ( const array::Scalar ice_thickness,
const array::CellType cell_type,
const array::Array3D u3,
const array::Array3D v3,
const array::Array3D w3 
)

Compute the maximum velocities for time-stepping and reporting to user.

Compute the max. time step according to the CFL condition (within the volume of the ice).

Computes the maximum magnitude of the components \(u,v,w\) of the 3D velocity.

Under BOMBPROOF there is no CFL condition for the vertical advection. The maximum vertical velocity is computed but it does not affect the output.

Returns the maximum time step along with maximum speeds along x, y, and z directions within the ice. Note that PISM uses semi-implicit methods in energy balance and age models, so this code does not use the w component of the velocity field in the computation of the max. time step. The maximum of the speed along the z axis is computed for reporting.

Definition at line 44 of file timestepping.cc.

References pism::ParallelSection::check(), pism::CFLData::dt_max, pism::ParallelSection::failed(), pism::array::Array3D::get_column(), GlobalMax(), GlobalMin(), pism::array::Array::grid(), pism::array::CellType::icy(), k, pism::array::max(), pism::array::min(), pism::CFLData::u_max, pism::CFLData::v_max, and pism::CFLData::w_max.

Referenced by pism::stressbalance::StressBalance::update().