Cimrman Python Fem 04-03-2007

download Cimrman Python Fem 04-03-2007

of 47

Transcript of Cimrman Python Fem 04-03-2007

  • 8/13/2019 Cimrman Python Fem 04-03-2007

    1/47

    1/22

    Introduction Our choice Example Problem Final slide :-)

    Python + FEMIntroduction to SFE

    Robert Cimrman

    Department of Mechanics & New Technologies Research CentreUniversity of West Bohemia

    Plzen, Czech Republic

    April 3, 2007, Plzen

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    2/47

    2/22

    Introduction Our choice Example Problem Final slide :-)

    Outline

    1 IntroductionProgramming LanguagesProgramming Techniques

    2 Our choice

    Mixing Languages Best of Both WorldsPythonSoftware Dependencies

    3 Example ProblemContinuous FormulationWeak FormulationProblem Description File

    4 Final slide :-)

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    3/47

    3/22

    Introduction Our choice Example Problem Final slide :-)

    Programming Languages

    1 compiled (fortran, C, C++, Java, . . . )

    Prosspeed, speed, speed, . . . , did Isayspeed?

    large code base (legacy codes),tradition

    Cons(often) complicated build process,recompile after any change

    low-level lots of lines to getbasic stuff done

    code size maintenance problems

    static!2 interpreted or scripting (sh, tcl, matlab, perl, ruby, python, . . . )

    Pros

    no compiling(very) high-level a few of linesto get (complex) stuff done

    code size easy maintenance

    dynamic!

    (often) large code base

    Cons

    many are relatively newlack of speed, or even utterly slow!

    O )

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    4/473/22

    Introduction Our choice Example Problem Final slide :-)

    Programming Languages

    1 compiled (fortran, C, C++, Java, . . . )

    Prosspeed, speed, speed, . . . , did Isayspeed?

    large code base (legacy codes),tradition

    Cons(often) complicated build process,recompile after any change

    low-level lots of lines to getbasic stuff done

    code size maintenance problems

    static!2 interpreted or scripting (sh, tcl, matlab, perl, ruby, python, . . . )

    Pros

    no compiling(very) high-level a few of linesto get (complex) stuff done

    code size easy maintenance

    dynamic!

    (often) large code base

    Cons

    many are relatively newlack of speed, or even utterlyslow!

    I t d ti O h i E l P bl Fi l lid )

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    5/473/22

    Introduction Our choice Example Problem Final slide :-)

    Programming Languages

    1 compiled (fortran, C, C++, Java, . . . )

    Prosspeed, speed, speed, . . . , did Isayspeed?

    large code base (legacy codes),tradition

    Cons(often) complicated build process,recompile after any change

    low-level lots of lines to getbasic stuff done

    code size maintenance problems

    static!2 interpreted or scripting (sh, tcl, matlab, perl, ruby, python, . . . )

    Pros

    no compiling(very) high-level a few of linesto get (complex) stuff done

    code size easy maintenance

    dynamic!

    (often) large code base

    Cons

    many are relatively newlack of speed, or even utterlyslow!

    Introduction Our choice Example Problem Final slide : )

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    6/473/22

    Introduction Our choice Example Problem Final slide :-)

    Programming Languages

    1 compiled (fortran, C, C++, Java, . . . )

    Prosspeed, speed, speed, . . . , did Isayspeed?

    large code base (legacy codes),tradition

    Cons(often) complicated build process,recompile after any change

    low-level lots of lines to getbasic stuff done

    code size maintenance problems

    static!2 interpreted or scripting (sh, tcl, matlab, perl, ruby, python, . . . )

    Pros

    no compiling(very) high-level a few of linesto get (complex) stuff done

    code size easy maintenance

    dynamic!

    (often) large code base

    Cons

    many are relatively newlack of speed, or even utterlyslow!

    Introduction Our choice Example Problem Final slide : )

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    7/473/22

    Introduction Our choice Example Problem Final slide :-)

    Programming Languages

    1 compiled (fortran, C, C++, Java, . . . )

    Prosspeed, speed, speed, . . . , did Isayspeed?

    large code base (legacy codes),tradition

    Cons(often) complicated build process,recompile after any change

    low-level lots of lines to getbasic stuff done

    code size maintenance problemsstatic!

    2 interpreted or scripting (sh, tcl, matlab, perl, ruby, python, . . . )

    Pros

    no compiling(very) high-level a few of linesto get (complex) stuff done

    code size easy maintenance

    dynamic!

    (often) large code base

    Cons

    many are relatively newlack of speed, or even utterlyslow!

    Introduction Our choice Example Problem Final slide :-)

    http://find/http://goback/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    8/473/22

    Introduction Our choice Example Problem Final slide : )

    Programming Languages

    1 compiled (fortran, C, C++, Java, . . . )

    Prosspeed, speed, speed, . . . , did Isayspeed?

    large code base (legacy codes),tradition

    Cons(often) complicated build process,recompile after any change

    low-level lots of lines to getbasic stuff done

    code size maintenance problemsstatic!

    2 interpreted or scripting (sh, tcl, matlab, perl, ruby, python, . . . )

    Pros

    no compiling(very) high-level a few of linesto get (complex) stuff done

    code size easy maintenance

    dynamic!

    (often) large code base

    Cons

    many are relatively newlack of speed, or even utterlyslow!

    Introduction Our choice Example Problem Final slide :-)

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    9/474/22

    Introduction Our choice Example Problem Final slide : )

    Example Python Code

    Introduction Our choice Example Problem Final slide :-)

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    10/47

    5/22

    p )

    Example C Code

    c h a r s [ ] = s e l tudy , mel dudy . a s e l o pr av du t ud y . ;

    i n t s t r f i n d (c h a r s t r , c h a r t g t ){

    i n t t l e n = s t r l e n ( t g t ) ;i n t max = s t r l e n ( s t r ) t l e n ;r e g i s t e r i n t i ;

    f o r ( i = 0 ; i < max ; i ++) {i f ( s tr nc mp (& s t r [ i ] , t g t , t l e n ) = = 0 )

    r e t u r n i ;}r e t u r n 1;

    }

    i n t i 1 ;

    i 1 = s t r f i n d ( s , tu d y ) ;

    p r i n t f ( %d\n , i 1 ) ;

    Introduction Our choice Example Problem Final slide :-)

    http://find/http://goback/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    11/47

    6/22

    )

    Programming Techniques

    Random remarks:

    spaghetti code

    modular programming

    OOP

    design patterns(gang-of-four, GO4)

    post-OOP dynamic languages

    . . . all used, but I try to move down the list! :-)

    Introduction Our choice Example Problem Final slide :-)

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    12/47

    6/22

    Programming Techniques

    Random remarks:

    spaghetti code

    modular programming

    OOP

    design patterns(gang-of-four, GO4)

    post-OOP dynamic languages

    . . . all used, but I try to move down the list! :-)

    Introduction Our choice Example Problem Final slide :-)

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    13/47

    7/22

    Mixing Languages Best of Both Worlds

    Low level: C

    FE matrix evaluations

    costly mesh-related functions (listing faces, edges, surfacegeneration, ...)

    . . .

    can use alsofortran

    +

    High level: Python

    www.python.orgbatteries included

    logic of the code

    configurationfiles!

    probleminputfiles!

    Introduction Our choice Example Problem Final slide :-)

    http://www.python.org/http://www.python.org/http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    14/47

    7/22

    Mixing Languages Best of Both Worlds

    Low level: C

    FE matrix evaluations

    costly mesh-related functions (listing faces, edges, surfacegeneration, ...)

    . . .

    can use alsofortran

    +

    High level: Python

    www.python.orgbatteries included

    logic of the code

    configurationfiles!

    probleminputfiles!

    Introduction Our choice Example Problem Final slide :-)

    http://www.python.org/http://www.python.org/http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    15/47

    8/22

    Python I

    Python ris a dynamic object-oriented programming

    language that can be used for many kinds of softwaredevelopment. It offers strong support for integration with otherlanguages and tools, comes with extensive standard libraries,and can be learned in a few days. Many Python programmersreport substantial productivity gains and feel the language

    encourages the development of higher quality, moremaintainable code.

    . . .

    batteries included

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    16/47

    Introduction Our choice Example Problem Final slide :-)

  • 8/13/2019 Cimrman Python Fem 04-03-2007

    17/47

    10/22

    Python III

    NASA uses Python. . .

    . . . so does Rackspace, Industrial Light and Magic, AstraZeneca,Honeywell, and many others.

    http://wiki.python.org/moin/NumericAndScientific

    http://wiki.python.org/moin/NumericAndScientifichttp://wiki.python.org/moin/NumericAndScientifichttp://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    18/47

    Introduction Our choice Example Problem Final slide :-)

  • 8/13/2019 Cimrman Python Fem 04-03-2007

    19/47

    11/22

    Software Dependencies

    1 libraries & modules

    SciPy: free (BSD license) collection of numerical computinglibraries for Pythonenables Matlab-like array/matrix manipulations and indexing

    UMFPACK: very fast direct solver for sparse systemsPython wrappers are part of SciPy :-)

    output files (results) and data files in HDF5:general purpose library and file format for storing scientificdata, efficient storage and I/O.. .v iaPyTables

    misc: Pyparsing,Matplotlib2 tools

    SWIG: automatic generation of Python-C interface code Medit: simple mesh and data viewer ParaView: VTK-based advanced mesh and data viewer in

    Tcl/Tk MayaVi/MayaVi2: VTK-based advanced mesh and data viewer

    in Python

    Introduction Our choice Example Problem Final slide :-)

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    20/47

    11/22

    Software Dependencies

    1 libraries & modules

    SciPy: free (BSD license) collection of numerical computinglibraries for Pythonenables Matlab-like array/matrix manipulations and indexing

    UMFPACK: very fast direct solver for sparse systemsPython wrappers are part of SciPy :-)

    output files (results) and data files in HDF5:general purpose library and file format for storing scientificdata, efficient storage and I/O.. .v iaPyTables

    misc: Pyparsing,Matplotlib2 tools

    SWIG: automatic generation of Python-C interface code Medit: simple mesh and data viewer ParaView: VTK-based advanced mesh and data viewer in

    Tcl/Tk MayaVi/MayaVi2: VTK-based advanced mesh and data viewer

    in Python

    Introduction Our choice Example Problem Final slide :-)

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    21/47

    11/22

    Software Dependencies

    1 libraries & modules

    SciPy: free (BSD license) collection of numerical computinglibraries for Pythonenables Matlab-like array/matrix manipulations and indexing

    UMFPACK: very fast direct solver for sparse systemsPython wrappers are part of SciPy :-)

    output files (results) and data files in HDF5:general purpose library and file format for storing scientificdata, efficient storage and I/O.. .v iaPyTables

    misc: Pyparsing,Matplotlib2 tools

    SWIG: automatic generation of Python-C interface code Medit: simple mesh and data viewer ParaView: VTK-based advanced mesh and data viewer in

    Tcl/Tk MayaVi/MayaVi2: VTK-based advanced mesh and data viewer

    in Python

    http://find/http://goback/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    22/47

  • 8/13/2019 Cimrman Python Fem 04-03-2007

    23/47

    Introduction Our choice Example Problem Final slide :-)

  • 8/13/2019 Cimrman Python Fem 04-03-2007

    24/47

    11/22

    Software Dependencies

    1 libraries & modules

    SciPy: free (BSD license) collection of numerical computinglibraries for Pythonenables Matlab-like array/matrix manipulations and indexing

    UMFPACK: very fast direct solver for sparse systemsPython wrappers are part of SciPy :-)

    output files (results) and data files in HDF5:general purpose library and file format for storing scientificdata, efficient storage and I/O.. .v iaPyTables

    misc: Pyparsing,Matplotlib2 tools

    SWIG: automatic generation of Python-C interface code Medit: simple mesh and data viewer ParaView: VTK-based advanced mesh and data viewer in

    Tcl/Tk MayaVi/MayaVi2: VTK-based advanced mesh and data viewer

    in Python

    Introduction Our choice Example Problem Final slide :-)

    http://goforward/http://find/http://goback/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    25/47

    11/22

    Software Dependencies

    1 libraries & modules

    SciPy: free (BSD license) collection of numerical computinglibraries for Pythonenables Matlab-like array/matrix manipulations and indexing

    UMFPACK: very fast direct solver for sparse systemsPython wrappers are part of SciPy :-)

    output files (results) and data files in HDF5:general purpose library and file format for storing scientificdata, efficient storage and I/O.. .v iaPyTables

    misc: Pyparsing,Matplotlib2 tools

    SWIG: automatic generation of Python-C interface code Medit: simple mesh and data viewer ParaView: VTK-based advanced mesh and data viewer in

    Tcl/Tk MayaVi/MayaVi2: VTK-based advanced mesh and data viewer

    in Python

    Introduction Our choice Example Problem Final slide :-)

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    26/47

    12/22

    Shape Optimization in Incompressible Flow Problems

    Objective Function

    (u)

    2

    c|u|2 min (1)

    minimize gradients of solution (e.g. losses) in c

    by movingdesign boundary

    perturbation of by vector field V(t) = + {tV(x)}x where V= 0 in c \ (2)

    in outD

    D

    C C

    D

    Introduction Our choice Example Problem Final slide :-)

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    27/47

    12/22

    Shape Optimization in Incompressible Flow Problems

    Objective Function

    (u)

    2

    c|u|2 min (1)

    minimize gradients of solution (e.g. losses) in c

    by movingdesign boundary

    perturbation of by vector field V(t) = + {tV(x)}x where V= 0 in c \ (2)

    in outD

    D

    C C

    D

    Introduction Our choice Example Problem Final slide :-)

    S O

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    28/47

    12/22

    Shape Optimization in Incompressible Flow Problems

    Objective Function

    (u)

    2

    c|u|2 min (1)

    minimize gradients of solution (e.g. losses) in c

    by movingdesign boundary

    perturbation of by vector fieldV

    (t) = + {tV(x)}x where V= 0 in c \ (2)

    in outD

    D

    C C

    D

    Introduction Our choice Example Problem Final slide :-)

    A i

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    29/47

    13/22

    Appetizer

    flow and spline boxes, left: initial, right: final

    connectivity of spline boxes (6 boxes in different colours)

    Introduction Our choice Example Problem Final slide :-)

    C i F l i

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    30/47

    14/22

    Continuous Formulation

    laminar steady state incompressibleNavier-Stokes equations

    2u+u u+ p = 0 in (3)

    u = 0 in (4)

    boundary conditions

    u=u0 on in

    pn+u

    n =pn on out

    u= 0 on walls

    (5)

    adjoint equationsfor computing the adjoint solution w:

    2w+ u w u w r=c 2u in

    w= 0 in (6)

    w= 0 on in

    walls

    and c

    is the characteristic function of c

    Introduction Our choice Example Problem Final slide :-)

    C ti F l ti

    http://find/http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    31/47

    14/22

    Continuous Formulation

    laminar steady state incompressibleNavier-Stokes equations

    2u+u u+ p = 0 in (3)

    u = 0 in (4)

    boundary conditions

    u=u0 on in

    pn+u

    n =pn on out

    u= 0 on walls

    (5)

    adjoint equationsfor computing the adjoint solution w:

    2w+ u w u w r=c 2u in

    w= 0 in (6)

    w= 0 on in

    walls

    and c

    is the characteristic function of c

    Introduction Our choice Example Problem Final slide :-)

    W k F l ti

    http://find/http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    32/47

    15/22

    Weak Formulation

    state problem: find u, p (from suitable function spaces) such that

    v :u+

    (u u) v

    p v=

    out

    pv n vV0 ,

    q u= 0 qQ

    (7)

    adjoint equations: find w, r (from suitable function spaces) such that

    v :w+

    (v u) w+

    (u v) w+

    r v

    =

    c

    v :u vV0 ,

    q w= 0 qQ

    (8)

    + proper BC ...

    Introduction Our choice Example Problem Final slide :-)

    W k F l ti

    http://goforward/http://find/http://goback/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    33/47

    15/22

    Weak Formulation

    state problem: find u, p (from suitable function spaces) such that

    v :u+

    (u u) v

    p v=

    out

    pv n vV0 ,

    q u= 0 qQ

    (7)

    adjoint equations: find w, r (from suitable function spaces) such that

    v :w+

    (v u) w+

    (u v) w+

    r v

    =

    c

    v :u vV0 ,

    q w= 0 qQ

    (8)

    + proper BC ...

    Introduction Our choice Example Problem Final slide :-)

    Weak Formulation

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    34/47

    15/22

    Weak Formulation

    state problem: find u, p (from suitable function spaces) such that

    v :u+

    (u u) v

    p v=

    out

    pv n vV0 ,

    q u= 0 qQ

    (7)

    adjoint equations: find w, r (from suitable function spaces) such that

    v :w+

    (v u) w+

    (u v) w+

    r v

    =

    c

    v :u vV0 ,

    q w= 0 qQ

    (8)

    + proper BC ...

    Introduction Our choice Example Problem Final slide :-)

    Problem Description File I

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    35/47

    16/22

    Problem Description File I

    a regular python file all python machinery is accessible!

    requires/recognizes severalkeywordsto definemeshregions subdomains, boundaries, characteristic functions, . . .boundary conditions Dirichletfields field approximation per subdomainvariables unknown fields, test fields, parameters

    equationsmaterials constitutive relations, e.g. newton fluid, elastic solid, . . .solver parameters nonlinear solver, flow solver, optimizationsolver, .... . .

    Introduction Our choice Example Problem Final slide :-)

    Problem Description File I

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    36/47

    16/22

    Problem Description File I

    a regular python file all python machinery is accessible!

    requires/recognizes severalkeywordsto definemeshregions subdomains, boundaries, characteristic functions, . . .boundary conditions Dirichletfields field approximation per subdomainvariables unknown fields, test fields, parameters

    equationsmaterials constitutive relations, e.g. newton fluid, elastic solid, . . .solver parameters nonlinear solver, flow solver, optimizationsolver, .... . .

    Introduction Our choice Example Problem Final slide :-)

    Problem Description File II

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    37/47

    17/22

    Problem Description File IImesh

    f i l e N a m e m e s h = s i m p l e . mes h

    regionsr e gi o n 1 0 0 0 = {

    name : Omega , s e l e c t : e l em e nt s o f g ro up 6 ,

    }r e g i o n 0 = {

    name : W a l l s ,

    s e l e c t : n o d e s o f s u r f a c e n r . O u t l e t ,}r e g i o n 1 = {

    name : I n l e t , s e l e c t : n o de s by c i n c ( x , y , z , 0 ) ,

    }r e g i o n 2 = {

    name : O u t l e t ,

    s e l e c t : n o de s by c i n c ( x , y , z , 1 ) ,}r e g i o n 1 0 0 = {

    name : Omega C , # C o n t r o l d om ai n . s e l e c t : n o de s i n ( x > 25.9999e 3 ) & ( x < 18.990e3 ) ,

    }r e g i o n 1 0 1 = {

    name : Omega D , # D e s i g n d om a in .

    s e l e c t : a l l e r . Omega C ,}

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    38/47

    Introduction Our choice Example Problem Final slide :-)

    Problem Description File III

  • 8/13/2019 Cimrman Python Fem 04-03-2007

    39/47

    18/22

    Problem Description File III

    fieldsf i e l d 1 = {

    name : 3 v e l o c i t y , dim : ( 3 , 1 ) , f l a g s : ( BQP , ) , b a s e s : ( ( Omega , 3 4 P 1B ) , )

    }

    f i e l d 2 = { name : p r e s s u r e , dim : ( 1 , 1 ) , f l a g s : ( ) , b a s e s : ( ( Omega , 3 4 P 1 ) , )

    }

    variablesv a r i a b l e s = {

    u : ( f i e l d , p a ra m et e r , 3 v e l o c i t y , ( 3 , 4 , 5 ) ) , w 0 : ( f i e l d , p a ra me te r , 3 v e l o c i t y , ( 3 , 4 , 5 ) ) ,w : ( f i e l d , unknown , 3 v e l o c i t y , ( 3 , 4 , 5 ) , 0 ) , v : ( f i e l d , t e s t , 3 v e l o c i t y , ( 3 , 4 , 5 ) , w ) , p : ( f i e l d , p a ra me te r , p r e s s u r e , ( 9 , ) ) , r : ( f i e l d , unknown , p r e s s ur e , ( 9 , ) , 1 ) , q : ( f i e l d , t e s t , p r e s s u r e , ( 9 , ) , r ) , Nu : ( f i e l d , m e sh Ve lo ci t y , p r e s s ur e , ( 9 , ) ) ,

    }

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    40/47

    Introduction Our choice Example Problem Final slide :-)

    Problem Description File IV

  • 8/13/2019 Cimrman Python Fem 04-03-2007

    41/47

    19/22

    Problem Description File IV

    Dirichlet BC

    e b c = { W a ll s : ( ( W a ll s , ( 3 , 4 , 5 ) , 0 . 0 ) , ) , I n l e t : ( ( V e l o c i t y I n l e t x , ( 4 , ) , 1 . 0 ) ,

    ( V e l o c i t y I n l e t y z , ( 3 , 5 ) , 0 . 0 ) ) ,}

    state equations(compare with (7))

    e q u a t i o n s = { b a l a n ce :+ d w d i v g r a d . Omega ( f l u i d , v , w )

    + d w c o n v e c t . Omega ( v , w ) dw g r ad . Omega ( v , r )= d w s u r f a c e l t r . O u t le t ( b p re s s , v ) ,

    i n c o m p r e s s i b i l i t y : d w d i v . Omega ( q , w ) = 0 ,

    }

    Introduction Our choice Example Problem Final slide :-)

    Problem Description File V

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    42/47

    20/22

    Problem Description File V

    adjoint equations(compare with (8))

    e q u a t i o n s a d j o i n t = { b a l a n ce :+ d w d i v g r a d . Omega ( f l u i d , v , w )

    + d w a d j c o n v e c t 1 . Omega ( v , w , u )+ d w a d j c o n v e c t 2 . Omega ( v , w , u )+ d w g r a d . Omega ( v , r )= d w a d j d i v g r a d 2 . Omega C ( one , f l u i d , v , u ) ,

    i n c o m p r e s s i b i l i t y :

    d w d i v . Omega ( q , w ) = 0 ,}

    materialsm a t e r i a l 2 = {

    name : f l u i d , mode : h e r e , r e g i o n : Omega ,

    v i s c o s i t y : 1 . 2 5 e1,}m a t e r i a l 1 0 0 = {

    name : b p r e s s , mode : h e r e , r e g i o n : Omega , v a l : 0 . 0 ,

    }

    Introduction Our choice Example Problem Final slide :-)

    Problem Description File V

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    43/47

    20/22

    p

    adjoint equations(compare with (8))

    e q u a t i o n s a d j o i n t = { b a l a n ce :+ d w d i v g r a d . Omega ( f l u i d , v , w )

    + d w a d j c o n v e c t 1 . Omega ( v , w , u )+ d w a d j c o n v e c t 2 . Omega ( v , w , u )+ d w g r a d . Omega ( v , r )= d w a d j d i v g r a d 2 . Omega C ( one , f l u i d , v , u ) ,

    i n c o m p r e s s i b i l i t y :

    d w d i v . Omega ( q , w ) = 0 ,}

    materialsm a t e r i a l 2 = {

    name : f l u i d , mode : h e r e , r e g i o n : Omega ,

    v i s c o s i t y : 1 . 2 5 e1,}m a t e r i a l 1 0 0 = {

    name : b p r e s s , mode : h e r e , r e g i o n : Omega , v a l : 0 . 0 ,

    }

    Introduction Our choice Example Problem Final slide :-)

    Yes, the final slide!

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    44/47

    21/22

    ,

    What is done

    basic FE element engineapproximations up to P2 onsimplexes (possibly withbubble)Q1 tensor-product

    approximation on rectangleshandling of fields and variables

    boundary conditions, DOFhandling

    FE assembling

    equations, terms, regionsmaterials, material caches

    generic solvers (Newton iteration,direct linear system solution)

    What is not done

    general FE engine, with symbolicevaluation (a la SyFi - merge it?)

    documentation, unit tests

    organization of solvers

    fast problem-specific solvers

    parallelization of both assemblingand solving

    use PETSC?

    What will not be done (?)

    GUI

    real symbolic parsing/evaluation ofequations

    Introduction Our choice Example Problem Final slide :-)

    Yes, the final slide!

    http://goforward/http://find/http://goback/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    45/47

    21/22

    ,

    What is done

    basic FE element engineapproximations up to P2 onsimplexes (possibly withbubble)Q1 tensor-product

    approximation on rectangleshandling of fields and variables

    boundary conditions, DOFhandling

    FE assembling

    equations, terms, regionsmaterials, material caches

    generic solvers (Newton iteration,direct linear system solution)

    What is not done

    general FE engine, with symbolicevaluation (a la SyFi - merge it?)

    documentation, unit tests

    organization of solvers

    fast problem-specific solvers

    parallelization of both assemblingand solving

    use PETSC?

    What will not be done (?)

    GUI

    real symbolic parsing/evaluation ofequations

    Introduction Our choice Example Problem Final slide :-)

    Yes, the final slide!

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    46/47

    21/22

    What is done

    basic FE element engineapproximations up to P2 onsimplexes (possibly withbubble)Q1 tensor-product

    approximation on rectangleshandling of fields and variables

    boundary conditions, DOFhandling

    FE assembling

    equations, terms, regionsmaterials, material caches

    generic solvers (Newton iteration,direct linear system solution)

    What is not done

    general FE engine, with symbolicevaluation (a la SyFi - merge it?)

    documentation, unit tests

    organization of solvers

    fast problem-specific solvers

    parallelization of both assemblingand solving

    use PETSC?

    What will not be done (?)

    GUI

    real symbolic parsing/evaluation ofequations

    Introduction Our choice Example Problem Final slide :-)

    This is not a slide!

    http://find/
  • 8/13/2019 Cimrman Python Fem 04-03-2007

    47/47

    22/22

    http://find/