4C

Mission statement

4C is a parallel multiphysics research code to analyze and solve a plethora of physical problems described by ordinary or partial differential equations. Its development is driven by challenging research questions and real-world problems, for which existing tools do not suffice, either due to the lack of capabilities or due to falling short of accuracy or performance.

4C not only provides ready-to-use simulation capabilities for a variety of physical models, including single fields such as solids and structures, fluids, or scalar transport, and multiphysics coupling and interactions between several fields, but also a modular software environment for research in mathematical modeling and numerical methods. Pre- and post-processing tools facilitate the use of 4C within streamlined application workflows in science and engineering. For spatial discretization, 4C mostly relies on finite element methods (FEM, CutFEM). It leverages the Trilinos project for sparse linear algebra, nonlinear solvers, and linear solvers and preconditioners to be executed on MPI-parallel computing clusters. Through its comprehensive set of physics modules available to all users without coding effort, 4C facilitates the advancement of research in all areas of science, engineering, and biomedicine.

Content

This guide to 4C is structured as follows:

About 4C

Learn about the capabilities and history of 4C.

The 4C Community

A brief summary of the roles and responsibilities within the 4C community.

Installation

A summary of all requirements of 4C and detailed steps how to build 4C.

Tutorials

A series of beginner-level tutorials showcases the setup procedure for specific application scenarios.

Analysis guide

Detailed explanations on the whole tool chain from model generation (pre-processing) over running a simulation to the evaluation of results (post-processing) offers deep insight into using 4C for advanced simulation scenarios. This guide includes background information and detailed descriptions for the specification of elements, boundary conditions, constitutive laws as well as options for linear and nonlinear solvers.

Developer guide

This guide gets you started on actively developing and contributing to 4C. It covers our CI/CD testing infrastructure, coding guidelines, and useful tools for the daily development of 4C.

Input Parameter Reference

A comprehensive list of all input parameters, elements, materials, and boundary conditions with short descriptions for each option

Tools and Scripts

A collection of useful scripts for working with 4C

Appendix

Information on contributing to this documentation as well as selected topics of interest