libmba2d
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
Project name: 2D GENERATOR OF ADAPTIVE UNSTRUCTURED TRIANGULAR MESHES USING METRIC BASED ADAPTATION Package name: aniMBA. Documentation: doc/mba_guide.pdf Contents: 1. What is aniMBA? 2. Main features of aniMBA. 3. Installation guide. 4. Available support. 5. References. 1. What is aniMBA? The Fortran 77 package aniMBA generates unstructured triangular meshes adapted to a solution function defined at mesh nodes or governed by a user defined metric. It can be shown that the resulting mesh is optimal in a sense that an interpolation error is minimized on such a grid (see references for more details). If a solution function is anisotropic, the resulting mesh will also be anisotropic. The other objective of aniMBA is to serve as a test bed for the real 3D adaptive code. 2. The main features of aniMBA. (a) Simplicity and portability. It is written in Fortran 77, contains a few files, and a very simple Makefile. Since we have not used any system dependent calls (except for time measurement), the code is widely portable. (b) Robustness. The algorithm is a sequence of topological operations on a mesh superelement. This enables us careful treatment of very complex situations which in turn results in the algorithm robustness. (c) Careful checking the output mesh. (d) Very simple input interface. We know very well how complicated and restrictive input interface may be. We tried to simplify it as much as possible. We have chosen neither a solid constructive geometry, nor a surface description technique. In input, we require a mesh. It may be very coarse mesh consisting of a few elements (made by hands), or very fine mesh made by any other mesh generator. Recall that the main purpose of aniMBA is to adapt a mesh to a solution defined at mesh nodes. The input mesh provides all information about the domain. Apart the standard mesh data (list of node coordinates, connectivity table, list of boundary edges), we need two more things. First, optional lists of fixed nodes and triangles which will be never touched. Second, some data for treating curvilinear boundary edges. Both sets of data may be empty. The detailed description of input parameters is in file ani_solution.f. (e) Very simple output. We return the modified sets of data. In addition, we provide PS-files of the input and the output meshes which help to understand how the code response to different sets of input data. (g) Ability to construct locally refined meshes, both isotropic and anisotropic. This is very important in applications. In the articles mentioned in Section 5, we use aniMBA in a adaptive loop to solve linear and non-linear partial differential equations. (h) The generator constructs a mesh with as many elements, as the user want. (i) The package can generate meshes based on an analytic metric. The user has to define a 2x2 symmetric positive definite matrix. The generated mesh will be QUASI-UNIFORM in this metric and will consist of a given number of elements. For instance, if the metric is the identity matrix, then the output mesh will be quasi-uniform (in conventional sense). If the metric is chosen to be anisotropic in some parts of the domain, then the output mesh will be anisotropic there. (j) Very simple interface to make an adaptive loop. If the user does not want to provide the governing metric analytically, he may provide just a scalar discrete function defined at mesh nodes. The generator will generate a metric based on the discrete Hessian recovered from the given discrete function. The adaptive loop can be organized as follows: loop 1 discrete solution + input mesh -->> new mesh loop 2 new discrete solution + mesh from loop 1 -->> new mesh loop N+1 new discrete solution + mesh from loop N -->> new mesh 3. Installation guide. There is a PDF file doc/mba_guide.pdf explaining details of package installation. 4. Available support. We hope that our friends and colleagues will try package aniGEN in their research. We shall appreciate any remarks, comments and we shall response to them ASAP. It may help us improve future versions of the code. The contact information is Developer E-mail Konstantin Lipnikov [email protected] Yuri Vassilevski [email protected] 5. References (a) Yu.Vassilevski, K.Lipnikov, An Adaptive Algorithm for Quasioptimal Mesh Generation, Computational Mathematics and Mathematical Physics, Vol.39, No.9 (1999) pp.1468-1486. (b) A.Agouzal, K.Lipnikov, Yu.Vassilevski, Adaptive Generation of Quasi-optimal Tetrahedral Meshes, East-West Journal, Vol.7, No.4 (1999) pp.223-244. (c) K.Lipnikov, Yu.Vassilevski, Parallel adaptive solution of 3D boundary value problems by Hessian recovery, Comput. Methods Appl. Mech. Engrg., Vol.192 (2003) pp.1495-1513. (d) K.Lipnikov, Yu.Vassilevski, Optimal triangulations: existence, approximation and double differentiation of P_1 finite element functions, Computational Mathematics and Mathematical Physics, V.43, No.6 (2003) pp.827-835. (e) K.Lipnikov, Yu.Vassilevski, On a parallel algorithm for controlled Hessian-based mesh adaptation, Proceedings of 3rd Conf. Appl. Geometry, Mesh Generation and High Performance Computing, Moscow, June 28 - July 1, Comp. Center RAS, V.1 (2004) pp.154-166. (f) K.Lipnikov, Yu.Vassilevski, On control of adaptation in parallel mesh generation, Engrg. Computers, V.20 (2004) pp.193-201.