(Multiscale) Modelling With SfePy

Similar documents
Solving Many-Body Schrödinger Equation Using Density Functional Theory and Finite Elements

NUMERICAL MODELING OF TRANSIENT ACOUSTIC FIELD USING FINITE ELEMENT METHOD

MODIFICATION IN ADINA SOFTWARE FOR ZAHORSKI MATERIAL

ECE521 W17 Tutorial 1. Renjie Liao & Min Bai

I. Numerical Computing

FEniCS Course. Lecture 1: Introduction to FEniCS. Contributors Anders Logg André Massing

AMDiS Usergroup-Meeting

Discretization of PDEs and Tools for the Parallel Solution of the Resulting Systems

Physics 584 Computational Methods

Fig. 1. Circular fiber and interphase between the fiber and the matrix.

FEniCS Course. Lecture 1: Introduction to FEniCS. Contributors Anders Logg André Massing

Scripting Languages Fast development, extensible programs

Department of Chemical Engineering University of California, Santa Barbara Spring Exercise 2. Due: Thursday, 4/19/09

Fluid-Structure Interaction Problems using SU2 and External Finite-Element Solvers

LibMesh Experience and Usage

The FEniCS Project. Anders Logg. Simula Research Laboratory / University of Oslo. Det Norske Veritas

Überblick von NX Nastran Multistep Nonlinear Solutions 401 und 402 Global Simcenter Portfolio Development Linz, 5.10.

Robust solution of Poisson-like problems with aggregation-based AMG

Finite Elements with Symbolic Computations and Code Generation

Introduction. Finite and Spectral Element Methods Using MATLAB. Second Edition. C. Pozrikidis. University of Massachusetts Amherst, USA

Satellite project, AST 1100

Python. Tutorial. Jan Pöschko. March 22, Graz University of Technology

IndiFrag v2.1: An Object-based Fragmentation Analysis Software Tool

Advancing Teaching and Research with Python

CE-570 Advanced Structural Mechanics - Arun Prakash

ORBIT Code Review and Future Directions. S. Cousineau, A. Shishlo, J. Holmes ECloud07

Alternative numerical method in continuum mechanics COMPUTATIONAL MULTISCALE. University of Liège Aerospace & Mechanical Engineering

Middle East Technical University Department of Mechanical Engineering ME 413 Introduction to Finite Element Analysis. Chapter 2 Introduction to FEM

FEniCS Course. Lecture 0: Introduction to FEM. Contributors Anders Logg, Kent-Andre Mardal

FREE BOUNDARY PROBLEMS IN FLUID MECHANICS

High Performance Python Libraries

FEM-Study ILD-AHCAL. Seismic simulation. K. Gadow, M. Lemke, F. Sefkow Santander,

pyoptfem Documentation

Dual Reciprocity Method for studying thermal flows related to Magma Oceans

Distributed Memory Parallelization in NGSolve

Integrating Open-Source Statistical Packages with ArcGIS

International Journal of Mathematical Archive-5(8), 2014, Available online through ISSN

Elements of Matlab and Simulink Lecture 7

GETTING STARTED WITH FENICS

Electrostatic microactuators for precise positioning and comparison of their parameters

Implementing a Partitioned Algorithm for Fluid-Structure Interaction of Flexible Flapping Wings within Overture

arxiv: v1 [cs.ms] 1 Oct 2018

Shape Optimization Tutorial

CFD in COMSOL Multiphysics

ENGN 2340 Final Project Report. Optimization of Mechanical Isotropy of Soft Network Material

The FEniCS Project Philosophy, current status and future plans

Divergence-conforming multigrid methods for incompressible flow problems

Lazy matrices for contraction-based algorithms

Overview of the PyLith Finite Element Code

Integrating ARCGIS with Datamining Software to Predict Habitat for Red Sea Urchins on the Coast of British Columbia.

Introduction to Partial Differential Equations

LEAST-SQUARES FINITE ELEMENT MODELS

Towards a formal description of models and workflows

Constitutive models. Constitutive model: determines P in terms of deformation

Using MATLAB and. Abaqus. Finite Element Analysis. Introduction to. Amar Khennane. Taylor & Francis Croup. Taylor & Francis Croup,

ENHANCEMENT OF COMPUTER SYSTEMS FOR CANDU REACTOR PHYSICS SIMULATIONS

CHAPTER 2 AN OVERVIEW OF TCAD SIMULATOR AND SIMULATION METHODOLOGY

An object-oriented design process. Weather system description. Layered architecture. Process stages. System context and models of use

LibMesh Experience and Usage

Introduction to Portal for ArcGIS

MontePython Exercises IFT School on Cosmology Tools

Solving PDEs with Multigrid Methods p.1

A multiscale framework for lubrication analysis of bearings with textured surface

Solving an elasto-plastic model using DOLFIN

FAS and Solver Performance

Morphing ensemble Kalman filter

ArcGIS Enterprise: What s New. Philip Heede Shannon Kalisky Melanie Summers Sam Williamson

High-resolution finite volume methods for hyperbolic PDEs on manifolds

FEniCS Course Lecture 13: Introduction to dolfin-adjoint. Contributors Simon Funke Patrick Farrell Marie E. Rognes

R: A Quick Reference

Homework 4 in 5C1212; Part A: Incompressible Navier- Stokes, Finite Volume Methods

Lecture 2. Introduction to FEM. What it is? What we are solving? Potential formulation Why? Boundary conditions

Theory versus Experiment: Analysis and Measurements of Allocation Costs in Sorting (With Hints for Applying Similar Techniques to Garbage Collection)

Using Python to Solve the Navier-Stokes Equations - Applications in the Preconditioned Iterative Methods

Computational Materials Modeling FHLN05 Computer lab

Solving PDEs: the Poisson problem TMA4280 Introduction to Supercomputing

3. Numerical integration

Chapter 2. Formulation of Finite Element Method by Variational Principle

Multipole-Based Preconditioners for Sparse Linear Systems.

Scikit-learn. scikit. Machine learning for the small and the many Gaël Varoquaux. machine learning in Python

1 Exercise: Linear, incompressible Stokes flow with FE

Numerical Continuation of Bifurcations - An Introduction, Part I

Which CHEMKIN is Right for You? Reaction Design

TECHNISCHE UNIVERSITÄT MÜNCHEN. Uncertainty Quantification in Fluid Flows via Polynomial Chaos Methodologies

Fast Numerical Methods for Stochastic Computations

in this web service Cambridge University Press

Using Simulink to analyze 2 degrees of freedom system

Solving PDEs with freefem++

Computation Fluid Dynamics Prof. Dr. Suman Chakraborty Department of Mechanical Engineering Indian Institute of Technology, Kharagpur

Image Processing in Numpy

Elmer GUI Tutorials. CSC IT Center for Science


Using AmgX to accelerate a PETSc-based immersed-boundary method code

Method in 1D. Introduction of the Basic Concepts and Comparison to Optimal FD Operators

Altered Jacobian Newton Iterative Method for Nonlinear Elliptic Problems

Dynamics Final Report

Introduction to Portal for ArcGIS. Hao LEE November 12, 2015

Analyzing the Earth Using Remote Sensing

GeoPDEs. An Octave/Matlab software for research on IGA. R. Vázquez. IMATI Enrico Magenes, Pavia Consiglio Nazionale della Ricerca

A FINITE ELEMENT STUDY OF ELASTIC-PLASTIC HEMISPHERICAL CONTACT BEHAVIOR AGAINST A RIGID FLAT UNDER VARYING MODULUS OF ELASTICITY AND SPHERE RADIUS

Transcription:

(Multiscale) Modelling With SfePy Random Remarks... Robert Cimrman & Eduard Rohan & others Department of Mechanics & New Technologies Research Centre University of West Bohemia Plzeň, Czech Republic PANM 14, June 4, 2008, Dolní Maxov 1/20

Outline 1 Introduction Programming Languages 2 Our choice Mixing Languages Best of Both Worlds Python Software Dependencies 3 Complete Example (Simple) Introduction Problem Description File Running SfePy 4 Example Problem Shape Optimization in Incompressible Flow Problems 5 Final slide :-) 2/20

Introduction SfePy = general finite element analysis software BSD open-source license available at http://sfepy.org (developers) mailing lists, issue (bug) tracking we encourage and support everyone who joins! http://sfepy.kme.zcu.cz (project information) selected applications: homogenization of porous media (parallel flows in a deformable porous medium) acoustic band gaps (homogenization of a strongly heterogenous elastic structure: phononic materials) shape optimization in incompressible flow problems 3/20

Introduction SfePy = general finite element analysis software BSD open-source license available at http://sfepy.org (developers) mailing lists, issue (bug) tracking we encourage and support everyone who joins! http://sfepy.kme.zcu.cz (project information) selected applications: homogenization of porous media (parallel flows in a deformable porous medium) acoustic band gaps (homogenization of a strongly heterogenous elastic structure: phononic materials) shape optimization in incompressible flow problems 3/20

Programming Languages Pros Pros compiled (fortran, C, C++, Java,... ) speed, speed, speed,..., did I say speed? large code base (legacy codes), tradition Cons (often) complicated build process, recompile after any change low-level lots of lines to get basic stuff done code size maintenance problems static! interpreted or scripting (sh, tcl, matlab, perl, ruby, python,... ) no compiling (very) high-level a few of lines to get (complex) stuff done code size easy maintenance dynamic! (often) large code base Cons many are relatively new lack of speed, or even utterly slow! 4/20

Programming Languages Pros Pros compiled (fortran, C, C++, Java,... ) speed, speed, speed,..., did I say speed? large code base (legacy codes), tradition Cons (often) complicated build process, recompile after any change low-level lots of lines to get basic stuff done code size maintenance problems static! interpreted or scripting (sh, tcl, matlab, perl, ruby, python,... ) no compiling (very) high-level a few of lines to get (complex) stuff done code size easy maintenance dynamic! (often) large code base Cons many are relatively new lack of speed, or even utterly slow! 4/20

Programming Languages Pros Pros compiled (fortran, C, C++, Java,... ) speed, speed, speed,..., did I say speed? large code base (legacy codes), tradition Cons (often) complicated build process, recompile after any change low-level lots of lines to get basic stuff done code size maintenance problems static! interpreted or scripting (sh, tcl, matlab, perl, ruby, python,... ) no compiling (very) high-level a few of lines to get (complex) stuff done code size easy maintenance dynamic! (often) large code base Cons many are relatively new lack of speed, or even utterly slow! 4/20

Programming Languages Pros Pros compiled (fortran, C, C++, Java,... ) speed, speed, speed,..., did I say speed? large code base (legacy codes), tradition Cons (often) complicated build process, recompile after any change low-level lots of lines to get basic stuff done code size maintenance problems static! interpreted or scripting (sh, tcl, matlab, perl, ruby, python,... ) no compiling (very) high-level a few of lines to get (complex) stuff done code size easy maintenance dynamic! (often) large code base Cons many are relatively new lack of speed, or even utterly slow! 4/20

Programming Languages Pros Pros compiled (fortran, C, C++, Java,... ) speed, speed, speed,..., did I say speed? large code base (legacy codes), tradition Cons (often) complicated build process, recompile after any change low-level lots of lines to get basic stuff done code size maintenance problems static! interpreted or scripting (sh, tcl, matlab, perl, ruby, python,... ) no compiling (very) high-level a few of lines to get (complex) stuff done code size easy maintenance dynamic! (often) large code base Cons many are relatively new lack of speed, or even utterly slow! 4/20

Programming Languages Pros Pros compiled (fortran, C, C++, Java,... ) speed, speed, speed,..., did I say speed? large code base (legacy codes), tradition Cons (often) complicated build process, recompile after any change low-level lots of lines to get basic stuff done code size maintenance problems static! interpreted or scripting (sh, tcl, matlab, perl, ruby, python,... ) no compiling (very) high-level a few of lines to get (complex) stuff done code size easy maintenance dynamic! (often) large code base Cons many are relatively new lack of speed, or even utterly slow! 4/20

Mixing Languages Best of Both Worlds low level code (C or fortran): element matrix evaluations, costly mesh-related functions,... high level code (Python): logic of the code, particular applications, configuration files, problem description files www.python.org SfePy = Python + C (+ fortran) notable features: small size (complete sources are just about 1.3 MB, June 2008) fast compilation problem description files in pure Python problem description form similar to mathematical description on paper 5/20

Mixing Languages Best of Both Worlds low level code (C or fortran): element matrix evaluations, costly mesh-related functions,... high level code (Python): logic of the code, particular applications, configuration files, problem description files www.python.org SfePy = Python + C (+ fortran) notable features: small size (complete sources are just about 1.3 MB, June 2008) fast compilation problem description files in pure Python problem description form similar to mathematical description on paper 5/20

Python Batteries Included Python R is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days. Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code.... batteries included 6/20

Python Origin of the Name 1.1.16 Why is it called Python? At the same time he began implementing Python, Guido van Rossum was also reading the published scripts from Monty Python s Flying Circus (a BBC comedy series from the seventies, in the unlikely case you didn t know). It occurred to him that he needed a name that was short, unique, and slightly mysterious, so he decided to call the language Python. 1.1.17 Do I have to like Monty Python s Flying Circus? No, but it helps. :)... General Python FAQ 7/20

Python References NASA uses Python...... so does Rackspace, Industrial Light and Magic, AstraZeneca, Honeywell, and many others. http://wiki.python.org/moin/numericandscientific 8/20

Software Dependencies to install and use SfePy, several other packages or libraries are needed: NumPy and SciPy: free (BSD license) collection of numerical computing libraries for Python enables Matlab-like array/matrix manipulations and indexing other: UMFPACK, Pyparsing, Matplotlib, Pytables (+ HDF5), swig visualization of results: ParaView, MayaVi2, or any other VTK-capable viewer missing: free (BSD license) 3D mesh generation and refinement tool... can use netgen, tetgen 9/20

Software Dependencies to install and use SfePy, several other packages or libraries are needed: NumPy and SciPy: free (BSD license) collection of numerical computing libraries for Python enables Matlab-like array/matrix manipulations and indexing other: UMFPACK, Pyparsing, Matplotlib, Pytables (+ HDF5), swig visualization of results: ParaView, MayaVi2, or any other VTK-capable viewer missing: free (BSD license) 3D mesh generation and refinement tool... can use netgen, tetgen 9/20

Introduction problem description file is a regular Python module, i.e. all Python syntax and power is accessible consists of entities defining: fields of various FE approximations, variables equations in the weak form, quadratures boundary conditions (Dirichlet, periodic, rigid body ) FE mesh file name, options, solvers,... simple example: the Laplace equation: c u = 0 in Ω, u = ū on Γ, weak form: c u v = 0, v V 0 Ω 10/20

Problem Description File Solving Laplace Equation FE Approximations mesh define FE approximation to Ω: filename mesh = simple.mesh fields define space V h : field 1 = { name : temperature, dim : (1,1), domain : Omega, bases : Omega : 3 4 P1 3 4 P1 means P1 approximation, in 3D, on 4-node FEs (tetrahedra) variables define u h, v h : variables = { u : ( unknown field, temperature, 0), v : ( test field, temperature, u ), 11/20

Problem Description File Solving Laplace Equation FE Approximations mesh define FE approximation to Ω: filename mesh = simple.mesh fields define space V h : field 1 = { name : temperature, dim : (1,1), domain : Omega, bases : Omega : 3 4 P1 3 4 P1 means P1 approximation, in 3D, on 4-node FEs (tetrahedra) variables define u h, v h : variables = { u : ( unknown field, temperature, 0), v : ( test field, temperature, u ), 11/20

Problem Description File Solving Laplace Equation FE Approximations mesh define FE approximation to Ω: filename mesh = simple.mesh fields define space V h : field 1 = { name : temperature, dim : (1,1), domain : Omega, bases : Omega : 3 4 P1 3 4 P1 means P1 approximation, in 3D, on 4-node FEs (tetrahedra) variables define u h, v h : variables = { u : ( unknown field, temperature, 0), v : ( test field, temperature, u ), 11/20

Problem Description File Solving Laplace Equation Boundary Conditions regions define domain Ω, regions Γ left, Γ right, Γ = Γ left Γ right : h omitted from now on... regions = { Omega : ( all, {), Gamma Left : ( nodes in (x < 0.0001), {), Gamma Right : ( nodes in (x > 0.0999), {), Dirichlet BC define ū on Γ left, Γ right : ebcs = { t left : ( Gamma Left, u.0 : 2.0), t right : ( Gamma Right, u.all : -2.0), 12/20

Problem Description File Solving Laplace Equation Boundary Conditions regions define domain Ω, regions Γ left, Γ right, Γ = Γ left Γ right : h omitted from now on... regions = { Omega : ( all, {), Gamma Left : ( nodes in (x < 0.0001), {), Gamma Right : ( nodes in (x > 0.0999), {), Dirichlet BC define ū on Γ left, Γ right : ebcs = { t left : ( Gamma Left, u.0 : 2.0), t right : ( Gamma Right, u.all : -2.0), 12/20

Problem Description File Solving Laplace Equation Equations materials define c: material 1 = { name : m, mode : here, region : Omega, c : 1.0, integrals define numerical quadrature: integral 1 = { name : i1, kind : v, quadrature : gauss o1 d3, equations define what and where should be solved: equations = { eq : dw laplace.i1.omega( m.c, v, u ) = 0 13/20

Problem Description File Solving Laplace Equation Equations materials define c: material 1 = { name : m, mode : here, region : Omega, c : 1.0, integrals define numerical quadrature: integral 1 = { name : i1, kind : v, quadrature : gauss o1 d3, equations define what and where should be solved: equations = { eq : dw laplace.i1.omega( m.c, v, u ) = 0 13/20

Problem Description File Solving Laplace Equation Equations materials define c: material 1 = { name : m, mode : here, region : Omega, c : 1.0, integrals define numerical quadrature: integral 1 = { name : i1, kind : v, quadrature : gauss o1 d3, equations define what and where should be solved: equations = { eq : dw laplace.i1.omega( m.c, v, u ) = 0 13/20

Running SfePy $. / simple. py input / poisson. py s f e : r e a d i n g mesh... s f e :... done i n 0. 0 2 s s f e : s e t t i n g up domain e d g e s... s f e :... done i n 0. 0 2 s s f e : s e t t i n g up domain f a c e s... s f e :... done i n 0. 0 2 s s f e : c r e a t i n g r e g i o n s... s f e : l e a f Gamma Right region 4 s f e : l e a f Omega region 1000 s f e : l e a f Gamma Left region 03 s f e :... done i n 0. 0 7 s s f e : e q u a t i o n Temperature : s f e : d w l a p l a c e. i 1. Omega( c o e f. v a l, s, t ) = 0 s f e : d e s c r i b i n g g e o m e t r i e s... s f e :... done i n 0. 0 1 s s f e : s e t t i n g up d o f c o n n e c t i v i t i e s... s f e :... done i n 0. 0 0 s s f e : using s o l v e r s : n l s : newton l s : l s s f e : m a t r i x shape : ( 3 00, 300) s f e : a s s e m b l i n g m a t r i x graph... s f e :... done i n 0. 0 1 s sfe : matrix structural nonzeros : 3538 ( 3. 93 e 02% f i l l ) s f e : u p d a t i n g m a t e r i a l s... s f e : coef s f e :... done i n 0. 0 0 s s f e : n l s : i t e r : 0, r e s i d u a l : 1.176265 e 01 ( r e l : 1.000000 e +00) s f e : r e z i d u a l : 0. 0 0 [ s ] s f e : s o l v e : 0. 0 1 [ s ] s f e : m a t r i x : 0. 0 0 [ s ] s f e : n l s : i t e r : 1, r e s i d u a l : 9.921082 e 17 ( r e l : 8.434391 e 16) top level of SfePy code is a collection of executable scripts tailored for various applications simple.py is dumb script of brute force, attempting to solve any equations it finds by the Newton method... exactly what we need here (solver options were omitted in previous slides) 14/20

Optimal Flow Problem Problem Setting Objective Function Ψ(u) ν 2 Ω c u 2 min minimize gradients of solution (e.g. losses) in Ω c Ω by moving design boundary Γ Ω perturbation of Γ by vector field V Ω(t) = Ω + {tv(x) x Ω where V = 0 in Ω c Ω \ Γ Γ D Ω Γ in Γ D Ω D Γ C ΩC Γout 15/20

Optimal Flow Problem Example Results flow and domain control boxes, left: initial, right: final Ω C between two grey planes work in progress... 16/20

Direct Problem... paper input file weak form of Navier-Stokes equations:? u V 0 (Ω), p L 2 (Ω) such that a Ω (u, v) + c Ω (u, u, v) b Ω (v, p) = g Γout (v) v V 0, b Ω (u, q) = 0 q L 2 (Ω). (1) in SfePy syntax: equations = { balance : """ dw div grad.i2.omega( fluid.viscosity, v, u ) + dw convect.i2.omega( v, u ) - dw grad.i1.omega( v, p ) = 0""", incompressibility : """ dw div.i1.omega( q, u ) = 0""", 17/20

Direct Problem... paper input file weak form of Navier-Stokes equations:? u V 0 (Ω), p L 2 (Ω) such that a Ω (u, v) + c Ω (u, u, v) b Ω (v, p) = g Γout (v) v V 0, b Ω (u, q) = 0 q L 2 (Ω). (1) in SfePy syntax: equations = { balance : """ dw div grad.i2.omega( fluid.viscosity, v, u ) + dw convect.i2.omega( v, u ) - dw grad.i1.omega( v, p ) = 0""", incompressibility : """ dw div.i1.omega( q, u ) = 0""", 17/20

Adjoint Problem... paper input file KKT conditions δ u,p L = 0 yield adjoint state problem for w, r: δ u L v = 0 = δ u Ψ(u, p) v + a Ω (v, w) + c Ω (v, u, w) + c Ω (u, v, w) + b Ω (v, r), δ p L q = 0 = δ p Ψ(u, p) q b Ω (w, q), v V 0, and q L 2 (Ω). in SfePy syntax: equations = { balance : """ dw div grad.i2.omega( fluid.viscosity, v, w ) + dw adj convect1.i2.omega( v, w, u ) + dw adj convect2.i2.omega( v, w, u ) + dw grad.i1.omega( v, r ) = - δ uψ(u, p) v """, incompressibility : """ dw div.i1.omega( q, w ) = 0""", 18/20

Adjoint Problem... paper input file KKT conditions δ u,p L = 0 yield adjoint state problem for w, r: δ u L v = 0 = δ u Ψ(u, p) v + a Ω (v, w) + c Ω (v, u, w) + c Ω (u, v, w) + b Ω (v, r), δ p L q = 0 = δ p Ψ(u, p) q b Ω (w, q), v V 0, and q L 2 (Ω). in SfePy syntax: equations = { balance : """ dw div grad.i2.omega( fluid.viscosity, v, w ) + dw adj convect1.i2.omega( v, w, u ) + dw adj convect2.i2.omega( v, w, u ) + dw grad.i1.omega( v, r ) = - δ uψ(u, p) v """, incompressibility : """ dw div.i1.omega( q, w ) = 0""", 18/20

Yes, the final slide! What is done basic FE element engine approximations up to P2 on simplexes (possibly with bubble) Q1 tensor-product approximation on rectangles fields, variables, boundary conditions FE assembling equations, terms, regions materials, material caches various solvers accessed via abstract interface unit tests, automatic documentation generation What is not done general FE engine, possibly with symbolic evaluation (SymPy) good documentation fast problem-specific solvers (!) adaptive mesh refinement (!) parallelization of both assembling and solving (PETSc?) What will not be done (?) GUI real symbolic parsing/evaluation of equations http://sfepy.org 19/20

Yes, the final slide! What is done basic FE element engine approximations up to P2 on simplexes (possibly with bubble) Q1 tensor-product approximation on rectangles fields, variables, boundary conditions FE assembling equations, terms, regions materials, material caches various solvers accessed via abstract interface unit tests, automatic documentation generation What is not done general FE engine, possibly with symbolic evaluation (SymPy) good documentation fast problem-specific solvers (!) adaptive mesh refinement (!) parallelization of both assembling and solving (PETSc?) What will not be done (?) GUI real symbolic parsing/evaluation of equations http://sfepy.org 19/20

Yes, the final slide! What is done basic FE element engine approximations up to P2 on simplexes (possibly with bubble) Q1 tensor-product approximation on rectangles fields, variables, boundary conditions FE assembling equations, terms, regions materials, material caches various solvers accessed via abstract interface unit tests, automatic documentation generation What is not done general FE engine, possibly with symbolic evaluation (SymPy) good documentation fast problem-specific solvers (!) adaptive mesh refinement (!) parallelization of both assembling and solving (PETSc?) What will not be done (?) GUI real symbolic parsing/evaluation of equations http://sfepy.org 19/20

Yes, the final slide! What is done basic FE element engine approximations up to P2 on simplexes (possibly with bubble) Q1 tensor-product approximation on rectangles fields, variables, boundary conditions FE assembling equations, terms, regions materials, material caches various solvers accessed via abstract interface unit tests, automatic documentation generation What is not done general FE engine, possibly with symbolic evaluation (SymPy) good documentation fast problem-specific solvers (!) adaptive mesh refinement (!) parallelization of both assembling and solving (PETSc?) What will not be done (?) GUI real symbolic parsing/evaluation of equations http://sfepy.org 19/20

This is not a slide! 20/20