Skip to content

A versatile python solver used for solving generic nonlinear systems.

License

Notifications You must be signed in to change notification settings

zaidedan/Python-Solver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python-Solver

A versatile python solver used for solving generic nonlinear systems. Developed as part of a collaboration, this is the solver part of it.

This is meant for solving systems of equations that can be written in the form R(U) = F(U,U)+S(U) = 0, sums of fluxes and sources. It uses a control volume like approach with more abstraction, relying on dictionaries to connect control volumes, allowing for more versatility, such as control volumes having different state variables, fluxes being one directional, and so forth. The underlying solver is scipy.optimize.fsolve with the remaining code handling construction and assembly of the system.

There are four files:

  • [blocks.py] - contains definitions of block objects, our control volume like object
  • [flux.py] - contains definitions of fluxes and flux functions
  • [source.py] - contains definitions of sources and source functions
  • [problem.py] - contains solvers, manages system construction

Dependencies

The only optional dependency is numdifftools, used to obtain a numerical Jacobian of the system. If not already installed, it can be obtained with

pip install numdifftools

Documentation

Documentation is in doc/guide.tex. An example is in doc/examples.tex, with code in example.py.

Examples

Two other examples exist, using it to solve Poisson's equation and a diffusion equation in 2D, in poisson2D.py and diffusion2D.py, effectively using this as a PDE solver. In practice, it was developed for more arbitrary, smaller systems of equations.

Tests

Tests are run with python test.py, which runs both poisson2D.py and diffusion2D.py and checks the result.

About

A versatile python solver used for solving generic nonlinear systems.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages