Loading...
Searching...
No Matches
cart_grid.h File Reference

Routines to construct fully formed grid structures from a simple Cartesian (i.e., tensor product) description. More...

Go to the source code of this file.

## Functions

struct UnstructuredGrid * | create_grid_cart2d (int nx, int ny, double dx, double dy)
struct UnstructuredGrid * | create_grid_cart3d (int nx, int ny, int nz)
| Form geometrically Cartesian grid in three space dimensions with unit-sized cells.
struct UnstructuredGrid * | create_grid_hexa3d (int nx, int ny, int nz, double dx, double dy, double dz)
| Form geometrically Cartesian grid in three space dimensions with equally sized cells.
struct UnstructuredGrid * | create_grid_tensor2d (int nx, int ny, const double *x, const double *y)
| Form tensor product (Cartesian) grid in two space dimensions.
struct UnstructuredGrid * | create_grid_tensor3d (int nx, int ny, int nz, const double *x, const double *y, const double *z, const double *depthz)
| Form tensor product (i.e., topologically Cartesian) grid in three space dimensions–possibly with a variable top-layer topography.

## Detailed Description

Routines to construct fully formed grid structures from a simple Cartesian (i.e., tensor product) description.

The cells are lexicographically ordered with the `i` index cycling the most rapidly, followed by the `j` index and then, in three space dimensions, the `k` (`layer') index as the least rapidly cycling index. */

/** Form geometrically Cartesian grid in two space dimensions with equally sized cells.

Parameters

  [in] | nx | Number of cells in `x` direction.
  [in] | ny | Number of cells in `y` direction.
  [in] | dx | Length, in meters, of each cell's `x` extent.
  [in] | dy | Length, in meters, of each cell's `y` extent.

Returns
  Fully formed grid structure containing valid geometric primitives. Must be destroyed using function destroy_grid().

## Function Documentation

## create_grid_cart3d()

struct UnstructuredGrid * create_grid_cart3d | ( | int | nx,
|  | int | ny,
|  | int | nz )

Form geometrically Cartesian grid in three space dimensions with unit-sized cells.

Parameters

  [in] | nx | Number of cells in `x` direction.
  [in] | ny | Number of cells in `y` direction.
  [in] | nz | Number of cells in `z` direction.

Returns
  Fully formed grid structure containing valid geometric primitives. Must be destroyed using function destroy_grid().

## create_grid_hexa3d()

struct UnstructuredGrid * create_grid_hexa3d | ( | int | nx,
|  | int | ny,
|  | int | nz,
|  | double | dx,
|  | double | dy,
|  | double | dz )

Form geometrically Cartesian grid in three space dimensions with equally sized cells.

Each cell has physical size (volume) .

Parameters

  [in] | nx | Number of cells in `x` direction.
  [in] | ny | Number of cells in `y` direction.
  [in] | nz | Number of cells in `z` direction.
  [in] | dx | Length, in meters, of each cell's `x` extent.
  [in] | dy | Length, in meters, of each cell's `y` extent.
  [in] | dz | Length, in meters, of each cell's `z` extent.

Returns
  Fully formed grid structure containing valid geometric primitives. Must be destroyed using function destroy_grid().

## create_grid_tensor2d()

struct UnstructuredGrid * create_grid_tensor2d | ( | int | nx,
|  | int | ny,
|  | const double * | x,
|  | const double * | y )

Form tensor product (Cartesian) grid in two space dimensions.

The size (volume) of cell is

Similar relations hold for the cell and interface centroids as well as the interface areas and normal vectors. In other words, cell is the convex hull bounded by the tensor product of nodes , , , and .

Parameters

  [in] | nx | Number of cells in `x` direction.
  [in] | ny | Number of cells in `y` direction.
  [in] | x | Position along `x` axis of each grid line with constant `x` coordinate. Array of size `nx + 1`.
  [in] | y | Position along `y` axis of each grid line with constant `y` coordinate. Array of size `ny + 1`.

Returns
  Fully formed grid structure containing valid geometric primitives. Must be destroyed using function destroy_grid().

## create_grid_tensor3d()

struct UnstructuredGrid * create_grid_tensor3d | ( | int | nx,
|  | int | ny,
|  | int | nz,
|  | const double * | x,
|  | const double * | y,
|  | const double * | z,
|  | const double * | depthz )

Form tensor product (i.e., topologically Cartesian) grid in three space dimensions–possibly with a variable top-layer topography.

If `depthz` is `NULL`, then geometric information such as volumes and centroids is calculated from analytic expressions. Otherwise, these values are computed using function compute_geometry().

Parameters

  [in] | nx | Number of cells in `x` direction.
  [in] | ny | Number of cells in `y` direction.
  [in] | nz | Number of cells in `z` direction.
  [in] | x | Position along `x` axis of each grid line with constant `x` coordinate. Array of size `nx + 1`.
  [in] | y | Position along `y` axis of each grid line with constant `y` coordinate. Array of size `ny + 1`.
  [in] | z | Distance (depth) from top-layer measured along the `z` axis of each grid line with constant `z` coordinate. Array of size `nz + 1`.
  [in] | depthz | Top-layer topography specification. If `NULL`, interpreted as horizontal top-layer at `z=0`. Otherwise, must be an array of size `(nx + 1) * (ny + 1)`, ordered lexicographically, that defines the depth of each top-layer pillar vertex.

Returns
  Fully formed grid structure containing valid geometric primitives. Must be destroyed using function destroy_grid().