# {py:mod}`zoomy_core.model.derivation.nondim`

```{py:module} zoomy_core.model.derivation.nondim
```

```{autodoc2-docstring} zoomy_core.model.derivation.nondim
:parser: zoomy_docstrings
:allowtitles:
```

## Module Contents

### Classes

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`Dim <zoomy_core.model.derivation.nondim.Dim>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Dim
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`PiBasis <zoomy_core.model.derivation.nondim.PiBasis>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.PiBasis
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`Role <zoomy_core.model.derivation.nondim.Role>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Role
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`Affine <zoomy_core.model.derivation.nondim.Affine>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Affine
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`Regime <zoomy_core.model.derivation.nondim.Regime>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Regime
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`NonDimState <zoomy_core.model.derivation.nondim.NonDimState>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`NonDimensionalize <zoomy_core.model.derivation.nondim.NonDimensionalize>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimensionalize
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`ShallowScaling <zoomy_core.model.derivation.nondim.ShallowScaling>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ShallowScaling
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`ClosureRecord <zoomy_core.model.derivation.nondim.ClosureRecord>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ClosureRecord
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`InsertClosure <zoomy_core.model.derivation.nondim.InsertClosure>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.InsertClosure
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`Dimensionalize <zoomy_core.model.derivation.nondim.Dimensionalize>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Dimensionalize
    :parser: zoomy_docstrings
    :summary:
    ```
````

### Data

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`ONE <zoomy_core.model.derivation.nondim.ONE>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ONE
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`VELOCITY <zoomy_core.model.derivation.nondim.VELOCITY>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.VELOCITY
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`ACCELERATION <zoomy_core.model.derivation.nondim.ACCELERATION>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ACCELERATION
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`DENSITY <zoomy_core.model.derivation.nondim.DENSITY>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.DENSITY
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`STRESS <zoomy_core.model.derivation.nondim.STRESS>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.STRESS
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`KINEMATIC_VISCOSITY <zoomy_core.model.derivation.nondim.KINEMATIC_VISCOSITY>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.KINEMATIC_VISCOSITY
    :parser: zoomy_docstrings
    :summary:
    ```
* - {py:obj}`PARAMETER_DIMENSIONS <zoomy_core.model.derivation.nondim.PARAMETER_DIMENSIONS>`
  - ```{autodoc2-docstring} zoomy_core.model.derivation.nondim.PARAMETER_DIMENSIONS
    :parser: zoomy_docstrings
    :summary:
    ```
````

### API

`````{py:class} Dim(M=0, L=0, T=0)
:canonical: zoomy_core.model.derivation.nondim.Dim

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Dim
:parser: zoomy_docstrings
```

```{rubric} Initialization
```

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Dim.__init__
:parser: zoomy_docstrings
```

````{py:property} dimensionless
:canonical: zoomy_core.model.derivation.nondim.Dim.dimensionless

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Dim.dimensionless
:parser: zoomy_docstrings
```

````

`````

````{py:data} ONE
:canonical: zoomy_core.model.derivation.nondim.ONE
:value: >
   'Dim(...)'

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ONE
:parser: zoomy_docstrings
```

````

````{py:data} VELOCITY
:canonical: zoomy_core.model.derivation.nondim.VELOCITY
:value: >
   None

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.VELOCITY
:parser: zoomy_docstrings
```

````

````{py:data} ACCELERATION
:canonical: zoomy_core.model.derivation.nondim.ACCELERATION
:value: >
   None

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ACCELERATION
:parser: zoomy_docstrings
```

````

````{py:data} DENSITY
:canonical: zoomy_core.model.derivation.nondim.DENSITY
:value: >
   None

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.DENSITY
:parser: zoomy_docstrings
```

````

````{py:data} STRESS
:canonical: zoomy_core.model.derivation.nondim.STRESS
:value: >
   None

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.STRESS
:parser: zoomy_docstrings
```

````

````{py:data} KINEMATIC_VISCOSITY
:canonical: zoomy_core.model.derivation.nondim.KINEMATIC_VISCOSITY
:value: >
   None

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.KINEMATIC_VISCOSITY
:parser: zoomy_docstrings
```

````

````{py:data} PARAMETER_DIMENSIONS
:canonical: zoomy_core.model.derivation.nondim.PARAMETER_DIMENSIONS
:value: >
   None

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.PARAMETER_DIMENSIONS
:parser: zoomy_docstrings
```

````

````{py:exception} DimensionError()
:canonical: zoomy_core.model.derivation.nondim.DimensionError

Bases: {py:obj}`ValueError`

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.DimensionError
:parser: zoomy_docstrings
```

```{rubric} Initialization
```

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.DimensionError.__init__
:parser: zoomy_docstrings
```

````

````{py:exception} ScalingError()
:canonical: zoomy_core.model.derivation.nondim.ScalingError

Bases: {py:obj}`ValueError`

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ScalingError
:parser: zoomy_docstrings
```

```{rubric} Initialization
```

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ScalingError.__init__
:parser: zoomy_docstrings
```

````

`````{py:class} PiBasis(quantities, groups, prefer=())
:canonical: zoomy_core.model.derivation.nondim.PiBasis

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.PiBasis
:parser: zoomy_docstrings
```

```{rubric} Initialization
```

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.PiBasis.__init__
:parser: zoomy_docstrings
```

````{py:method} suggest()
:canonical: zoomy_core.model.derivation.nondim.PiBasis.suggest

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.PiBasis.suggest
:parser: zoomy_docstrings
```

````

`````

`````{py:class} Role()
:canonical: zoomy_core.model.derivation.nondim.Role

Bases: {py:obj}`zoomy_core.misc.options.Option`

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Role
:parser: zoomy_docstrings
```

```{rubric} Initialization
```

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Role.__init__
:parser: zoomy_docstrings
```

````{py:attribute} horizontal
:canonical: zoomy_core.model.derivation.nondim.Role.horizontal
:value: >
   'horizontal'

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Role.horizontal
:parser: zoomy_docstrings
```

````

````{py:attribute} vertical
:canonical: zoomy_core.model.derivation.nondim.Role.vertical
:value: >
   'vertical'

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Role.vertical
:parser: zoomy_docstrings
```

````

````{py:attribute} mass
:canonical: zoomy_core.model.derivation.nondim.Role.mass
:value: >
   'mass'

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Role.mass
:parser: zoomy_docstrings
```

````

`````

````{py:class} Affine(background, scale, name=None)
:canonical: zoomy_core.model.derivation.nondim.Affine

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Affine
:parser: zoomy_docstrings
```

```{rubric} Initialization
```

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Affine.__init__
:parser: zoomy_docstrings
```

````

`````{py:class} Regime(**orders)
:canonical: zoomy_core.model.derivation.nondim.Regime

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Regime
:parser: zoomy_docstrings
```

```{rubric} Initialization
```

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Regime.__init__
:parser: zoomy_docstrings
```

````{py:method} merged(defaults)
:canonical: zoomy_core.model.derivation.nondim.Regime.merged

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Regime.merged
:parser: zoomy_docstrings
```

````

`````

`````{py:class} NonDimState(fields, coord_scales, references, parameters, groups, rows, small, default_orders, prefer=())
:canonical: zoomy_core.model.derivation.nondim.NonDimState

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState
:parser: zoomy_docstrings
```

```{rubric} Initialization
```

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState.__init__
:parser: zoomy_docstrings
```

````{py:method} extend(parameters=None, groups=None, orders=None)
:canonical: zoomy_core.model.derivation.nondim.NonDimState.extend

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState.extend
:parser: zoomy_docstrings
```

````

````{py:method} bind(reference, value, parameters)
:canonical: zoomy_core.model.derivation.nondim.NonDimState.bind

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState.bind
:parser: zoomy_docstrings
```

````

````{py:method} scale_of(field)
:canonical: zoomy_core.model.derivation.nondim.NonDimState.scale_of

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState.scale_of
:parser: zoomy_docstrings
```

````

````{py:method} to_groups(coeff, what='')
:canonical: zoomy_core.model.derivation.nondim.NonDimState.to_groups

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState.to_groups
:parser: zoomy_docstrings
```

````

````{py:method} from_groups(coeff)
:canonical: zoomy_core.model.derivation.nondim.NonDimState.from_groups

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState.from_groups
:parser: zoomy_docstrings
```

````

````{py:method} order_map()
:canonical: zoomy_core.model.derivation.nondim.NonDimState.order_map

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState.order_map
:parser: zoomy_docstrings
```

````

````{py:method} split(term)
:canonical: zoomy_core.model.derivation.nondim.NonDimState.split

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState.split
:parser: zoomy_docstrings
```

````

````{py:method} order(term)
:canonical: zoomy_core.model.derivation.nondim.NonDimState.order

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState.order
:parser: zoomy_docstrings
```

````

````{py:method} scaled(e)
:canonical: zoomy_core.model.derivation.nondim.NonDimState.scaled

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState.scaled
:parser: zoomy_docstrings
```

````

````{py:method} unscaled(e)
:canonical: zoomy_core.model.derivation.nondim.NonDimState.unscaled

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState.unscaled
:parser: zoomy_docstrings
```

````

````{py:method} to_scaled_row(expr, name)
:canonical: zoomy_core.model.derivation.nondim.NonDimState.to_scaled_row

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState.to_scaled_row
:parser: zoomy_docstrings
```

````

````{py:method} normalize(expr, name)
:canonical: zoomy_core.model.derivation.nondim.NonDimState.normalize

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState.normalize
:parser: zoomy_docstrings
```

````

````{py:method} to_dimensional_row(expr, name)
:canonical: zoomy_core.model.derivation.nondim.NonDimState.to_dimensional_row

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimState.to_dimensional_row
:parser: zoomy_docstrings
```

````

`````

`````{py:class} NonDimensionalize(scales, groups, references, dimensions, rows, small, orders=None, prefer=(), name='nondimensionalize')
:canonical: zoomy_core.model.derivation.nondim.NonDimensionalize

Bases: {py:obj}`zoomy_core.model.operations.Operation`

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimensionalize
:parser: zoomy_docstrings
```

```{rubric} Initialization
```

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimensionalize.__init__
:parser: zoomy_docstrings
```

````{py:attribute} whole_model_op
:canonical: zoomy_core.model.derivation.nondim.NonDimensionalize.whole_model_op
:value: >
   True

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimensionalize.whole_model_op
:parser: zoomy_docstrings
```

````

````{py:method} apply_to_model(m)
:canonical: zoomy_core.model.derivation.nondim.NonDimensionalize.apply_to_model

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.NonDimensionalize.apply_to_model
:parser: zoomy_docstrings
```

````

`````

`````{py:class} ShallowScaling(horizontal=None, vertical=None, mass=0, regime=None, name='shallow_scaling')
:canonical: zoomy_core.model.derivation.nondim.ShallowScaling

Bases: {py:obj}`zoomy_core.model.operations.Operation`

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ShallowScaling
:parser: zoomy_docstrings
```

```{rubric} Initialization
```

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ShallowScaling.__init__
:parser: zoomy_docstrings
```

````{py:attribute} whole_model_op
:canonical: zoomy_core.model.derivation.nondim.ShallowScaling.whole_model_op
:value: >
   True

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ShallowScaling.whole_model_op
:parser: zoomy_docstrings
```

````

````{py:method} orders()
:canonical: zoomy_core.model.derivation.nondim.ShallowScaling.orders

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ShallowScaling.orders
:parser: zoomy_docstrings
```

````

````{py:method} apply_to_model(m)
:canonical: zoomy_core.model.derivation.nondim.ShallowScaling.apply_to_model

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ShallowScaling.apply_to_model
:parser: zoomy_docstrings
```

````

`````

````{py:class} ClosureRecord()
:canonical: zoomy_core.model.derivation.nondim.ClosureRecord

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ClosureRecord
:parser: zoomy_docstrings
```

```{rubric} Initialization
```

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.ClosureRecord.__init__
:parser: zoomy_docstrings
```

````

`````{py:class} InsertClosure(closures, name='insert_closure')
:canonical: zoomy_core.model.derivation.nondim.InsertClosure

Bases: {py:obj}`zoomy_core.model.operations.Operation`

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.InsertClosure
:parser: zoomy_docstrings
```

```{rubric} Initialization
```

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.InsertClosure.__init__
:parser: zoomy_docstrings
```

````{py:attribute} whole_model_op
:canonical: zoomy_core.model.derivation.nondim.InsertClosure.whole_model_op
:value: >
   True

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.InsertClosure.whole_model_op
:parser: zoomy_docstrings
```

````

````{py:method} apply_to_model(m)
:canonical: zoomy_core.model.derivation.nondim.InsertClosure.apply_to_model

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.InsertClosure.apply_to_model
:parser: zoomy_docstrings
```

````

`````

`````{py:class} Dimensionalize(name='dimensionalize')
:canonical: zoomy_core.model.derivation.nondim.Dimensionalize

Bases: {py:obj}`zoomy_core.model.operations.Operation`

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Dimensionalize
:parser: zoomy_docstrings
```

```{rubric} Initialization
```

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Dimensionalize.__init__
:parser: zoomy_docstrings
```

````{py:attribute} whole_model_op
:canonical: zoomy_core.model.derivation.nondim.Dimensionalize.whole_model_op
:value: >
   True

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Dimensionalize.whole_model_op
:parser: zoomy_docstrings
```

````

````{py:method} apply_to_model(m)
:canonical: zoomy_core.model.derivation.nondim.Dimensionalize.apply_to_model

```{autodoc2-docstring} zoomy_core.model.derivation.nondim.Dimensionalize.apply_to_model
:parser: zoomy_docstrings
```

````

`````
