Important Keys

Important Keys

The input dictionary contains many keys. All possible user supplied keys are listed in input_vals.txt. The purpose of this page is to describe the most important keys and use them to elucidate some of the structure of the code.

The most important key is physics which specifies which physics to solve. The name must be the name the physics module registers with the front end described in Registration Functions.

The run_type key specifies what kind of solver to use. There are a variety of options, including explicit and implicit time marching methods for unsteady problems and inexact-Newton methods for steady problems. Many of the time marching methods can also be used for pseudo-time stepping of steady problems. See call_nlsolver for the complete list of values. Physics modules should never invoke a nonlinear solver directly, they should always use call_nlsolver().

The jac_method key is needed if the nonlinear solver computes a Jacobian. PDESolver supports multiple methods of computing derivatives, including finite differences and the complex step method. The functions in the Nonlinear solvers module are required to support all methods. This key specifies which method to use. Complex step is generally recommended, finite difference are used primarily for verification.

The order key specifies the degree of the operator used to discretize the spatial terms. This is analagous to the degree of the polynomial basis functions used for finite elements.

smb_name is the name of the mesh file. This is passed directly to the AbstractMesh constructor. The mesh should already be partitioned into the correct number of parts (ie. the number of MPI processes PDESolver was launched with). For Pumi, the partitioned mesh is comprised of many numbered files. The smb_name should not have the numbers appended to it, and should be the same for all processes.

dmg_name is the name of the geometry file associated with the mesh.

IC_name is the name of the initial condition. See Registration Functions for how to add new initial conditions. Note that initial conditions are physics module specific and that getting an error about an unrecognized initial condition is often the result of specifying the incorrect physics.

operator_type: the name of the SBP operator to use. See createSBPOperator.