-
Notifications
You must be signed in to change notification settings - Fork 2
Concepts
pwl edited this page Mar 31, 2012
·
11 revisions
- Users and modules have only access to icicles
- To improve access time modules can save location of their data objects.
- Wszystkie ewoluowane zmienne muszą zostać otagowane jako evolved.
- Użytkownik może w prawej stronie i w modułach może wywoływać procedury różniczkowania przestrzennego dla konkretnych zmiennych.
- Pochodne czasowe i pochodne przestrzenne są dodawane automatycznie przy starcie solvera do icicles.
- porównywalne z implementacją w C++ http://www.scipy.org/PerformancePython
- wątki działają z gfotranem (przynajmniej w ramach kreacja wątków na potrzeby jednej funkcji) http://www.scipy.org/Dynetrekk/f2py_OpenMP_draft
- quad precision thread: http://thread.gmane.org/gmane.comp.python.numeric.general/48671
- Example: http://fluxtrap.blogspot.com/2009/12/fortran-python-good.html
- Calling Python from f2py compiled Fortran: http://cens.ioc.ee/projects/f2py2e/usersguide/index.html#call-back-arguments
- Threads created inside Fortran code cannot be controlled inside Python code and vice versa.
- Performance issues when using callback from f2py
- Too simplified interface between Fortran and Python (when using f2py), one can pass only scalars and vectors as arguments
- f2py does not support pointers and user defined types, even those which are of type bind(c)
- Impossible to pass e.g. Python objects to Fortran (see the above two points)
- Still no __float128 support
- The two layers of Python and Fortran would have to be too intrinsic for f2py
Instead of using Python as a high level API, we can write simple script to generate fortran code from Python and to compile, link and run the result. What for?
- Boundary conditions can be resolved using ghost points. Ghost points are well suited for a wide class of boundary conditions of the form
$f(u,u',t)=0$