A Scipy-Fenics interface for incompressible Navier-Stokes
Project description
# dolfin_navier_scipy
[](https://zenodo.org/badge/latestdoi/15728657) [](https://badge.fury.io/py/dolfin-navier-scipy) [](https://dolfin-navier-scipy.readthedocs.io/en/latest/?badge=latest)
This python module dns provides an interface between the FEM toolbox [FEniCS](www.fenicsproject.org) and [SciPy](www.scipy.org) in view of simulation and control of incompressible flows. Basically, FEniCS is used to discretize the incompressible Navier-Stokes equations in space. Then dns makes the discretized operators available in SciPy for use in model reduction, simulation, or control and optimization.
dns also contains a solver for the steady state and time dependent problems.
## Quick Start
To get started, create the needed subdirectories and run one of the tests/time_dep_nse_.py files, e.g.
` pip install sadptprj_riclyap_adi cd tests mkdir data mkdir results # export PYTHONPATH="$PYTHONPATH:path/to/repo/" # add the repo to the path # pip install dolfin_navier_scipy # or install the module using pip python3 time_dep_nse_expnonl.py `
Then, to examine the results, launch ` paraview results/vel_TH__timestep.pvd `
## Test Cases and Examples
A selection:
tests/mini_setup.py: a minimal setup for a steady-state simulation
tests/steadystate_schaefer-turek_2D-1.py: the 2D steady-state cylinder wake benchmark by Schäfer/Turek
tests/steadystate_rotcyl.py: the 2D cylinder wake with a freely rotating cylinder as benchmarked in Richter et al.
tests/time_dep_nse_.py: time integration with Picard and Newton linearization
tests/time_dep_nse_expnonl.py: time integration with explicit treatment of the nonlinearity
tests/time_dep_nse_bcrob.py: time integration of the cylinder wake with boundary controls
tests/time_dep_nse_krylov.py: time integration with iterative solves of the state equations via [krypy](https://github.com/andrenarchy/krypy)
tests/time_dep_nse_double_rotcyl_bcrob.py: rotating double cylinder via Robin boundary conditions
## Dependencies
dolfin interface to [FEniCS](https://fenicsproject.org/) – tested with v2019.2.0, v2018.1.0, v2017.2
[sadptprj_riclyap_adi](https://github.com/highlando/sadptprj_riclyap_adi)
The latter is my home-brew module that includes the submodule lin_alg_utils with routines for solving the saddle point problem as it arises in the (v,p) formulation of the NSE.
Note: the branch lau-included already contains the module sadptprj_riclyap_adi
## Documentation
Documentation of the code goes [here](http://dolfin-navier-scipy.readthedocs.org/en/latest/index.html).
## Installation as Module
` pip install dolfin_navier_scipy `
## Changelog
### v1.1.3
catch the case that the datapoints do not extend to the full time range
enforce explicit specification of the FEM scheme in problem_setups.gen_bccont_fems
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for dolfin_navier_scipy-1.2.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d74080518dd82b282b0a94c139023438220f37017e3296226f4a09fd88231abd |
|
MD5 | 75f20bd3647af601cb8d5bda09f79660 |
|
BLAKE2b-256 | 845341e625e5f7e9592004bb3eb251767730a48e48aaf451e312b86f9603e25f |
Hashes for dolfin_navier_scipy-1.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b36b53f75bee2ad4ecffa59be3d8d383a1d38dbebb2d2c9ae11d5b9a649b7556 |
|
MD5 | f2e339f979da1b03e65ed95726ed6379 |
|
BLAKE2b-256 | b89961718b1b4e68f80f7c28d4bae434dbeeb561632364aab082393d3e413729 |