High-level FD API documentation

Table of Contents

Overview

Here an overview of the Morfeus finite difference (FD) framework is given. Included is a brief description of how to setup a new solver using the framework. Key objects/classes, and procedures are outlined. An overview of reading input files, reading grid files, initializing the library and data structures and, setting up PDEs, integrating the solution forward in time and writing outputs is given.

Solver and Problem Setup

Time-stepping and Integration

High Level Classes and Objects

Below is a list of the important high-level objects and classes, with a brief discussion and links to detailed API documentation and their implementations. A complete list of all FD and FV classes and types can be found on the types list page.

object

object is an abstract type to ensure descendents declare the required deferred bindings to

Methods

grid

grid Is the Morfeus universal base type for all grids, even for FV grids. It extends object.

Methods

  • set_units : Set the physical units used by the grid
  • get_units : Get the physical units used by the grid

structured_grid

This is the main structured grid class used by Morfeus FD. It extends the grid class. Methods defined for this class can get information about the global grid as well as this images particular block.

Methods

cartesian_grid

Methods

curvilinear_grid

Methods

co_object

surfaces

material_t

thickness_t

problem_discretization

package

material_t

flux_planes

plate_3d

geometry

subdomain_t

etc., etc.

High Level Procedures and Methods

All Morfeus FV and FD procedures are listed on the procedures list page, but below is a curated list of those that correspond to high-level operations in FD. These should help you write your own programs and kernels using Morfeus FD.

assert

assert Is an assertion utility used in design by contract (DBC) for enforcing pre-conditions, post-conditions and invariants, as well in testing.