12
Feel++ Webinar The State of Feel++ 09/27/2012

Feel++ webinar 9 27 2012

Embed Size (px)

DESCRIPTION

The state of Feel++

Citation preview

Page 1: Feel++ webinar 9 27 2012

Feel++ WebinarThe State of Feel++

09/27/2012

Page 2: Feel++ webinar 9 27 2012

News

● Cemracs'12○ 3 projects○ about 15 persons on Feel++ projects

● Eccomas○ 4 presentations

■ S. Bertoluzza - DD■ S. Veys - RB■ A. Samake - Feel++■ JM Gratien - Feel++ like language for FV

● Next○ FeelSIAM CSE Boston - 2/25/13-3/1/13 http://www.

siam.org/meetings/cse13/

Page 3: Feel++ webinar 9 27 2012

Latest Changes

● Programming Environment● Numerics● Language● Coupling with external code

Page 4: Feel++ webinar 9 27 2012

Programming Environment

● Welcome to gflags and glog○ gflags : google command line flags (not used

directly)○ glog: google logging system (use gflags)

■ use LOG(INFO) for general information about your application

■ use VLOG(<n>) for printing possibly verbose information, eventually for debug purpose

■ use LOG(WARNING) and LOG(ERROR) for warning/error resp.

■ use CHECK* function for assertions○ Log() has been replaced, Debug() is slowly being

replaced

Page 5: Feel++ webinar 9 27 2012

Programming Environment - cmake

● Use feelpp_add_application()○ very versatile macro to generate a Feel++

application○ support various options ○ easy to add new ones

Page 6: Feel++ webinar 9 27 2012

Programming Environment - C++

● Environment now builds and provides vm() and AboutData.○ vm() - static member function of Environment○ about() - static member function ○ boost parameter constructor for Environment

■ Environment( _argc=, _argv, ...) ○ Application and Simget retrieve vm() from

Environment○ classes (Backend, Exporter...) initialized using vm()

will soon get it directly fron Environment (simplification)

Page 7: Feel++ webinar 9 27 2012

Numerics - PETSc

● Fix nasty bug in preconditioner reuse(thx VC)

● Works from PETSc 3.1 to 3.3

Page 8: Feel++ webinar 9 27 2012

Numerics - Mesh

● Mesh data structure serialized -> //● Mesh adaptation using gmsh (next

webinar?)● Gmsh as a library● loadGMSHMesh, createGMSHMesh

○ Repartitioning○ Refinement by splitting○ substructuring - mark entities (vertices,edges,faces,

volumes)● createSubmesh

○ edge mesh extraction, 1D mesh in 3D

Page 9: Feel++ webinar 9 27 2012

Numerics - CRB

● CRB: Certified Reduced Basis method○ linear/nonlinear multiphysics○ Empirical interpolation method (still one tricky bit to

do)○ Parallel○ Applications to LNCMI problems

Page 10: Feel++ webinar 9 27 2012

Language

● New keywords○ normL2,normLinf,mean○ norm2, inner_product, outer_product,dot,ddot

● Mesh○ Extract mesh of edges from 3D (createSubmesh())○ added _substructuring to domain()

● Periodic conditions○ (Scalar/)Vectorial function space

(feelpp_doc_laplacian_periodic)○ product function space (feelpp_docstokes_periodic)○ Not parallel(yet, non trivial work needed)

● Product space allowing for different mesh types (e.g. mortar)

Page 11: Feel++ webinar 9 27 2012

State of // Computing

● Works seamlessly for most applications● what does not work (yet)

○ periodic conditions○ locally discontinuous interface○ levelset methods (reinitialization?)○ non conforming methods, e.,g. mortar, fbm... ?

matching non-conforming grids in //● in parallel default is KSP(gmres)+PC(GASM)

+SUBPC(LU/MUMPS)●

Page 12: Feel++ webinar 9 27 2012

Work In Progress

● Work in progress○ CRB: Real-time non-linear multiphysics

■ meta/lambda-expressions ● define expr=_1*id(v), then evaluate expr(idv(u))

■ ReducedSpace (application to crb/nirb)○ ConstrainedSpace (Mortar, Dirichlet,....)○ Substructuring preconditioners (PCShell,

MatrixShell), application to Mortar● Feel++ // Benchmarking

○ non linear elasticity wrt FreeFEM++