← Back to team overview

dolfin team mailing list archive

Re: [HG] Fix compilation with --disable-petsc. (Should work now Ã…smund.)

 

On Thu, May 25, 2006 at 10:02:26AM +0200, Garth N. Wells wrote:
> What's the motivation behind allowing PETSc to be disabled? Is it to allow the
> mesh library to be compiled without having PETSc installed? The problem with
> disabling PETSc is that it removes 95% of DOLFIN functionality, and bearing this
> in mind becomes intrusive in large parts of the code (a finite element assembly
> library which has no sparse linear algerbra :) ). Almost every demo will be full
> of ifdefs. A better approach would be to set an option to get the 5% that is
> needed. Depending exactly what's needed I would suggest
> 
> 1) Adding something link "make mesh" to compile individual components that are
> desried
> 
> 2) Adding some basic linear algerbra functionality for sparse matrices and a
> linear solver. uBlas could be used for this. This way, everything will work,
> just not optimally or in parallel and with a reduced set of features.
> 
> Garth

The motivation is that the DOLFIN mesh library (but not the linear
algebra and not the assembly) is used in PyCC, the Python Computing
Components framework developed at Simula. Not needing to download,
configure, compile and install PETSc saves a lot of work.

I like option 2 best. We could even use the current dense matrices and
vectors for this. The current assembly works entirely through
GenericMatrix so it should work fine to assemble and solve PDEs
without PETSc. What about trying to implement all interfaces in terms
of GenericMatrix? The demos can use Matrix/Vector. If DOLFIN is
compiled with PETSc support, then Matrix is a typedef of SparseMatrix
and otherwise it is a typedef of DenseMatrix. All the ifdefs should
only need to be in the linear algebra classes, the rest of the code
should not need to care.

/Anders


> 
> Quoting DOLFIN <dolfin@xxxxxxxxxx>:
> 
> > One or more new changesets pushed to the primary DOLFIN repository.
> > A short summary of the last three changesets is included below.
> > 
> > changeset:   1945:a4821a8dc6ccd257033f8ff6987c88c6c76d45e7
> > tag:         tip
> > user:        "Anders Logg <logg@xxxxxxxxx>"
> > date:        Thu May 25 00:33:42 2006 +0200
> > files:       src/demo/fem/simple/main.cpp src/kernel/fem/FEM.cpp
> > src/kernel/fem/dolfin/FEM.h src/kernel/io/File.cpp
> > src/kernel/io/GenericFile.cpp src/kernel/io/dolfin/File.h
> > src/kernel/io/dolfin/GenericFile.h src/kernel/la/dolfin/Matrix.h
> > src/kernel/la/dolfin/Vector.h src/kernel/nls/NonlinearProblem.cpp
> > src/kernel/nls/dolfin/NonlinearProblem.h src/kernel/ode/ReducedModel.cpp
> > src/kernel/ode/dolfin/ReducedModel.h
> > description:
> > Fix compilation with --disable-petsc. (Should work now Ã…smund.)
> > 
> > A number of the demos don't compile without PETSc, but all libraries compile
> > fine. We should remove the dependence on PETSc and work through
> > GenericMatrix
> > as much as possible. We should also consider doing a typedef of DenseMatrix
> > to
> > Matrix when running with --disable-petsc (instead of SparseMatrix).
> > 
> > We should set up a compilation bot on fenics.org to create nightly builds
> > for various combinations of configurations. Otherwise we'll run into trouble
> > with flags that we rarely use (like --disable-petsc).
> > 
> > 
> > changeset:   1944:21e1173b19853a06ab8f44a3a84433668134c683
> > user:        "Anders Logg <logg@xxxxxxxxx>"
> > date:        Thu May 25 00:08:21 2006 +0200
> > files:       Makefile.in aclocal.m4 configure src/Makefile.in
> > src/bench/Makefile.in src/bench/fem/Makefile.in src/bench/ode/Makefile.in
> > src/config/Makefile.in src/demo/Makefile.in src/demo/fem/Makefile.in
> > src/demo/nls/Makefile.in src/demo/ode/Makefile.am src/demo/ode/Makefile.in
> > src/demo/ode/aliev-panfilov/Makefile src/demo/ode/aliev-panfilov/main.cpp
> > src/demo/ode/courtemanche/Makefile src/demo/ode/courtemanche/main.cpp
> > src/demo/ode/homotopy/Makefile.in src/demo/pde/Makefile.in
> > src/demo/pde/nonlinear/Makefile.in src/demo/pde/stokes/Makefile.in
> > src/demo/scripting/Makefile.in src/demo/solvers/Makefile.in
> > src/demo/solvers/navierstokes/Makefile.in src/greeting/Makefile.in
> > src/kernel/Makefile.in src/kernel/common/Makefile.in
> > src/kernel/common/dolfin/Makefile.in src/kernel/fem/Makefile.in
> > src/kernel/fem/dolfin/Makefile.in src/kernel/form/Makefile.in
> > src/kernel/form/dolfin/Makefile.in src/kernel/function/Makefile.in
> > src/kernel/function/dolfin/Makefile.in src/kernel/io/Makefile.in sr
> >  c/kernel/io/dolfin/Makefile.in src/kernel/la/Makefile.in
> > src/kernel/la/dolfin/Makefile.in src/kernel/log/Makefile.in
> > src/kernel/log/dolfin/Makefile.in src/kernel/main/Makefile.in
> > src/kernel/main/dolfin/Makefile.in src/kernel/math/Makefile.in
> > src/kernel/math/dolfin/Makefile.in src/kernel/mesh/Makefile.in
> > src/kernel/mesh/dolfin/Makefile.in src/kernel/nls/Makefile.in
> > src/kernel/nls/dolfin/Makefile.in src/kernel/ode/Makefile.in
> > src/kernel/ode/dolfin/Makefile.in src/kernel/parameter/Makefile.in
> > src/kernel/parameter/dolfin/Makefile.in src/kernel/pde/Makefile.in
> > src/kernel/pde/dolfin/Makefile.in src/kernel/quadrature/Makefile.in
> > src/kernel/quadrature/dolfin/Makefile.in src/lib/Makefile.in
> > src/modules/Makefile.in src/modules/convdiff/Makefile.in
> > src/modules/convdiff/dolfin/Makefile.in src/modules/dolfin/Makefile.in
> > src/modules/elasticity-updated/Makefile.in
> > src/modules/elasticity-updated/dolfin/Makefile.in
> > src/modules/elasticity/Makefile.in src/modules/elasticity/dolfin/Makefile.in
> > 
> >  src/modules/heat/Makefile.in src/modules/heat/dolfin/Makefile.in
> > src/modules/navierstokes/Makefile.in
> > src/modules/navierstokes/dolfin/Makefile.in src/modules/poisson/Makefile.in
> > src/modules/poisson/dolfin/Makefile.in src/modules/stokes/Makefile.in
> > src/modules/stokes/dolfin/Makefile.in src/post/Makefile.in
> > src/pre/Makefile.in src/pydolfin/Makefile.in src/utils/Makefile.in
> > src/utils/convert/Makefile.in src/utils/inp2dx/Makefile.in
> > description:
> > Add cell models for cardiac excitation (Aliev-Panfilov and Courtemanche)
> > as new ODE demos. Thanks to Ola and Glenn for supplying the examples.
> > This is just a first test but the results look reasonable. Will look
> > more into speeding up the computation next.
> > 
> > 
> > changeset:   1943:16d5a8e397c062a86a04d50418573a609f6ef321
> > user:        "Garth N. Wells <g.n.wells@xxxxxxxxxx>"
> > date:        Wed May 24 14:08:37 2006 +0200
> > files:       src/utils/convert/dolfin-convert
> > description:
> > Read number of "tags" before connectivity when converting meshes from gmsh.
> > 
> > 
> > -------------------------------------------------------
> > For more details, visit http://www.fenics.org/hg/dolfin
> > 
> > _______________________________________________
> > DOLFIN-dev mailing list
> > DOLFIN-dev@xxxxxxxxxx
> > http://www.fenics.org/cgi-bin/mailman/listinfo/dolfin-dev
> > 



Follow ups

References