technologicat / pydgq Goto Github PK
View Code? Open in Web Editor NEWODE system solver using dG(q), time-discontinuous Galerkin with Lobatto basis.
License: BSD 2-Clause "Simplified" License
ODE system solver using dG(q), time-discontinuous Galerkin with Lobatto basis.
License: BSD 2-Clause "Simplified" License
Currently, pydgq
considers an iteration complete once all bits of the double-precision 64-bit float agree.
While this is useful for very sensitive equations (e.g. those in undamped vibration problems), for other real-world use a convergence tolerance setting would be useful.
1e-6
.0
to use the old behavior.When pydgq
is installed under Python 3.6, both data files pydgq_data_27.bin
(old, for Python 2.7) and pydgq_data_34.bin
(compatible with 3.4 and later, tested also in 3.6) get installed under their own names, but the symlink (that should point to the correct version) fails to install.
Solution: drop Python 2.7 support in the next release, so we need only one universal data file for Python 3.x.
Workaround: meanwhile, go to your site-packages/pydgq
in a terminal, and install the symlink manually. Assuming pydgq
was installed with pip3 install pydgq --user
under Python 3.6, the full path is ~/.local/lib/python3.6/site-packages/pydgq
. Once there, ln -s pydgq_data_34.bin pydgq_data.bin
. Or if using Windows, just copy the file.
The contact email in setup.py
is outdated. PyPI uses it to provide the link to email the maintainer. Update it for the next release.
Currently, pydgq
only supports Picard (fixed-point) iteration in all implicit solvers (including the Galerkin solvers). This is the simplest thing that works, but the convergence rate is linear (constant number of added correct bits per iteration).
Newton-Raphson would be a useful option to have for improving performance, because it converges quadratically (number of correct bits doubled per iteration).
Python 2.7 will be out of support January 1, 2020.
Dropping support for it allows a simple solution for #1.
A possibly incomplete list of things to remember:
setup.py
.runtests2.sh
.runtests3.sh
into a runtests.py
. Shell? Where we're going, we need no shell.
unittest
from the stdlib.pytest
would be even nicer, but introduces a dependency.A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.