Files
2025-11-30 08:30:10 +08:00

95 lines
2.4 KiB
Markdown

# FluidSim Solvers
FluidSim provides multiple solvers for different fluid dynamics equations. All solvers work on periodic domains using pseudospectral methods with FFT.
## Available Solvers
### 2D Incompressible Navier-Stokes
**Solver key**: `ns2d`
**Import**:
```python
from fluidsim.solvers.ns2d.solver import Simul
# or dynamically
Simul = fluidsim.import_simul_class_from_key("ns2d")
```
**Use for**: 2D turbulence studies, vortex dynamics, fundamental fluid flow simulations
**Key features**: Energy and enstrophy cascades, vorticity dynamics
### 3D Incompressible Navier-Stokes
**Solver key**: `ns3d`
**Import**:
```python
from fluidsim.solvers.ns3d.solver import Simul
```
**Use for**: 3D turbulence, realistic fluid flow simulations, high-resolution DNS
**Key features**: Full 3D turbulence dynamics, parallel computing support
### Stratified Flows (2D/3D)
**Solver keys**: `ns2d.strat`, `ns3d.strat`
**Import**:
```python
from fluidsim.solvers.ns2d.strat.solver import Simul # 2D
from fluidsim.solvers.ns3d.strat.solver import Simul # 3D
```
**Use for**: Oceanic and atmospheric flows, density-driven flows
**Key features**: Boussinesq approximation, buoyancy effects, constant Brunt-Väisälä frequency
**Parameters**: Set stratification via `params.N` (Brunt-Väisälä frequency)
### Shallow Water Equations
**Solver key**: `sw1l` (one-layer)
**Import**:
```python
from fluidsim.solvers.sw1l.solver import Simul
```
**Use for**: Geophysical flows, tsunami modeling, rotating flows
**Key features**: Rotating frame support, geostrophic balance
**Parameters**: Set rotation via `params.f` (Coriolis parameter)
### Föppl-von Kármán Equations
**Solver key**: `fvk` (elastic plate equations)
**Import**:
```python
from fluidsim.solvers.fvk.solver import Simul
```
**Use for**: Elastic plate dynamics, fluid-structure interaction studies
## Solver Selection Guide
Choose a solver based on the physical problem:
1. **2D turbulence, quick testing**: Use `ns2d`
2. **3D flows, realistic simulations**: Use `ns3d`
3. **Density-stratified flows**: Use `ns2d.strat` or `ns3d.strat`
4. **Geophysical flows, rotating systems**: Use `sw1l`
5. **Elastic plates**: Use `fvk`
## Modified Versions
Many solvers have modified versions with additional physics:
- Forcing terms
- Different boundary conditions
- Additional scalar fields
Check `fluidsim.solvers` module for complete list.