Symplegma , a JVM Implementation for Numerical Methods In
Total Page:16
File Type:pdf, Size:1020Kb
The Symplegma project Symplegma, a JVM implementation for Symplegma numerical methods in computational mechanics. SDE Climax jfem jbem Christos G. Panagiotopoulos gendomain strdyn More Institute of Applied & Computational Mathematics FuturEye PDE Foundation of Research and Technology–Hellas SymJava Coupling Conclusions FOSSCOMM 2018, 13-14 October Free and Open Source Software Communities Meeting Computer Science Department University of Crete The Symplegma project The Symplegma project Symplegma SDE Climax jfem jbem Symplegma gendomain What is ? strdyn More FuturEye PDE SymJava Coupling Conclusions The Symplegma project Symplegma: a computational mechanics framework and beyond The Symplegma • Java code developed for personal research activity. project • Main orientation, education and research. Symplegma The spatiotemporal path of the project: SDE • 2008-2010, Aristotle University of Thessaloniki, Climax Thessaloniki, Greece jfem jbem • 2010-present, University of Seville, Seville, Spain gendomain strdyn • 2010-2011, Charles University of Prague, Prague, Czechia More FuturEye PDE • 2013, GEOMEC Engineering, Stavanger, Norway SymJava Coupling • 2014-present, Foundation of Research and Technology, Conclusions Heraklion, Crete • 2017-2018, Technical University of Crete, Chania, Crete • 2017-present, Technological Educational Institute of Crete, Rethymno, Crete The Symplegma project Symplegma: a computational mechanics framework and beyond The Symplegma project Symplegma SDE Climax jfem jbem gendomain strdyn More FuturEye PDE SymJava Coupling Conclusions The Symplegma project Symplegma on the net The Symplegma project Symplegma SDE Climax jfem jbem gendomain strdyn More FuturEye PDE SymJava Coupling Conclusions The Symplegma project Computational mechanics and numerical computing The Symplegma project From International Association for Computational Mechanics website Symplegma Computational Mechanics (CM) is the development and application SDE of numerical methods and digital computers to the solution of Climax problems posed by Engineering and Applied Science with the jfem objectives of understanding and harnessing the resources of nature. jbem gendomain strdyn More Interdisciplinary FuturEye PDE SymJava CM involves different fields of expertise. Its three pillars are Coupling mathematics, computer science, and mechanics. Computational fluid Conclusions dynamics, computational thermodynamics, computational electromagnetics, computational solid mechanics are some of the many specializations within CM. The Symplegma project Numerical methods The Symplegma project Mathematics Symplegma Ordinary and Partial differential equations, linear algebra and SDE numerical analysis. Climax jfem jbem Methods gendomain strdyn FEM, FDM, and BEM are the most popular numerical methods More FuturEye PDE used in order of dominance. In solid mechanics FEM are far SymJava Coupling more prevalent, whereas in fluid mechanics, thermodynamics, Conclusions and electromagnetism, FDM are almost equally applicable. The BEM is in general less popular, but has a niche in certain areas (e.g., acoustics, fracture). The Symplegma project Java? The Symplegma project General Java is a general purpose, computer programming language, gained Symplegma widespread popularity. Appealing features of Java include: clean and SDE simple syntax, high level of maintainability of Java code, portability, Climax jfem automatic memory management, multithreading and networking jbem gendomain capabilities, wealth of libraries and tools. strdyn More FuturEye PDE SymJava Science Coupling Early interest in Java from the scientific communities to determine the Conclusions level of performance offered by Java, and its suitability for developing scientific software. The Java Grande Forum (JGF) was an initiative to encourage interest in Java amongst the scientific and HPC communities. The Symplegma project Why and for what reason? The Symplegma project Java Java is considered as an alternative, and not subsitute, language for Symplegma numerical, scientific and engineering computations. FORTRAN, SDE C/C++ are the dominants with Python and Julia being suppementary. Climax Java should be considered both for the language and the Java Virtual jfem jbem Machine, while lot of significant languages running on the JVM have gendomain been arised (e.g. Groovy, Scala, Clojure, Jython, JRuby, etc.). strdyn More FuturEye PDE SymJava Symplegma & SDE Coupling Symplegma and the respective platform SDE are considered to Conclusions become an integrated computational mechanics platform with main orientation research and education. Substitution of commercial or open source code capable to handle huge problems of industry is not considered. The Symplegma project The Symplegma components The Symplegma project Symplegma Components used: SDE • Java, Groovy Climax jfem • Climax, SDE jbem gendomain • Apache Commons Math, JAMA, JBLAS strdyn More • JLaTeXMath FuturEye PDE SymJava • Coupling Futureye, SymJava Conclusions • ...among other ... The Symplegma project The Climax packages The Symplegma project Some packages developed as part of Climax : Symplegma • jbem: Boundary element method components SDE • jfem: Finite element method components Climax jfem • jbem gendomain: A general purposes domain gendomain strdyn • geom: Utilities for geometric entities More • FuturEye PDE sympmesher: A simple mesher SymJava Coupling • jdem (draft): Discrete element method Conclusions • structuraldynamics: Structural dynamics and vibrations Symplegma may turn out to be a pocketknife-like tool. The Symplegma project The Symplegma project Symplegma SDE Climax SDE: An integrated jfem jbem gendomain development environment for strdyn More FuturEye PDE Symplegma components SymJava Coupling Conclusions The Symplegma project Description of SDE environment The Symplegma project Symplegma SDE Climax jfem jbem gendomain strdyn More FuturEye PDE SymJava Coupling Conclusions The SDE environment consists of three segments (a) the text area (input) (b) the communication area (output) (c) the area of graphical visualization (output) key: simplicity The Symplegma project Plots - PlotFrame The Symplegma project Symplegma SDE Climax jfem jbem gendomain strdyn More FuturEye PDE SymJava Coupling Conclusions The Symplegma project Plots - PlotFrame The Symplegma project Symplegma SDE Climax jfem jbem gendomain strdyn More FuturEye PDE SymJava Coupling Conclusions The Symplegma project Plots - PlotFrame - jlatexmath The Symplegma project Symplegma SDE Climax jfem jbem gendomain strdyn More FuturEye PDE SymJava Coupling Conclusions The Symplegma project The Symplegma project Symplegma SDE Climax jfem The java source code, classes jbem gendomain strdyn and libraries More FuturEye PDE SymJava Coupling Conclusions The Symplegma project The code skeleton The Symplegma Pre-processing Processing project • Declare variables • Declare algorithms Symplegma • Define domains • Set analysis’ parameters SDE • Define nodes • Do the analysis Climax jfem • jbem Define element gendomain strdyn • Define other necessary More entities Post-processing FuturEye PDE SymJava Coupling • Manipulating results Conclusions • Visualize • Plotting The Symplegma project The Symplegma project Symplegma SDE Climax jfem jfem: The finite element jbem gendomain strdyn method implementation More FuturEye PDE SymJava Coupling Conclusions The Symplegma project Beam elastodynamics The Symplegma project Euler-Bernoulli ∂4v ∂2v Symplegma EI + ̺A = q(x,t) SDE ∂x4 ∂t2 Climax jfem jbem gendomain strdyn More Timoshenko FuturEye PDE SymJava Coupling ∂ψ ∂2v ∂2v Conclusions κGA − + ρA = q(x,t) ∂x ∂x2 ∂t2 ∂v ∂2ψ ∂2ψ κGA − ψ + EI − ̺I = 0. ∂x ∂x2 ∂t2 The Symplegma project Climax (Groovy) Code The Symplegma 1 import jfem . ∗ ; project 2 3 // define a fem domain 4 dom=theUniverse .FEMDomain() ; 5 Symplegma 6 L=0.1; NNodes=200; 7 SDE 8 // define material Climax 9 mat= new ElasticMaterial (1,193000000000 ,0.25,7850.0) 10 jfem 11 // define cross −sections jbem new gendomain 12 sect= CrossSection(1, 0.0046, 0.00096) strdyn 13 14 // define nodes More 15 (1..NNodes).each {dom. putNode ( new Node(it , it ∗L/NNodes))} FuturEye PDE 16 SymJava 17 // define elements Coupling 18 (1.. < NNodes) . each {dom. putElement(new EBeam2d(it , dom.getNode( it ) ,dom.getNode ( it+1),mat, sect))} Conclusions 19 20 // define analysis 21 theAnalysis = new EigenAnalysis (dom,3) 22 theAnalysis.analyse() 23 24 // plot eigen−modes 25 theGP.plotDeform( −4,1.0) The Symplegma project Beam elastodynamics, first bending eigenmode The Symplegma project Symplegma SDE Climax jfem jbem gendomain strdyn More FuturEye PDE SymJava Coupling Conclusions The Symplegma project Beam elastodynamics, second bending eigenmode The Symplegma project Symplegma SDE Climax jfem jbem gendomain strdyn More FuturEye PDE SymJava Coupling Conclusions The Symplegma project Beam elastodynamics, third bending eigenmode The Symplegma project Symplegma SDE Climax jfem jbem gendomain strdyn More FuturEye PDE SymJava Coupling Conclusions The Symplegma project Plane stress elasticity: plate with hole The Symplegma project Symplegma • L L . cm SDE x= y=10 0 Climax • Radius r=0.5m jfem jbem gendomain • Dirichlet boundary strdyn More • Modulus of elasticity d = 0.1cm FuturEye PDE E=200GPa SymJava • Navier-Lam´eequations of Coupling • Conclusions Poisson ratio ν=0.25 equilibrium The Symplegma project Plate with hole: mesh The Symplegma project Symplegma SDE Climax jfem jbem gendomain strdyn More FuturEye PDE SymJava Coupling Conclusions The Symplegma project Plate with hole: deformed