|
supported by the Institute for Microelectronics
|
DescriptionFor the modeling of solids, the constructive solid geometry (CSG) technique is often used. It allows to create models with rather complex surface by boolean operations such as intersection or union of simple objects like balls or cubes. Netgen provides CSG support for three-dimensional objects already. The task is to add support for the simpler two-dimensional case. We have inherent scientific demand for such a two-dimensional add-on in order to be able to run flexible... DescriptionComputational fluid dynamics (CFD) is a computationally intensive challenge and requires sophisticated algorithms as well as efficient implementations. NGSolve contains several methods for compressible and incompressible flow simulation on complex domains based on modern discontinuous Galerkin methods. We want to explore the benefit of graphics processing units (GPUs) for explicit time stepping methods in order to further reduce execution times of our solvers. The ViennaCL linear... DescriptionNGSolve contains a Discontinuous Galerkin solver for time domain Maxwell equations. The explicit time stepping methods are inherently parallel, and are thus well suited for GPU computing. The ViennaCL linear algebra library should be used for accessing the vast computational resources of GPUs. Benefit for the StudentThe student will learn modern numerical methods in computational electromagnetics. Benefit for the ProjectWe hope to improve the performance of the EM simulator... DescriptionThe linear algebra kernel in NGSolve is so far restricted to computations on the CPU. On the other hand, ViennaCL provides linear algebra on graphics processing units (GPUs) as a standalone library. The student should add appopriate switches within NGSolve in order to switch between the built-in NGSolve linear algebra and ViennaCL for general (black-box) linear algebra tasks. Benefit for the StudentThe student will gain experience with the pros and cons of general purpose... DescriptionIn order to unleash to full computational power of GPUs for sparse matrix-vector products, suitable storage schemes have to be used. The optimum storage scheme, however, depends on the structure of the underlying matrix. A number of different storage formats have been proposed with very different pros and cons. The difference in execution times for sparse matrix-vector products can be easily one order of magnitude if the wrong storage format is chosen. Support for the most... DescriptionFor the solution of a dense system of equation, LU-factorizations (aka. Gauss solver) are typically employed. However, a naive implementation of a Gauss-solver might fail for a large class of matrices and is rather sensitive to numerical noise. A substantial improvement can be achieved by so-called pivoting. This is essentially nothing but a reordering of the equations. However, it ensures that the Gauss solver succeeds for all regular matrices and reduces the sensitivity with... DescriptionViennaCL provides a couple of solvers for systems of equations. For many applications it is in addition desired to compute the eigenvalues of the system matrix. As usual, the method of choice depends on the structure of the system matrix. Subproject 1: For huge, sparse symmetric matrices the largest eigenvalues can be obtained by the iterative Lanczos' Method, which should be implemented by the student. For non-symmetric systems, Arnoldi's Method should be implemented. If only... DescriptionThe memory on a single graphics adapter is typically limited to dense matrices of at most 10.000 by 10.000 entries. However, for many applications much larger matrices need to be handled, which can be achieved by distributing the matrices to multiple computing nodes. On the API level, library users wish to have the distributed data handled automatically, as if the matrix were located on a single GPU. The student should implement such a distributed matrix type and provide basic... DescriptionWhen solving a sparse system of linear equations Ax = b for x by means of iterative methods, the convergence can be improved considerably by formally multiplying the system with a matrix B that is a good approximation to the inverse of A. One possibility is to construct an approximate sparse inverse B by minimizing ||AB - Id|| for a certain sparsity pattern of B, where Id denotes the identity matrix. The task is to implement a sparse approximate inverse preconditioner in... DescriptionTo further improve the quality of the generated tetrahedral volume meshes the open source tool Stellar should be investigated. The student should investigate the source package and develop an interface for ViennaMesh. Benefit for the StudentThe student will get hands-on experience with a state-of-the-art mesh improvement tool and recognize the importance of code modularity in scientific software. Benefit for the ProjectThe unified access to different meshing kernels in... DescriptionLarge mesh generation and adaptation tasks for real-world applications such as the simulation of a thigh bone (fermur, see picture) naturally introduce the need for parallelization. For a hull mesh consisting of separate pieces with well-defined interface, a volume mesh for the full structure can be obtained by meshing the individual pieces in parallel by serial meshing kernels such as Netgen. The student should accomplish such a parallel volume meshing step based on a... DescriptionFor many applications such as the simulation of human bones, a volume mesh is constructed out of a hull mesh. Due to the high complexity of the geometry such as for example on the picture provided to the right, it is of advantage to decompose the hull mesh into smaller segments. Such a decomposition is indicated by the coloring in the figure. Volume meshes are then created in a parallel, distributed manner. The student should provide a C++ interface for a hull mesh decomposition... DescriptionViennaMesh is based on a set of mesh related tools and algorithms for generation, adaptation, and classification. Due to the diversity of the input geometries there is no global optimal tool chain which results in high-quality meshes for all different input meshes. The student should investigate a generic algorithm to find an optimum for the mesh generation tool chain in regard to arbitrary coupled properties, for example, reducing the mesh element size by simultanously... |