Download presentation
Presentation is loading. Please wait.
Published byDora Tyler Modified over 9 years ago
1
ACES WorkshopJun-031 ACcESS Software System & High Level Modelling Languages by gross@access.edu.au
2
ACES WorkshopJun-032 Modeling the Earth Short & medium-term processes –Interactive faults, earthquakes –Particle, FE methods, CA Long-term processes –Mantel convection –FEM & PIC Mineralization, surface processes (FEM) Coupling
3
ACES WorkshopJun-033 ACcESS Major National Research Facility (MNRF) –Hardware installation to provides sufficient compute power –Software development to develop tools and models
4
ACES WorkshopJun-034 ACcESS (cont.) ESyS Software System Hardware: 1-2Tflops OpenMP+MPI Scripting language: algorithms & models Middleware: data structures Kernels (BLAS): performance TerminalGrid/XML ACcESS Science Research Commuity
5
ACES WorkshopJun-035 User’s Profile Modelers: mathematical background –Development environment Fast Prototyping Debugging –Unified access to software tools High-end users: strong scope knowledge –Using tested models –set parameters via XML/GUI/web
6
ACES WorkshopJun-036 Components ESyS: Python Web Services Interactive Models & High level algorithms Data basesVisualization Mesh/Particle Generation Discretization GUI
7
ACES WorkshopJun-037 ESyS Functionality Interactive modelling environment in Python –platform and data structure independent Provides ‘templates’ for implementations –with lean interface –to generic tools: PDE solver, visualization –specific functionality: surface processes Coarse grain parallelization Facilitates the coupling of models Provides a Grid service(s)
8
ACES WorkshopJun-038 Discretization ESyS FEM MOP PIC DEM ESyS-Finley: Data structure: array ESyS-LSMEarth Data structure: lists CA ESyS-CA Data structure: array
9
ACES WorkshopJun-039 ESyS-Finley Realizes a general PDE solver for ESyS –3D unstructured/structured grid FEM/PIC code –in C –parallelized & optimized for SGI Altix Application: –long scale processes –Interacting fault See also: –VECFEM: general, 3D, unstructured, parallel –FASTFLO
10
ACES WorkshopJun-0310 A Simple Example Domain Tagged with 1 Tagged with 3
11
ACES WorkshopJun-0311 Example import Finley import OpenDX from ESyS import * # get mesh msh=Finley.Mesh(“file.msh”) # identify faces: top=msh.face([1]) bottom=msh.face([3]) # set values on the faces: tmpTp=Scalar(top.nodes(),value=20.) tmpBttm=Scalar(bottom.nodes(),value=1820.) # assemble and solve the PDE mat,rhs=Assemble(A=12.,c=[tmpTp,tmpBttm]) T=mat.solve(rhs) # visualization fig=OpenDX.Figure(msh) fig.addCarpet(T)
12
ACES WorkshopJun-0312 assemble Method General interface: Assemble(A,B,C,D,X,Y,a,b,c) –A : matrix or scalar (=diag( A )) or not present (=0) –B,C,X : vectors or not present (=0) –a,b,c : scalars or not present (=0)
13
ACES WorkshopJun-0313 assemble (cont.) Coefficients can –constant/piecewise constant or –depending on location live on nodes or elements or –equal zero/not present
14
ACES WorkshopJun-0314 Some relevant Class Finley.Mesh ESyS.StructureESyS.DomainESyS.Atoms Region Face Points Nodes Elements libFinley.so inheritance instantiate access generic interfaces implementation SciSL/BLAS
15
ACES WorkshopJun-0315 Data libnumarray.so ESyS.Data numarray access to coefficients Scalar Vector Tensor Tensor4 inherits Implemented by libFinley.so Finley.assemble ESyS.assemble
16
ACES WorkshopJun-0316 Another Example import Finley from ESyS import * lam,mu,dt=1.E12,0.1E5,0.1 coeff= msh=Finley.Mesh(“file.msh”) dim=msh.getDim() top=msh.face([1]) uAtTop=Vector(top.nodes(),value=[1,0])*dt uAtBottom=Vector(bottom.nodes(),value=[-1,0])*dt # initialize stress,displacement,time s=Tensor(msh.elements(),Value=0.) d=Vector(msh.nodes(),Value=0.) t=0 while t<1. mat,rhs=Assemble(A=coeff,X=s,c=[uAtTop,uAtBottom]) dd=mat.solve(rhs) g=gradient(dd) ds=lam*(g+transpose(g))/2+mu*trace(g)*Id(dim) s+=ds d+=dd t+=dt
17
ACES WorkshopJun-0317 Operations on Data Binary operations: –arguments on the same Atoms or constant –add,sub,mult, div, power –in place: +=,-=,… Unitary operation –abs, cos, sin, transpose, trace, … Set & get slices/items: s=v[1], v[2]=s In Finley: implemented through numarray
18
ACES WorkshopJun-0318 Substitutes for Finley Candidates: –SNARK: for clusters, based of PETSc –GeoFEM: for the EarthSimulator no changes to the model codes has to pass the Finley test bed in Python.
19
ACES WorkshopJun-0319 Beyond software integration Lazy evaluation of expressions –Replaces partially numarray –local evaluation => improves efficiency Expression differentials: non-linear problems Code generation Nicer interface for assemble …
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.