46
Christophe Geuzaine, Professeur ordinaire, ULg - Sciences Appliquées Jeudi 24 novembre Logiciels libres pour le calcul scientifique : pourquoi et comment ?

Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

Embed Size (px)

Citation preview

Page 1: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

Christophe Geuzaine, Professeur ordinaire, ULg - Sciences Appliquées

Jeudi 24 novembre

Logiciels libres pour le calcul scientifique : pourquoi et comment ?

Page 2: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

LIEGE CREATIVE, en partenariat avec :

Page 3: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

FreeSoftwareforScientificComputing:WhyandHow?

ChristopheGeuzaineUniversityofLiège– MontefioreInstitute

LiègeCreative,November242016

Casestudies:Gmsh &ONELAB

http://gmsh.info |http://onelab.info

Page 4: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

2

SomeBackground

• IamafullprofessorattheUniversityofLiège,whereIleadateamofabout20peopleattheintersectionofappliedmathematics,scientificcomputingandengineeringphysics

• Ourresearchinterests:modeling,analysis,algorithmdevelopment,andsimulationforproblemsarisinginvariousareasofengineeringandscience

• Currently:electromagnetics,biomedicalproblems,geophysicalwaves

Page 5: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

3

SomeBackground

• Wewritealotofscientificcomputingsoftware,mostlysolversforpartialdifferentialequations

• Twocodesreleasedasfreesoftware:• Gmsh:meshgeneratorwithbuilt-inCADengineandpost-processor(http://gmsh.info)

• GetDP:generalfiniteelementsolverusingmixedfiniteelements(http://getdp.info)

• Thesearelongtermefforts… celebrating20yearsin2016-2017

• RecentlycombinedwithONELAB:alightweightinterfacetoFEsoftware (http://onelab.info)

Page 6: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

FreeSoftwareforScientificComputing:WhyandHow?

Page 7: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

5

WhatisFreeSoftware?

• “Freesoftware”meanssoftwarethatrespectsusers'freedomandcommunity

• Roughly,itmeansthattheusershavethefreedomtorun,copy,distribute,study,changeandimprovethesoftware

• Thus,“freesoftware”isamatterofliberty,notprice:thinkof“free”asin“freespeech,”notasin“freebeer”

Page 8: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

6

WhatisFreeSoftware?

Aprogramisfreesoftwareif,asauser,youhave1. thefreedomtoruntheprogramasyouwish,for

anypurpose2. thefreedomtostudyhowtheprogramworks,and

changeitsoitdoesyourcomputingasyouwish3. thefreedomtoredistributecopiessoyoucanhelp

yourneighbor4. thefreedomtodistributecopiesofyourmodified

versionstoothers.Accesstothesourcecode(“opensource”)isapreconditionfor2and4.

Page 9: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

7

WhatisScientificComputing?

Scientificcomputing(or“computationalscience”)=multidisciplinaryfieldthatusesadvancedcomputingcapabilitiestounderstandandsolvecomplexproblems• Appliedmathematics:gettingresultsoutof

applicationareas(science,engineering,humanities)• Numericalanalysis:resultsneedtobecorrectlyand

efficientlycomputable• Computing:thealgorithmsneedtobeimplemented

onmodernhardware

Page 10: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

8

WhatisScientificComputing?

• Increasingdemandforscientificcomputing• Industryandacademia• Smart+X

• Coupledwithanexplosionofavailablecomputationalpowerandstorage(massivelydistributed/parallel/cloud)

• Numerousunderlyingmathematical/numericalconcepts/methodsfor• Analytics• Modelling&simulation• Optimization&control

Page 11: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

9

WhyUse FreeSoftwareforScientificComputing?

• It’sfree!• Youcanuseiton10,000CPUsifyouwant

• It’sopen!• Youcanstudyallthedetails,modifywhatyouwant(ifyouhavetheskills),anduseitforever

• Qualityhasincreaseddramaticallyoverlast15years• thankstotheinternetandtotheavailabilityofhigh-quality,freeoperatingsystemsandtools(Linux,GCC,MPI,Python,Git,…)

• It’showscienceworks:• “standingontheshouldersofgiants”– reuse&extendexistingsoftwareforfasterandbetterresults

Page 12: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

10

WhyUse FreeSoftwareforScientificComputing?

• Asaresult,freeprofessionalqualitytoolsforscientificcomputingarenowavailable• Examplesforengineering:OpenFOAM,Salome,R,Octave,deal.II,Paraview,Gmsh,…

• Similarforscienceorhumanitiesproblems• Downsides?• Lackofdocumentation/support• Heterogeneityofthetools• Lackof“expert”layer/userinterface• Usuallytakesmoretimeandefforttogetfirstresults• Thisiswheregoodcommercialtoolsshine

Page 13: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

11

WhyDevelop FreeSoftwareforScientificComputing?

• Philosophicalreasons:• Openscience(opendata,opensource,openmethodology,openpeer-review,openaccess,openeducationalresources)forresponsibleandreproducibleresearch

• Publicresearchfunding:shouldgivebacktosociety• Practicalreasons:• Increasevisibility,numberofusers• Allowseasyco-operationwithfellowscientists/engineers

• Leadstobettercode

Page 14: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

12

How?

• Asadeveloper,youchoosealicenseforyourcode:• Basedoncopyright(sometimeswithpatentclauses)• Variouschoices,frommorepermissive(“BSD”-type)tomorerestrictive(“GNUGPL”-type:“copyleft”)

• Differencesbetweenlicensescanbequitesubtle• Andyouimplementadevelopmentprocess,usually

tofosterco-operation(todaye.g.http://github.com)• Sourcecoderepositorywithversiontracking• Continuousintegrationtools• Bugtracking• Forums,mailinglists,wikis,…

Page 15: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

13

IsitIncompatiblewithMakingMoney?

No

Butitdoesmakeitdifficulttomakealot ofmoney:• Sellservice/support;smallmargins,butstimulates

(high-quality)jobcreation• Addclosedlayersontop,withclearaddedvalue

(e.g.expertlayer)• Multiplelicensing(e.g.forintegrationintoclosed-

sourcesoftware)

Page 16: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

Casestudy:Gmsh

Page 17: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

15

Gmsh

Anopensourcefiniteelementmeshgenerator,withbuilt-inCADandpost-processingfacilities

Let’shavealook

Page 18: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

16

Gmsh

Interactivedemoshowingtheuserinterfaceandtheconstructionofmeshesusing.geoand.stepfiles

Page 19: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

17

Gmsh – ABitofHistory

• Startedin1996(“after-hours”,withJ.-F.Remacle)• Firstpublic(binary)releasein1998• OpensourcedunderGNUGPLin2003• Gmsh 2.0in2006• IJNMEpaperandswitchtoCMake in2009• Pythonwrappersin2011• Curvilinearmeshing:2012–• Quad-Hexmeshing:2012–• Homology:2013–• Parallelmeshing:2015–

Page 20: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

18

Gmsh – ABitofHistory

• Funding:• Projectstartedasahobby(to“scratchanitch”),nosupportandnofundinguntil2006

• EDFfundedOpenCASCADE integrationin2006• Morerecently:• EUandRWprojects• SeveralPhDtheses&post-docs• Industrialusers• Commercialsoftwarevendors

• Noneoftherecentdevelopmentssignificantlyaffectthekernel

Page 21: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

19

Gmsh – ABitofHistory

• Today,Gmsh represents• abouthalfamillionlinesofC++code• stillonly2coredevelopers(about100withrepositorywriteaccess)

• about1000peopleonmailinglists• about5000downloadsperweek(80%Windows)• about400citationsperyear– theGmsh paperiscitedabout2000times

• Gmsh oneofthemostpopularopensourcefiniteelementmeshgeneratorintheworld

2000 2005 2010 2015Year

0

100

200

300

400

500

600

700

References

"Gmsh" keyword on Google Scholar

Page 22: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

20

Gmsh – StrategicChoices

• Designgoals:fast,lightanduser-friendly• Writtenin(simple)C++• GUIs:FLTK(desktop),UIKit (iOS),Android,web(soon!)• OpenGLgraphics• Highlyportable(OSes&compilers)• Easytodistribute:zerodependenciesoninstallation

• Handlingofnumerous(>40)thirdpartylibraries• BuildsystembasedonCMake – everythingisoptional(e.g.-DENABLE_OCC=0)

• Somelibsintegratedandredistributeddirectlyingmsh/contrib (BAMG,Metis4,Taucs,Concorde,…)

Page 23: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

21

Gmsh – StrategicChoices

• Licensing• Gmsh isdistributedundertheGNUGeneralPublicLicenseV2orlater,withexceptionstoallowforeasierlinkingwithexternallibraries

• SpecificlicenseexemptionsgiventoGmsh bydevelopersofMetis,Concorde,BAMG,Tetgen/BR,…

• Somethirdpartylibrariesareunfortunatelynotcompatiblewiththeopensourceversion

• Wedouble-licenseforcommercial“embedders”

Page 24: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

22

Gmsh – StrategicChoices

• Communityinfrastructure• Ourown(notonGitHub)toallowpublic/privateparts,forbothcommercialclientsorforspecificthirdpartyinterfaces(e.g.Parasolid)

• ContinuousintegrationandautomatednightlybuildsonWindows,MacandLinux(usingCMake/CTest/CDash onvirtualmachines)

• Timelineofchanges,wikiandbugtracking(usingTrac)• Twomailinglistsandawebsite(http://gmsh.info)withcompleteuserdocumentationandusertutorial

• Scientificaspectsofalgorithmsdetailedinjournalpapers

Page 25: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

23

Gmsh – BasicConcepts

• Gmsh canbeusedat3levels• User:throughtheGUI(whichtranslatesmostactionsintoscriptingcommandsin“.geo”textfiles)

• Advanceduser:throughthededicated“.geo”language

• Developer:throughtheC++orPythonAPI• Maincharacteristic:allalgorithmsarewrittenin

termsofabstractCADentities,usinga“BoundaryREPresentation”(BREP)approach

Page 26: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

24

Gmsh – BasicConcepts

• Gmsh interfacesdirectlywithmultipleCADkernels(Gmsh “.geo”,OpenCASCADE,ACIS,…)

• Gmsh nevertranslatesfromonekerneltoanother:• Read/writedirectlytoeachCADkernelusingownAPI• AllalgorithmswritteninCAD-agnosticmanner• Allowsmulti-kernelgeometries

Page 27: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

25

Gmsh – BasicConcepts

Thegoalistodealwithverydifferentunderlyingdatarepresentationsinatransparentmanner

6

COMPUMAG–SYDNEY 2011, STATIC FIELDS AND QUASI-STATIC FIELDS (III), PA10.2, CMP–305 2

Fig. 1. Mesh used for the numerical experiments [20]: a) full head (300,000 nodes, 27 tissues), b) grey matter, c) white matter.

matter �G

(!) are modeled within a probabilistic framework,as functions of the random variable !. Therefore j

Avg

, jmax

,j99�perc

, eAvg

, emax

and e99�perc

are random as well. Inparticular, by using the maximum entropy principle [22] wemodel (arbitrarily) �

G

(!) and �W

(!) as independent randomvariables, uniformly distributed:

�G

(!) ⇠ U([0.0753 ; 0.5155]) (S/m) (1)�W

(!) ⇠ U([0.0533 ; 0.3020]) (S/m) (2)

C. The non intrusive approach

As the conductivities of the brain and the cerebellum aretwo independent random variables of finite variance, we canexpand them as a truncated series of order p

in

in the bi-dimensional Hermite polynomials of a random gaussian vector⇠(!) = (⇠1(!), ⇠2(!)), known as Hermite chaos polynomials[18]:

�G

(!) ⇡P

inX

i=0

�Gi

i

(⇠(!)) (3)

�W

(!) ⇡P

inX

i=0

�Wi

i

(⇠(!)) (4)

where �Gi

and �Wi

are scalar values that depend on theprobabilistic law of the conductivities, P

in

= Cp

in

2+p

in

is thenumber of bi-dimensional polynomials of order less than p

in

,and

i

is the ith bi-dimensional Hermite polynomial. Tosolve the stochastic problem, we use an approach based ona polynomial chaos decomposition of both the conductivityand the induced fields [18]. We assume the conductivities tobe of finite variance, with no assumption on the shape of theprobabilistic distribution.

The values of the induced fields—the average currentdensity in the brain j

Avg

(!) = jAvg

(⇠(!))—are computedby the finite element method from any couple of values(�

G

(⇠(!)),�W

(⇠(!))). The average density belongs to aspace that can be spanned by the polynomials (⇠(!)) andthus written as a truncated series to an order p

out

:

jAvg

(!) =P

outX

m=0

jAvg

m

m

(⇠(!)). (5)

To compute the value of the unknown real coefficients jAvg

m

,we use the orthogonality properties of the Hermite polynomi-als:

jAvg

m

=E[j

Avg

(!) m

(⇠(!))]

E[ m

(⇠(!))2], (6)

where E[·] is the mathematical expectation. The denominatorcan be computed analytically. The integral in the numeratoris computed by means of a Hermite Gauss integration schemewith d integration points [18]:

E[jAvg

(!) m

(⇠(!))] ⇡dX

i=1

...dX

j=1

wi,j

(jAvg

((t1, t2)i,j)) m

((t1, t2)i,j), (7)

with (t1, t2)i,j the i, j-th Gauss point and wi,j

the associatedweight in the bi-dimensional Cartesian rule. The deterministicproblem must thus be computed d2 times, with the conductiv-ity evaluated through (3) and (⇠1(!), ⇠2(!)) = (t1,= t2)i,j ,i, j = 1, . . . , d.

III. RESULTS AND DISCUSSION

The non intrusive method is governed by three parame-ters: p

in

, pout

and d; pin

is linked to the precision on the

Page 28: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

26

Gmsh – RecentDevelopments

• Reparametrization andquad-meshing:2012–• Curvilinearmeshing:2012–• Homologysolver:2013–• Hexmeshing:2014–• Parallelmeshing:2015–

Page 29: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

27

Gmsh – Reparametrization andQuad-MeshingApplied'&'Computa/onal'Electromagne/cs(ACE)

C.'Geuzaine';'SysMod'seminar';'Nov'18th'2011 59

Quad&meshing&of&FalconFalcon

Applied'&'Computa/onal'Electromagne/cs(ACE)

C.'Geuzaine';'SysMod'seminar';'Nov'18th'2011 58

Quad&meshing&of&FalconFalcon

Parametrizations of the surfaces of the Falcon aircraft in the {u,v}plane.

E.Marchandise,J.-F.Remacle andC.Geuzaine.Optimalparametrizationsforsurfaceremeshing.EngineeringwithComputers,December2012,pp.1-20J.-F.Remacle,J.Lambrechts,B.Seny,E.Marchandise,A.Johnen andC.Geuzaine.Blossom-Quad:anon-uniformquadrilateralmeshgeneratorusingaminimumcostperfectmatchingalgorithm.InternationalJournalforNumericalMethodsinEngineering89,pp.1102-1119,2012

Page 30: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

28

Gmsh – CurvilinearMeshing

A.Johnen,J.-F.Remacle andC.Geuzaine.Geometricvalidityofcurvilinearfiniteelements.JournalofComputationalPhysics233,pp.359-372,2013A.Johnen,J.-F.Remacle andC.Geuzaine.Geometricvalidityofhigh-Ordertriangularfiniteelements.EngineeringwithComputers30(3),pp.375-382,2014T.Toulorge,C.Geuzaine,J.-F.Remacle,J.Lambrechts.Robustuntanglingofcurvilinearmeshes.JournalofComputationalPhysics254,pp.8-26,2013

Curvilinear meshing

References

A. Johnen, J.-F. Remacle and C. Geuzaine.Geometric validity of curvilinear finite elements. Journal of Computational Physics, 233, pp.359-372, 2013.

T. Toulorge, C. Geuzaine, J.-F. Remacle, J. Lambrechts.

Robust untangling of curvilinear meshes. Journal of Computational Physics 254, pp. 8-26, 2013.

Page 31: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

29

Gmsh – (Co)homologySolver

M.Pellikka,S.Suuriniemi,L.Kettunen andC.Geuzaine.Homologyandcohomologycomputationinfiniteelementmodeling.SIAMJournalonScientificComputing35(5),pp.1195-1214,2013

14 M. Pellikka, S. Suuriniemi, L. Kettunen, and C. Geuzaine

Fig. 7.1: Induction heating geometry and surface mesh of Mc.

Fig. 7.2: A representation of the basis of the homology space H1(Ma).

Fig. 7.3: A representation of the basis of the cohomology space H1(Ma).

14 M. Pellikka, S. Suuriniemi, L. Kettunen, and C. Geuzaine

Fig. 7.1: Induction heating geometry and surface mesh of Mc.

Fig. 7.2: A representation of the basis of the homology space H1(Ma).

Fig. 7.3: A representation of the basis of the cohomology space H1(Ma).

14 M. Pellikka, S. Suuriniemi, L. Kettunen, and C. Geuzaine

Fig. 7.1: Induction heating geometry and surface mesh of Mc.

Fig. 7.2: A representation of the basis of the homology space H1(Ma).

Fig. 7.3: A representation of the basis of the cohomology space H1(Ma).

Page 32: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

30

Gmsh – Hex-DominantMeshing

T.C.Baudouin,J.-F.Remacle,E.Marchandise,F.Henrotte,C.Geuzaine.Afrontalapproachtohex-dominantmeshgeneration.AdvancedModelingandSimulationinEngineering2014.

Hex-dominant meshing

Name #Vertices%Hex %Prism % Pyr % Tet cpu(s)CUBO 133,436 89.74 4.02 4,20 2.02 247BLADES 133,678 83.65 5.62 6.75 3.98 268CV745 102,946 78.55 7.63 8.81 5.91 225

Baudouin, T. C., Remacle, J. F., Marchandise, E., Henrotte, F., Geuzaine, C. (2014). A frontal

approach to hex-dominant mesh generation. Advanced Modeling and Simulation in Engineering

Sciences, 1(1), 1.

Page 33: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

31

Gmsh – ParallelMeshing

J.-F.Remacle,V.Bertrand,C.Geuzaine.ATwo-LevelMultithreadedDelaunayKernel.24thInternationalMeshingRoundtable,ProcediaEngineeringVolume124,pp.6-17,2015

Multi-threaded meshing

104 105 106 107 108

2

4

6

8

10

12

14

16

18

20

Number of Points N

Spee

dup

M=2M=4M=8M=16M=32

Student Version of MATLAB

Less than 100 GB were necessary for 109 tetsIt took 142.8 sec. for generating a 109 mesh (M= 32,M

2

= 8)This corresponds to a rate of ' 7⇥106 tets/sec.

Page 34: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

32

Gmsh – WastheMovetoFreeSoftwareUseful?

• Yes!• (Alot)moreusers,leadingtomorerobustcode• Dramaticallyimprovedinternationalvisibility• Newcollaborations,inunexpectedareas(oilandgas,neuroscience,puremath,…)

• Allowedusto“changedivision”(i.e.,reachworldclass)

• Downsides?• Veryfewsignificant externalcodecontributions(topic/codeisjusttoocomplicated)

• Lostsomecommercialopportunities

Page 35: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

Casestudy:ONELAB

Page 36: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

34

ONELAB

Free,lightweightinterfacetofiniteelementsoftware

Let’shavealook

Page 37: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

35

ONELAB

Interactivedemo,openingaGetDP .profile,doingacalculation(e.g.benchmarks/superconductors),andshowingsomepost-processing

whilethesimulationisrunning.

Page 38: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

36

ONELAB– Context

Economic• Growingimportanceofscientificcomputingineducationandindustry

• Prohibitivecostofcommercialpackagesforasignificantsubsetofpotentialusers(SMEs,education,occasionaluse)

Scientific• Highqualityoffree/open-sourcesoftwaredevelopedinuniversitiesandresearchcenters

• Sometimesaheadofcommercialequivalents

Practical• Nouser-friendlyinterfaceand/orpoordocumentationformostopensourceFiniteElementAnalysis(FEA)codes

Page 39: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

37

ONELAB– Objective

DevelopaplatformforintegratingfreeFiniteElementAnalysis(FEA)software:• allowingtheintegration(byco-simultation)ofany

open-sourcecode,whatevertheircharacteristics• withanintuitiveGUIallowingnoviceuserstoget

startedandguidedintotheworldofFEmodeling—butwiththepossibilitytoconstructsophisticated,upgradable,multi-code,multi-platformscriptsforthespecializeduser

• andwiththepossibilitytoconstructbotheducation-andbusiness-specifictools

Page 40: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

38

ONELAB– Design

• Don’treimplement,interfacetheexisting!• Makeitassmall,lightweightandaseasytomaintain

aspossible(nosolver-dependentcodeintheinterface)

• Makeiteasytoprovidetemplates,withinteractiveparametermodification

• ONELABrole=datacentralization,modificationandredispatching

Issuesofcompletenessandconsistencyoftheparametersetarecompletelydealtwithonthesolverside

Page 41: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

39

ONELAB– Design

HeterogeneityfreeFEcodes?• Abstractinterfaceforparameterexchange(CAD,

mesh,physicalproperties,constraints,codedriver)

Missing“expert”layer,top-downvalidationanddocumentation?• Developmentanddocumentationoftemplates:• Model:blackbox,parameterizable viaabstractinterface

• Meta-model:setofmodels+selectionlogic

Page 42: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

40

ONELAB– Design

Client-server:• Clients:CADkernels,meshers,solvers,post-

processors• Server:Gmsh (currently)+database

Abstractinterface:• Theserverhasnoaprioriknowledgeoftheclients

(nometa-languageorexchangefileformat)• Theserverdoesnotwriteinputfilesfor(native)

clients:theclientcommunicateswiththeservertodefinewhatinformationshouldbeexchanged

Page 43: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

41

ONELAB– Implementation

Abstractinterfacetophysicalproperties,constraints&codedrivers:• ReferenceserverinC++,clientsinC++orPython• ExchangeofparametersthroughTCP/IP,Unixsocketsorin-memory

“Native”clientsuseC++orPythondirectly• Gmsh,GetDP,Octave,Fenics,BEM++,…

“Non-native”clientsusePython,byinstrumentingtheirinputfiles• Elmer,OpenFOAM,Code_Aster,Abaqus,Gnuplot,FreeFem,…

Page 44: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

42

ONELAB– GiveitaTry

• AvailableonLinux,Mac,Windows,iOS(iPhone/iPad)andAndroid

• Downloadfromhttp://onelab.info,or searchforONELABontheAppStore ortheGooglePlayStore

Page 45: Logiciels libres pour le calcul scientifique : pourquoi et comment ? | LIEGE CREATIVE, 24.11.16

43

Conclusion

• Freesoftwareforscientificcomputing• Growingneed/useinbothindustryandacademia• Complementarytoclosed/commercialtools

• Mypersonal(academic)experience:freesoftwareisthewaytogo• Philosophicallyandscientifically(openscience)• Pragmatically(bettercode,increasedvisibility)• MakingmycodesfreeclearlyledtomanyopportunitiesthatIwouldn’thavehadotherwise

• ...andcommercialendeavorsarestillpossible