Trellis A Framework for Adaptive Numerical Analysis Based
Trellis: A Framework for Adaptive Numerical Analysis Based on Multiparadigm Programming in C++ Jean-Francois Remacle, Ottmar Klaas and Mark Shephard Scientific Computation Research Center Rensselaer Polytechnic Institute
Scope of the presentation • Aim of Trellis: find y(x, t) Y(W) such that • Trellis modular design – – A parallel adaptive mesh library, takes care of W A discretization library, takes care of Y(W) A core library, takes care of f A solver library for algebraic systems
Linearization • We usually need a linearization of • The aim of Trellis is to provide M, C, K and f • Trellis interacts with external solvers like Pet. SC or DASPK
Parallel Algorithm Oriented Mesh Data-structure • Aim of AOMD: providing services to mesh users – Basic services, iterators to various ranges of entities, iterators on adjacencies, input-output. . . – Geometry based analysis, relation mesh to model is maintained – Support of dynamic mesh adjacencies – Parallel services: message passing and load balancing capabilities • Open source: www. scorec. rpi. edu/AOMD
Parallel Algorithm Oriented Mesh Data-structure • AOMD extensions – Conforming (anisotropic) and non-conforming adaptive capabilities, available in parallel – Calculus toolkit, integration, curvilinear elements and their mappings (Bezier, Lagrange) – Computational Geometry toolkit (Octree, ADT) – Interface to solid modelers (e. g. Parasolid), vertex snapping – TSTT interface
Example of AOMD capabilities • • • Parallel Adaptive D. G. Solver Load Balancing High order
The Discretization Library • Representing components yi of a tensor field y • With – A functional basis: – Coefficients (DOF’s):
Degrees of Freedom • Aim: flexibility – parallel, h-p adaptive – multiple fields – multi-methods, multi-physics • Representation – constant part, Dof. Key – variable part Dof. Data – The idea of a general DOF representation is far more important than the implementation
Degrees of Freedom Manager • Design – Contains all degrees of freedom – Container: std: : map or std: : hash_map if available e. g. at www. stlport. org – Singleton pattern i. e. one only instance in the program – Parallel capabilities
Function Spaces • Provide C and N of • Hierarchy of classes • Available: – – – Hierarchical, p<15 Lagrange, p<10 L 2 -Orthogonal, p<15 Crouzeix-Raviart Enriched X-fem basis, to come. . .
Examples of Function Spaces
Examples of Function Spaces
Examples of Function Spaces
Linear operators • Aim: take tensor components and build a tensorial representation – A field with 3 component may be a covariant vector, a vector or 3 scalars (Euler 1 -D e. g. ) • We call with and we have the expansion
Examples of Operators
Scalar product, dual pairing • Consider – Operators Fi acting on yi – Contraction : : between operator results produces a scalar • Particular case: bilinear density – Linearisation of the general case – Representation: dim(L 1) dim(L 2) matrix (not tensor!)
Some other densities • Linear Form – Representation: column vector, dim(L) • Trilinear Form – Automatic linearization
Contributors • Matrix Contributor • Representation
Implementation • Generic: • Template parameters: operators, material law – Efficient (inlining) and very general – An operator that computes must exist – That type safety helps developer not to make mistakes
Algebraic and ODE Solvers • Interfaces – to serial linear system solvers: Sparskit, IML, … – to parallel solvers: Pet. SC, Super. LU – to ODE solvers: Pes. SC, DASPK • Internal Trellis solvers – Newton, BFGS – classical ODE solvers: CN, RK. . .
Navier-Stokes in 4 lines of code • Constraints: fix components to a value
Channel flow, Re=625
Natural convection (time dependant)
Heated from below • Natural convection – Ra = 105 – Semi-implicit
Magneto-hydrodynamics • Tilt instability – Dipole of current ( b) oppositely directed (repelling forces) in a constant b (confining field) – dipole starts turning in order to align the external magnetic field (minimize magnetic energy) – repelling effect is able to expel vortices – Instability: kinetic energy grows like exp(gt) with g = O(1. 4)
Magneto-hydrodynamics • Characterization of ker(div) – From “inside”, with potentials – From “outside” with Lagrange multipliers (pressure and electric potential). SUPG stabilization (modified upwind operators b’ and l’)
Results for a Tilt instability – Magnetic potential a with b = (aez ) , p=1 and p=3 (v and b)
Results for the Tilt instability • Magnetic Flux Density and Velocity
Results for the Tilt instability • Kinetic energy vs. time
Current • Current density j ez= b • Oscillations observed – SUPG Stabilization for higher order (p=3) may not be sufficient
Conclusions • Multiparadigm design in C++ – Higher level objects, Object Oriented – Kernel, Generic • Trellis – Operator based, linear and non-linear – Complex physics easy to implement • Future – Parallel (in progress) and adaptive (in progress)
- Slides: 31