# Library

Documenting the public user interface.

## Oceananigans.jl

```@autodocs
Modules = [Oceananigans]
Private = false
```

## Abstract operations

```@autodocs
Modules = [Oceananigans.AbstractOperations]
Private = false
```

## [Advection](@id lib_advection)

```@autodocs
Modules = [Oceananigans.Advection]
Private = false
```

## Architectures

```@autodocs
Modules = [Oceananigans.Architectures]
Private = false
```

## Boundary conditions

```@autodocs
Modules = [Oceananigans.BoundaryConditions]
Private = false
```

## Buoyancy models

```@autodocs
Modules = [Oceananigans.BuoyancyFormulations]
Private = false
```

## Coriolis

```@autodocs
Modules = [Oceananigans.Coriolis]
Private = false
```

## Diagnostics

```@autodocs
Modules = [Oceananigans.Diagnostics]
Private = false
```

## Distributed

```@autodocs
Modules = [Oceananigans.DistributedComputations]
Private = false
```

## Fields

```@autodocs
Modules = [Oceananigans.Fields]
Private = false
```

## Forcings

```@autodocs
Modules = [Oceananigans.Forcings]
Private = false
```

## Grids

```@autodocs
Modules = [Oceananigans.Grids]
Private = false
```

## OrthogonalSphericalShellGrids

```@autodocs
Modules = [Oceananigans.OrthogonalSphericalShellGrids]
Private = false
```

## Immersed boundaries

```@autodocs
Modules = [Oceananigans.ImmersedBoundaries]
Private = false
```

## Logger

```@autodocs
Modules = [Oceananigans.Logger]
Private = false
Pages   = ["Logger.jl"]
```

## Models

```@autodocs
Modules = [Oceananigans.Models]
Private = false
```

### Non-hydrostatic models

```@autodocs
Modules = [Oceananigans.Models.NonhydrostaticModels]
Private = false
```

### Hydrostatic free-surface models

```@autodocs
Modules = [Oceananigans.Models.HydrostaticFreeSurfaceModels]
Private = false
```

### Split-explicit free-surface

```@autodocs
Modules = [Oceananigans.Models.HydrostaticFreeSurfaceModels.SplitExplicitFreeSurfaces]
Private = false
```

### Shallow-water models

```@autodocs
Modules = [Oceananigans.Models.ShallowWaterModels]
Private = false
```

### Lagrangian particle tracking

```@autodocs
Modules = [Oceananigans.Models.LagrangianParticleTracking]
Private = false
```

### VarianceDissipationComputations

```@autodocs
Modules = [Oceananigans.Models.VarianceDissipationComputations]
Private = false
```

### Bulk drag boundary conditions

```@autodocs
Modules = [Oceananigans.Models.BulkDragBoundaryConditions]
Private = false
```

## MultiRegion

```@autodocs
Modules = [Oceananigans.MultiRegion]
Private = false
```

## Operators

```@autodocs
Modules = [Oceananigans.Operators]
Private = false
```

## Output readers

```@autodocs
Modules = [Oceananigans.OutputReaders]
Private = false
```

## Output writers

```@autodocs
Modules = [Oceananigans.OutputWriters]
Private = false
```

## Extensions

### OceananigansNCDatasetsExt

```@autodocs
Modules = [OceananigansNCDatasetsExt.OceananigansNCDatasetsExt]
Private = false
```

## Simulations

```@autodocs
Modules = [Oceananigans.Simulations]
Private = false
```

## Solvers

```@autodocs
Modules = [Oceananigans.Solvers]
Private = false
```

## Stokes drift

```@autodocs
Modules = [Oceananigans.StokesDrifts]
Private = false
```

## Time steppers

```@autodocs
Modules = [Oceananigans.TimeSteppers]
Private = false
```

## Turbulence closures

```@autodocs
Modules = [Oceananigans.TurbulenceClosures]
Private = false
```

### TKEBasedVerticalDiffusivities

```@autodocs
Modules = [Oceananigans.TurbulenceClosures.TKEBasedVerticalDiffusivities]
Private = false
```

## Utilities

```@autodocs
Modules = [Oceananigans.Utils]
Private = false
```

## Units

```@autodocs
Modules = [Oceananigans.Units]
Private = false
```
