-
Notifications
You must be signed in to change notification settings - Fork 0
This code is a modification of MFEM, a C++ library for finite element methods. The modification includes: 4D meshes and finite elements, multigrid and time-slabbing solvers and a natural setting for considering (constrained) first-order system least-squares formulations.
License
CFOSLS/mfem
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This repository is a fork of MFEM, extended with classes for CFOSLS (constrained first-order system least squares) framework. The underlying version of MFEM is 3.3. The code can be built in the same way as MFEM, see http://mfem.org/building. To learn more about MFEM, visit mfem.org and/or read README in https://github.com/mfem/mfem. Incomplete list of new classes (w.r.t to base version of MFEM): - ParMeshCyl: a class for handling space-time cylinder meshes with arbitrary base mesh. - 4D finite element spaces for H(div), H(divskew), H(curl), H^1 and L^2 and 4D meshes (also available in https://github.com/mfem/mfem/tree/4d_dev) - FOSLSFormulation: weak formulation of a (C)FOSLS problem in terms of bilinear and linear forms (BilinearForm- and LinearFormIntegrators in MFEM) - FOSLSFEFormulation: weak formulation of a FOSLSProblem with spaces specified (FiniteElementCollections in MFEM) - FOSLSProblem: base class for a (C)FOSLS problem on a given mesh (incl. FiniteElementSpaces in MFEM) - GeneralHierarchy: hierarchy of meshes and f.e. spaces defined on them - FOSLSProblHierarchy: hierarchy of FOSLSProblems living at a hierarchy of meshes - MultigridToolsHierarchy: a hierarchy of various ingredients which could be used for multigrid (or other preconditioners), including. e.g., local non-overlapping Schwarz smoothers implemented in LocalProblemSolver class) - GeneralMultigrid, Multigrid and MonolithicMultigrid: multigrid preconditioners - GeneralMinConstrSolver: a multilevel minimization solver which solves a CFOSLS problem by minimizing the FOSLS functional subject to the constraint - DivConstraintSolver: a multilevel method for finding a particular solution to the constraint $\div \sigma = f$ - TimeStepping: a class for time-slabbing (splitting the problem into space-time slabs and solving sub-problems in each time slab) - TwoGridTimeStepping: for emulating parallel-in-time two-grid solver. - FOSLSEstimator: error estimator for a FOSLS problem - Specific integrators and classes for CFOSLS formulation of linear transport, heat, wave and laplace equations - Visualization routines for slicing 3D and 4D meshes and grid functions defined on them to produce VTK output suitable for futher postprocessing, e.g., in ParaView. Incomplete list of features (improvements) upon MFEM: - 4D finite element spaces & 4D meshes - general multigrid preconditioners and minimization solver - time-slabbing - AMR in FOSLS framework - various examples of solving PDEs in CFOSLS formulations using the new classes For examples, see the examples/ directory (and examples/archive for some older example codes).
About
This code is a modification of MFEM, a C++ library for finite element methods. The modification includes: 4D meshes and finite elements, multigrid and time-slabbing solvers and a natural setting for considering (constrained) first-order system least-squares formulations.
Topics
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- C++ 97.1%
- CMake 2.1%
- Other 0.8%