190 likes | 286 Views
ACcESS Software System & High Level Modelling Languages. by gross@access.edu.au. 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.
E N D
ACcESS Software System &High Level Modelling Languages by gross@access.edu.au ACES Workshop
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 ACES Workshop
ACcESS • Major National Research Facility (MNRF) • Hardware installation • to provides sufficient compute power • Software development • to develop tools and models ACES Workshop
ACcESS (cont.) ACcESS Science ResearchCommuity Terminal Grid/XML Scripting language: algorithms & models ESyS Software System Middleware: data structures Hardware: 1-2Tflops OpenMP+MPI Kernels (BLAS): performance ACES Workshop
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 ACES Workshop
Components Web Services GUI Interactive Models & High level algorithms ESyS: Python Mesh/ParticleGeneration Data bases Visualization Discretization ACES Workshop
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) ACES Workshop
Discretization ESyS MOP FEM DEM CA PIC ESyS-Finley: Data structure: array ESyS-LSMEarth Data structure: lists ESyS-CA Data structure: array ACES Workshop
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 ACES Workshop
Tagged with 1 Tagged with 3 A Simple Example Domain ACES Workshop
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) ACES Workshop
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) ACES Workshop
assemble (cont.) • Coefficients can • constant/piecewise constant or • depending on location • live on nodes or elements or • equal zero/not present ACES Workshop
Some relevant Class ESyS.Structure ESyS.Domain ESyS.Atoms generic inheritance Region Nodes interfaces Face Finley.Mesh instantiate Elements Points access implementation SciSL/BLAS libFinley.so ACES Workshop
Data ESyS.Data ESyS.assemble inherits Scalar Tensor Implemented by Vector Tensor4 Finley.assemble numarray access to coefficients libFinley.so libnumarray.so ACES Workshop
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 ACES Workshop
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 ACES Workshop
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. ACES Workshop
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 • … ACES Workshop