[GRASS-dev] New grass library and modules
Markus Neteler
neteler at itc.it
Wed Jan 24 09:59:06 EST 2007
Hi Soeren,
this looks really nice and will help to better establish GRASS
as GIS workhorse also for heavy computations.
You could submit this to Computer & Geosciences as article :)
Markus
On Mon, Jan 22, 2007 at 10:10:19PM +0100, Soeren Gebbert wrote:
> Dear developers,
> i would like to submit a new library and two modules based on the new library
> into cvs.
>
> The new library called "gpde_lib" is designed to support the solution of
> partial differential equations within grass. The discretization of PDE's is
> based on raster and volume maps.
> I have implemented groundwater flow for two and three dimensions.
> Heat flow and solute transport are on my todo list.
>
> All library functions start with a N_
> eg: N_create_les() or N_alloc_array_2d().
>
> The current draft doxygen documentation is available here:
>
> http://www-pool.math.tu-berlin.de/~soeren/grass/modules/grass-pde-lib/html/
>
> I have implemented two modules based on the new library to solve confined and
> unconfined groundwater flow in two dimensions and confined groundwater flow
> in three dimensions. The two programs are still very basic and support only
> two boundary conditions (dirichlet and neumann).
>
> The modules are called r.gwflow and r3.gwflow.
>
> The grass PDE lib provied functions to create and solve lineare equation
> systems. Therefor different linear equation solvers are implemented:
> * LU decomposition for quadratic matrices (direct)
> * GAUSS elimination for quadratic matrices (direct)
> * CG method for quadratic and sparse matrices (iterative)
> * BiCGStab method for quadratic and sparse matrices (iterative)
>
> The solvers and the creation of a linear equation system (matrix assembling)
> are parallelized with OpenMP http://www.openmp.org. The speedup of the
> solvers is quite good (IMHO):
> http://www-pool.math.tu-berlin.de/~soeren/grass/modules/screenshots/sgi_altix_cg_bench.png
>
> The new library do not use functions of the gmath library to create vectors or
> matrices, or to solve a linear equation systems. There reasons are:
> 1.) I was quite unsure if the gmath library calls are thread safe
> 2.) I do not wanted to use function calls to get access to vectors and
> matrices for performance reasons
> 3.) I wanted to parallelize the equation solvers with OpenMP and therefor all
> vector and matrix operations i use
> 4.) I'm not very familiar with the gmath library
> 5.) I do not know which gmath functions need LAPACK or BLAS
>
> If those question can be clarified, it should be possible to use gmath
> functions in the gpde library.
> The only problems i see for now are, that there are two different function
> calls to perform a LU decomposition and the gpde lib do not use the matrix
> and vector structures of the gmath lib.
>
> I have implemented a lot of unit and integration tests on code basis, which
> will also be commited into cvs. Those tests assure the correct functionality
> of the lib. If the tests are compiled, a new module called test.gpde.lib is
> created and can be executed within grass to test all functions of the
> library. IMHO we should create a test structure for each library to check the
> correct functionality on function base.
>
> If there are no objections against the library, i would like to commit it to
> cvs.
>
> Best regards
> Soeren
>
> _______________________________________________
> grass-dev mailing list
> grass-dev at grass.itc.it
> http://grass.itc.it/mailman/listinfo/grass-dev
More information about the grass-dev
mailing list