AMDiS (Adaptive MultiDimensional Simulations) is a C++ library to solve a broad class of partial differential equations (PDE) using adaptive finite elements. Here you will find some information and tutorials about AMDiS usage/installation/extension...
The objective of this tutorial is to introduce the user into the main AMDiS features by giving some application examples.
For every example the following aspects are described:
Abstract problem description: In the header of each example section, the abstract problem definition is given. Sometimes, some solution strategies on a high abstraction level are mentioned, also.
Source code: In the source code section, the listing of the example source code is explained.
Parameter file: In this section, the parameter file is described. The parameter file contains parameters which are read be the application at runtime. The name of the parameter file is usually passed to the the application as a command line argument.
Macro file: In the macro file section, the definition of the coarse macro mesh is shown, which is the basis for adaptive refinements.
Output: The AMDiS results are written to output files that contain the final mesh and the problem solution on this mesh. The output can be visualized with ParaView. In the output section, the visualized problem results are shown and discussed.
To avoid unnecessary repetitions, not every aspect of every example is described, but only those aspects that have not appeared in previous examples.
In order to write a differential equation in a mathematical natural way we have developed an expression framework, that allowes exacly this. Instead of adding abstract operator-classes to the problem definition we implement the coefficient functions of the operators using mathematical operators. An example is the following bilinearform
Assume that φ represents a DOFVector, i.e. a discrete representation of a function in a function-space, that is known in advance, or given by an iterative solution procedure from the last iteration. Here we use a solution component of the problem prob:
The bilinearform consists of two individual parts, a term of zeroth derivative order (ZOT) and a term that contains two derivatives, of c and ϑ, i.e. of the trial and test function. We have to implement the corresponding coefficient functions of these two terms individually and add the term using the functions addZOT, respective addSOT to the operator. Lets assume the trial and test functions are in the finite element spacefeSpace given as the first space of the problem, then we can define the bilinearform as
the keyword valueOf indicates that we want to evaluate the values of the DOFVector at the corresponding quadrature points during assembling. One could als evaluate the gradient, or partial derivative of a DOFVector, using the functions gradientOf(DV), or derivativeOf(DV, comp), respectively.
AMDiS is equipped with a parser for parameter files to control simulations,
e.g. set material parameters, define the timestep length, set meshes for each
problem and configure the number of global refinements. These parameter files
(or init-files) are simple text files in a special syntax, that is described here.
Many things can be realized using AMDiS today, but some things
are really complicated to implement. Other common tasks need a lot
of coding to be solved.
In the ''AMDiS-Extensions'' a lot of standard task are realized and
implemented. This manual should give you a short introduction
to some of the features. The extensions are work in progress, so
the signature and interface of the methods and classes can change
from one version to the next. Nevertheless it builds a set of
very useful tools are used in every day work by several projects
The manual still not covers all features of the AMDiS-Extensions.
But it should give you enough information to get started.
AMDiS provides a list of different output formats. We recommend to use ParaView as visualization tool. Therefore we have implemented a VTU-writer for stationary solutions and a PVD writer for animated data, respective time series. Also writers for other formats are provided and can be configurated. Read here how to deal with output data...