To home page

Fast finite element solvers

Home page
About the solver This is a fast parallel finite-element solver based on 4-byte floats. You can apply it to solutions of banded finite-element systems.
The solver is in FEMMatrix.dll with the header for it in FEMMatrix.h and the library in FEMMatrix.lib, all contained in the sample VC++ 6.0 project (see the fifem.zip file).
The main features are the following :
  • the matrix is banded, and can be either symmetric and non-symmetric
  • the matrix is stored by diagonals close to main diagonal
  • the solution is based on 4-byte float parallel XMM operations (arithmentic operations are applied to 4 floats at once)
  • no (partial) pivoting is performed as usually finite element systems are well-conditioned
  • because of this 4-byte float basis, due to roundup errors, solutions to systems of orders up to appox. 100000 are possible (check residuals by Multiply()) - depends on the equation
  • solution is very fast, it takes less than a second on Pentium III for a system of 10000 with bandwidth of 1/10 (1000)
  • the whole system is in virtual memory
  • Contents of the sample project

    The sample code is used to test FAST parallel finite-element solver contained in FEMMatrix.dll and FEMMatrix.lib (see description in FEMMatrix.h).
    The code contains two tests, one being a solution to an arbitrary banded system; the second is an application of a finite element algorithm to a numerical financial problem.

    Test number 1 is written to get an idea of speedup achieved by the parallelisation; this time we consider not a very large system of equations and just compare execution times spent by a sample regular solver written in C and the fast parallel solver written in assembly.

    Test number 2 is a true finite element solution, we are solving a sample taken from Financial Engineering with Finite Elements by J.Topper, page 191 which corresponds to a first exit time of two-asset pricing problem formulated as

    where S1,S2 - prices of two assets (option prices)
    - volatilities
    D - dividends
    r - interest rate
    u - first exit time

    © Copyright 2007..2009 MI Simulators