# Specifying a geometry

The following inputs are defined using the `mfix` prefix.

| Description | Type | Default
--- | --- | --- | ---
geometry | Select a predefined EB geometry | String | ‘’
geometry_filename | The CSG file that defines the EB geometry | String | ‘’
levelset__refinement | Refinement factor of levelset resolution relative to level 0 resolution | Int | 1

Most simulations require a user to specify some kind of geometry. For example, the geometry could be a basic cylinder used to model flow inside a pipe, or it may be an irregularly shaped solid to study external flow around a bluff body, or the geometry may be the proposed design of a complex, multi-stage chemical reactor undergoing performance assessment. In the following sections, several options for specifying a geometry are described.

Caution

Any domain extent that is not periodic or defined as a Dirichlet or Neumann boundary condition must be fully covered. To state this another way, if a domain extent is not periodic or an inflow or outflow boundary condition, then it should be excluded from (outside of) the domain by the embedded boundary geometry.

## Pre-defined geometries

The `mfix.geometry` input is used to choose one of the basic pre-defined geometries, or to select the option to use a user-defined geometry constructed from native AMReX implicit functions.

## Constructive solid geometry

Use the `mfix.geometry_filename` input to select a constructive solid geometry (CSG) that defines the system geometry.

## Regions and boundary conditions

Simple geometries can be created by combining planar regions and no-slip wall boundary conditions. The `mfix.geometry` and `mfix.geometry_file` inputs should remain undefined when using this method.

In the following example, the domain is periodic in the x- and z- directions; therefore, walls only need to cover the low and high xz faces. First, `wall1` and `wall2` are defined in the `regions` section, then they are used to specify two no-slip wall boundary conditions.

Listing 1 Example geometry created using regions and boundary conditions.

     # Define periodicity and domain extents
     # -------------------------------------------------------------
     geometry.coord_sys   = 0
     geometry.is_periodic = 1      0      1
     geometry.prob_lo     = 0.     0.     0.
     geometry.prob_hi     = 0.01   0.01   0.005

     # Define two planar regions
     # -------------------------------------------------------------
     mfix.regions = wall1  wall2

     regions.wall1.lo       = 0.000  1.25e-6  0.000
     regions.wall1.hi       = 0.010  1.25e-6  0.005

     regions.wall2.lo       = 0.000  9.99875e-3  0.000
     regions.wall2.hi       = 0.010  9.99875e-3  0.005

     # Use the regions to define no-slip wall boundaries
     # -------------------------------------------------------------
     bc.regions = wall1  wall2

     bc.wall1 = nsw
     bc.wall1.normal = 0.0  1.0  0.0

     bc.wall2 = nsw
     bc.wall2.normal = 0.0 -1.0  0.0

Caution

It is highly recommended that planar regions not be defined coincident to domain boundaries. It is better to specify planes slightly offset from the domain as demonstrated in the above example.