20 #include "pism/verification/BTU_Verification.hh"
21 #include "pism/util/Time.hh"
22 #include "pism/verification/tests/exactTestK.h"
23 #include "pism/verification/tests/exactTestO.h"
24 #include "pism/util/error_handling.hh"
25 #include "pism/util/array/Array3D.hh"
32 int testname,
bool bedrock_is_ice)
45 (void) bedrock_top_temperature;
55 for (
unsigned int k = 0;
k <
m_Mbz;
k++) {
59 "exactK() reports that level %9.7f is below B0 = -1000.0 m",
66 for (
unsigned int k = 0;
k <
m_Mbz;
k++) {
77 for (
auto p =
m_grid->points(); p; p.next()) {
const Time & time() const
const std::shared_ptr< const Grid > m_grid
grid used by this component
void failed()
Indicates a failure of a parallel section.
static RuntimeError formatted(const ErrorLocation &location, const char format[],...) __attribute__((format(printf
build a RuntimeError with a formatted message
double current() const
Current time, in seconds.
Makes sure that we call begin_access() and end_access() for all accessed array::Arrays.
void set(double c)
Result: v[j] <- c for all j.
const array::Array3D & temperature() const
Bedrock thermal layer temperature field.
unsigned int m_Mbz
number of vertical levels within the bedrock
std::shared_ptr< array::Array3D > m_temp
Given the temperature of the top of the bedrock, for the duration of one time-step,...
BTU_Verification(std::shared_ptr< const Grid > g, const BTUGrid &vertical_grid, int test, bool bii)
virtual void initialize_bottom_surface_flux()
virtual void bootstrap(const array::Scalar &bedrock_top_temperature)
array::Scalar m_bottom_surface_flux
upward heat flux through the bottom surface of the bed thermal layer
#define PISM_ERROR_LOCATION
struct TestKParameters exactK(double t, double z, int bedrock_is_ice)
struct TestOParameters exactO(double z)