Charm++ FEM Framework


"Why use FEM?"

Why use the FEM Framework?

Why not use the FEM Framework?

Scalability of FEM Framework

“Overhead” of Multipartitioning

Load balancer in action

FEM Framework Users: Frac3D

FEM Framework Users: CSAR

FEM Framework Users: DG

NetFEM Client: pretty pictures

"FEM Concepts"

FEM Basics

Serial FEM Mesh

Partitioned Mesh

FEM Parallel Model: Shared Nodes

FEM Mesh: Node Communication

FEM Parallel Model: Ghosts

FEM Mesh: Ghosts

FEM Program Structure


Parallel FEM Program

FEM Framework Program



Structure of an FEM Application

A Serial Program

A Parallel Framework Program

Real Names of Pieces

FEM Mesh Access Calls

Old FEM Mesh Access Routines

New FEM Mesh Access Routine (!)

New Mesh Access: Example

New Mesh Access: Advantages

New Mesh Access: Disadvantages

FEM Communication Calls

Node Fields

Create a Field

Update Field: Shared Nodes

FEM Ghost Layers

Ghost Elements: Overview

Ghosts: 2D Example

Building Ghosts:

Building Ghosts:

Ghosts: Node adjacency

Ghosts: Edge adjacency

Extracting and Using Ghosts

Update Field: Ghosts

Ghost Example: Mesh

Ghost Example: Ghost Elements

FEM Installation

Where to Get It ?

How to Build It ?

How to Compile & Link ?

How to Run ?


Advanced FEM Calls

Advanced: FEM Migration

Advanced: Complicated Fields

Node Fields


Create_field Example

Create_field Example

Advanced: Symmetry Ghosts

Ghosts and Symmetries

Symmetry Ghosts: 2D Example

Ghost Elements

Symmetry-Ghost Elements

Ghosts and Symmetries: Update

Advanced: FEM on MPI

Extra FEM Features

Collision Detection

Charm++ Collision Detection

Collision Detection Algorithm:

Serial Scaling

Parallel Scaled Problem

Mesh Adaptation

Parallel Mesh Refinement

IFEM: Iterative FEM
Linear Solver Interface

IFEM: Intro to Matrix-based FEM

106 Rows is a Big  Matrix

ILSI:  Iterative Linear Solver Interface

Matrix Example:

Matrix Example: 2 Elements

Matrix Example: Derivation

Matrix Example: FEM

IFEM: Bottom Line


NetFEM Client: pretty pictures

NetFEM: Easy Visualization

NetFEM: Easy visualization

NetFEM: Zoom in

NetFEM: Outline Elements

NetFEM: Point Nodes

NetFEM Server Side: Overview

NetFEM Server Side: Setup

NetFEM Server Side: Nodes

NetFEM: Node Displacement

NetFEM Server Side: Elements

NetFEM: Element Stress

NetFEM Server Side: Vectors

NetFEM: Element Velocity

NetFEM Server Side: Scalars

NetFEM Server Side: 2D Example

NetFEM: Conclusion

Conclusions: Charm++ FEM

Old FEM Mesh Routines

Framework Calls



Element Connectivity

Additional Data for Nodes and Elements