60
edits
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
== Introduction == | == Introduction == | ||
Fem-Fenics | '''Fem-Fenics''' is a package for solving partial differential equations. Obviously, Fem-fenics is not the only extra package for Octave with this purpose. For example, [[Bim_package]] uses finite volumes to solve diffusion-advection-reaction equations, while secs1d/2d/3d [http://octave.sourceforge.net/secs1d/index.html] are suited for the resolution of the drift-diffusion system. Furthermore, to use profitably the software, you can integrate it with msh [http://octave.sourceforge.net/msh/index.html] for the generation of the mesh and with fpl [http://octave.sourceforge.net/fpl/index.html] for the post-processing of data. The objective of Fem-fenics is to be a '''generic library of finite elements''', thereby allowing the user to resolve any type of pde, choosing also the most appropriate Finite Element space for any specific problem. | ||
As the name suggests, the Fem-fenics pkg is a wrapper for FEniCS [http://fenicsproject.org/] functions and classes. Thus, ideally the Fem-fenics final goal would be to be able to reproduce all the features available in FEniCS, simplifying them where it is possible or using the Octave function whenever available (like the "\" for the resolution of a linear system or the odepkg [http://octave.sourceforge.net/odepkg/index.html] for the resolution of a time dependent problem). | As the name suggests, the Fem-fenics pkg is a wrapper for FEniCS [http://fenicsproject.org/] functions and classes. Thus, ideally the Fem-fenics final goal would be to be able to reproduce all the features available in FEniCS, '''simplifying''' them where it is possible or using the '''Octave function''' whenever available (like the "\" for the resolution of a linear system or the odepkg [http://octave.sourceforge.net/odepkg/index.html] for the resolution of a time dependent problem). | ||
== Tutorials == | == Tutorials == | ||
Line 10: | Line 10: | ||
A generic problem has to be solved in two steps: | A generic problem has to be solved in two steps: | ||
* a file where the '''abstract problem''' is described: this file has to be written in Unified Form Language (UFL), which is ''a domain specific language for defining discrete variational forms and functionals in a notation close to pen-and-paper formulation.'' UFL is easy to learn, and in any case the User manual provides explanations and examples. [http://fenicsproject.org/documentation/ufl/1.2.0/user/user_manual.html#ufl-user-manual] | * a file where the '''abstract problem''' is described: this file has to be written in Unified Form Language ('''UFL'''), which is ''a domain specific language for defining discrete variational forms and functionals in a notation close to pen-and-paper formulation.'' UFL is easy to learn, and in any case the User manual provides explanations and examples. [http://fenicsproject.org/documentation/ufl/1.2.0/user/user_manual.html#ufl-user-manual] | ||
* a script file where the abstract problem is imported and a '''specific problem''' is implemented and solved: this is the script file where the fem-fenics functions are | * a script file where the abstract problem is imported and a '''specific problem''' is implemented and solved: this is the script file where the fem-fenics functions are used. Their syntax is as close as possible to the python interface, so that Fenics users should be comfortable with it, but it is also quite intuitive for beginners. The examples below show the equivalence between the different programming languages. | ||
edits