310 likes | 426 Views
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 .
E N D
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 PetSC 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 componentsyi of a tensor field y • With • A functional basis: • Coefficients (DOF’s):
Aim: flexibility parallel, h-p adaptive multiple fields multi-methods, multi-physics Representation constant part, DofKey variable part DofData The idea of a general DOF representation is far more important than the implementation Degrees of Freedom
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 • L2-Orthogonal, p<15 • Crouzeix-Raviart • Enriched X-fem basis,to come...
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
Scalar product, dual pairing • Consider • Operators Fiacting on yi • Contraction :: between operator results produces a scalar • Particular case: bilinear density • Linearisation of the general case • Representation: dim(L1)dim(L2) 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: PetSC, SuperLU • to ODE solvers: PesSC, DASPK • Internal Trellis solvers • Newton, BFGS • classical ODE solvers: CN, RK...
Navier-Stokes in 4 lines of code • Constraints: fix components to a value
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)