Elmer FEM

repository·devel·Indexed 23 days ago

https://github.com/elmercsc/elmerfem

A multiphysics finite element solver featuring ElmerGrid for mesh generation, manipulation, and format conversion (supporting Gmsh, UNIVERSAL, COMSOL mphtxt, and VTK). The project includes utilities for Windows DLL bundling via msys2-bundledlls, CPack recipes for distribution, and specialized solvers such as Adjoint_CostRegSolver and elmerice for ice-related inverse methods, mass conservation optimization, and SSA validation.

Tokens
115.3K
Snippets
237
Records
511
Agent score
81%

What's inside elmerfem

  1. Overview of Inverse Methods Test Cases

    devel

    This directory contains test cases for adjoint inverse methods, originally derived from the Elmer/Ice course in Oslo (2016) and updated in April 2020. These test cases demonstrate how to use various solvers for optimization and parameter estimation.

    Directory Structure:

    • DATA/: Contains data sets and processing tools required to run the experiments.
    • src/: Contains user functions required by the test cases.
    • SCRIPTS/: Contains Python scripts used for post-processing results.
  2. Overview of the MATC library

    devel

    MATC is a library designed for the numerical evaluation of mathematical expressions. In the context of the Elmer package, it allows users to define mathematical expressions within the ElmerSolver command file.

    Expressions defined via MATC can be evaluated at two different stages:

    1. While the command file is being read.
    2. At the time of execution.

    Performance Note: MATC is best suited for quick testing or expressions that are not evaluated frequently. For performance-critical applications, it is recommended to use User Defined Functions (UDFs) or Lua instead.

  3. Overview of Elmer/Ice adjoint solvers by function

    devel

    The adjoint methods in Elmer/Ice are organized into functional categories corresponding to the optimization workflow:

    • Generic Solvers: Used for validation, the optimization search (step 6), and solving the adjoint linear system (step 3).
    • Cost Solvers: Used to compare the simulation solution with observations (step 2). Some of these are model-specific.
    • Regularization Solvers: Used for adding regularization terms (step 5). Some of these are model-specific.
    • Gradient Solvers: Model-specific solvers used to compute the derivatives (step 4).
  4. Overview of Elmer FEM

    devel

    Elmer FEM is a multiphysical finite element software suite designed to solve a wide range of partial differential equations. It is suitable for various engineering and scientific problems, including:

    • Structural mechanics
    • Fluid dynamics
    • Heat transfer
    • Electromagnetics

    The software is scalable, ranging from use on personal computers to massively parallel High-Performance Computing (HPC) platforms.

  5. Overview of FreeCADBatchFEMTools features

    devel

    The FreeCADBatchFEMTools.py library is designed for automated FEM preprocessing for the Elmer Solver. Key capabilities include:

    • Mesh Management: Creating mesh objects for FreeCAD and manipulating mesh sizes of solids.
    • Gmsh Integration: Creating meshes using Gmsh.
    • Elmer Workflow: Running ElmerGrid and exporting meshes specifically for ElmerSolver.
    • Model Setup: Selecting and naming bodies and boundaries required for ElmerSolver configurations.
  6. Overview of the HUTIter iterative solver library

    devel
    HUTIter is a library providing iterative solvers based on the Krylov subspace method. It supports both serial and parallel execution modes. The library is historically associated with the Helsinki University of Technology.
  7. Overview of ElmerGrid mesh generation and manipulation

    devel

    ElmerGrid is a mesh generation and manipulation utility bundled with the Elmer project. It serves three primary purposes:

    1. Mesh Generation: Creates simple structured 2D meshes (quadrilaterals or triangles) and limited 3D meshes via extrusion (hexahedrons or prisms).
    2. Format Conversion: Acts as an import/export utility. It can read formats such as Gmsh, UNIVERSAL, and COMSOL mphtxt, and can write to Elmer input/output formats and VTK.
  8. Overview of the ShellMultiSolver module

    devel

    The ShellMultiSolver.F90 module is a shell formulation solver used within ElmerFEM. It includes implementations for:

    • Reissner-Mindlin Facet Shell Solver: Originally developed for composite laminates.
    • Discrete Kirchhoff Theory (DKT): Added in later modifications.
    • Membrane only formulations.
    • MITC3 and RMITC3 triangular elements.

    Note that the original Reissner-Mindlin solver is still available in the codebase as the FacetShellSolver.F90 module, though it lacks specific documentation in this directory.

  9. Overview of the Mass Conservation example

    devel

    The Mass Conservation example is a validation and test case for the mass conservation method in Elmer/FEM. It uses a thickness solver to compute a steady-state thickness field from a 2D velocity field and mass balance.

    Key components of this test case include:

    • Thickness Solver: Computes steady-state thickness.
    • Adjoint Code: Used to optimize input fields to match discrete thickness observations.
    • Analytical Basis: Based on a 2D ice shelf ramp solution where thickness $H$ decreases linearly ($H = H_{gl} + \frac{dh}{dx} \cdot x$), with inflow velocity $u = (V_{gl}, 0)$ at $x=0$ and a calving front at $x=L_x$.
  10. Overview of Spatial Correlation Modelisation Solvers

    devel

    ElmerIce provides several solvers focused on operations involving covariance matrices for spatial correlation modelisation. The primary solvers available are:

    • BackgroundErrorCostSolver: Used for background error cost calculations.
    • CovarianceVectorMultiplySolver: Used for performing vector-matrix products involving covariance matrices.
    • GaussianSimulationSolver: Used for Gaussian simulations.

    For detailed information on the underlying methods used to compute or apply these covariance matrices, refer to the CovarianceUtils module documentation.

  11. Use the experimental Xdmf/HDF5 result writer

    devel

    This module allows Elmer to write simulation results in Xdmf/HDF5 format, which can be opened directly in ParaView.

    Important Constraints:

    • Only the parallel version of the solver (ElmerSolver_mpi) is currently supported.
    • This is an experimental module.
  12. Access Elmer/Ice documentation and community resources

    devel

    Elmer/Ice provides glaciological extensions to the ElmerFEM code. You can find specialized documentation, community wikis, and discussion forums through the following resources:

    • Standard ElmerFEM Documentation: General ElmerFEM documentation.
    • Elmer/Ice Wiki: The primary location for most Elmer/Ice-specific documentation.
    • GitHub Documentation: Ongoing documentation being written within the Elmer/Ice solvers directory.
    • Elmer/Ice Forum: Community discussion and support.
    • Elmer/Ice Community Website: General information and instructions for joining the Elmer/Ice email list.