Multigrid extension for NeuroFEM 
  last change: 04.03.2008  

Integration - Makefiles

To integrate the new FMG solver into the NeuroFEM package some changes in the Makefiles have to be made. This is required for:
  • Creating and linking the ParExPDE library (see corresponding page for details)
  • Creating the fmgsolver object file
  • Linking the fmgsolver object to the final executable
All those required changes are done within only two of the Makefiles. The changes in those files are listed below:
Code from file "neurofem/Makefile"
CFLAGS = -I$(SimBioHome) -I$(SimBioHome)/analysis -I$(SimBioHome)/utilities -I $(SimBioHome)/vista -ansi $(UIFCFLAGS) -Drestrict=__restrict -DPAREXPDE_CONFIG_H -Ilib/ParExPDE -Ilib/ParExPDE/src -Ilib/ParExPDE/src/common -Ilib/ParExPDE/src/geometry -Ilib/ParExPDE/src/mesh -Ilib/ParExPDE/src/storage -Ilib/ParExPDE/src/partition -Ilib/ParExPDE/src/io -Ilib/ParExPDE/src/mpi -Ilib/ParExPDE/src/exprtemp
Code from file "neurofem/Makefile"
all: anabstractgridgeneratorneurofem_c.o angridgeneratorneurofem_c.o \
angridgeneratorvista_c.o anabstractsimulatoreegmegneurofem_c.o \
ansimulatoreegmegneurofemcg_c.o clock.o \
neurofem1.o neurofem2.o neurofem3.o neurofem4.o \
neurofem5.o neurofem6.o neurofem7.o neurofem8.o \
neurofem9.o neurofem10.o neurofem11.o neurofem12.o \
neurofem13.o findobfl.o newelement.o readascii.o \
femutl.o numutl.o linpac.o ansimulatoreegmegneurofempebbles_c.o \
ansimulatoreegmegneurofemparpiluts_c.o ansimulatoreegmegneurofemparpebbles_c.o \
fmgsolver.o
Code from file "neurofem/Makefile"

fmgsolver.o : $(SimBioHome)/neurofem/fmg/fmgsolver.cpp
echo "*** Building ParExPDE library for FMGSolver ***";
(cd $(SimBioHome)/neurofem/lib/ParExPDE; python scons/scons.py)
$(CCCompiler) $(OPT) -c -o fmgsolver.o $(SimBioHome)/neurofem/fmg/fmgsolver.cpp $(CFLAGS)
echo "*** Finished building FMGSolver ***";

Code from file "uif/Makefile_linux_opt"
CFLAGS = -Wno-deprecated \
-I$(SimBioHome) -I$(SimBioHome)/analysis -I$(SimBioHome)/utilities \
-I$(SimBioHome)/vista -ansi $(UIFCFLAGS) -Drestrict=__restrict -DPAREXPDE_CONFIG_H -I../neurofem/lib/ParExPDE -I../neurofem/lib/ParExPDE/src -I../neurofem/lib/ParExPDE/src/common -I../neurofem/lib/ParExPDE/src/geometry -I../neurofem/lib/ParExPDE/src/mesh -I../neurofem/lib/ParExPDE/src/storage -I../neurofem/lib/ParExPDE/src/partition -I../neurofem/lib/ParExPDE/src/io -I../neurofem/lib/ParExPDE/src/mpi -I../neurofem/lib/ParExPDE/src/exprtemp
Code from file "uif/Makefile_linux_opt"
LIBS = $(UIFLIBS) -lneurofem$(SUFFIX) -linverse$(SUFFIX) -lnewinverse$(SUFFIX)\
$(SOLVERLIBS) $(SOLVERLIBS) $(PILUTSLIBS) -L$(SimBioHome)/neurofem/lib \
-lsolver$(SUFFIX) -lfofu$(SUFFIX) -lime$(SUFFIX) \
$(LAPACK) $(EXTRA_LIBS) \
-L../neurofem/lib/ParExPDE/lib -lparexpde