Commit ccb92991 authored by Peter Gottschling's avatar Peter Gottschling
Browse files

Demos included in repository.

parent 114c1d41
SHELL = /bin/sh
# ============================================================================
# ===== flags and directories (to be modified by the user) ===================
# ============================================================================
USE_PARALLEL_AMDIS = 0 # 1 if AMDiS was compiled with parallel support, 0 otherwise
USE_OPENMP = 0 # 1 if AMDiS was compiled with OpenMP support, 0 otherwise
USE_UMFPACK = 0 # 1 if AMDiS was compiled with the UMFPACK library, 0 otherwise
USE_SERVER = # mars, deimos or themisto. If no special server blank
USE_COMPILER = gcc # gcc or icc
USE_SMI = 0
USE_MPCCI = 0
DEBUG = 0
AMDIS_DIR = /usr/local/AMDiS
SMI_DIR =
MPCCI_DIR =
# ============================================================================
# !!! Do not edit the file after this line !!!
# ============================================================================
PARMETIS_DIR = $(AMDIS_DIR)/lib/ParMetis-3.1
# ============================================================================
# ===== includes pathes ======================================================
# ============================================================================
AMDIS_INCLUDE = -I$(AMDIS_DIR)/src
SMI_INCLUDE = -I$(SMI_DIR)/smi
MPCCI_INCLUDE = -I$(MPCCI_DIR)/include
PARMETIS_INCLUDE = -I$(PARMETIS_DIR)
PARALLEL_INCLUDE = -I$(AMDIS_DIR)/src/parallel
INCLUDES = -I. $(AMDIS_INCLUDE) $(SMI_INCLUDE) $(MPCCI_INCLUDE) -I$(SMI_DIR)/etc/commoncpp/include $(PARALLEL_INCLUDE)
# ============================================================================
# ===== libraries ============================================================
# ============================================================================
AMDIS_LIB = -L$(AMDIS_DIR)/lib -lamdis
PNG_LIB = -lpng
UMFPACK_LIB = -L$(AMDIS_DIR)/lib/AMD/Lib -L$(AMDIS_DIR)/lib/UMFPACK/Lib
ifeq ($(strip $(USE_SERVER)), mars)
UMFPACK_LIB += -lmkl
else
ifeq ($(strip $(USE_SERVER)), themisto)
UMFPACK_LIB += $(MKL_LIB) -lmkl -lguide -lpthread
else
UMFPACK_LIB += -lblas
endif
endif
UMFPACK_LIB += -lumfpack -lamd
SMI_LIB = -L$(SMI_DIR)/lib -lsmi
MPCCI_LIB = -L$(MPCCI_DIR)/lib/linux-x86-glibc22 -lmpcci
PARMETIS_LIB = -L$(PARMETIS_DIR) -lparmetis -lmetis
LIBS = $(AMDIS_LIB) $(PNG_LIB)
ifeq ($(strip $(USE_UMFPACK)), 1)
LIBS += $(UMFPACK_LIB)
endif
ifeq ($(strip $(USE_SMI)), 1)
LIBS += $(SMI_LIB)
endif
ifeq ($(strip $(USE_MPCCI)), 1)
LIBS += $(MPCCI_LIB)
endif
# ============================================================================
# ===== parallel or sequential ? =============================================
# ============================================================================
ifeq ($(strip $(USE_PARALLEL_AMDIS)), 1)
ifeq ($(strip $(USE_SERVER)), mars)
ifeq ($(strip $(USE_COMPILER)), gcc)
COMPILE = g++
else
COMPILE = icpc
endif
else
COMPILE = $(MPI_DIR)/bin/mpiCC
endif
LIBS += $(PARMETIS_LIB)
else
ifeq ($(strip $(USE_COMPILER)), gcc)
COMPILE = g++
else
COMPILE = icpc
endif
endif
# ============================================================================
# ===== compile flags ========================================================
# ============================================================================
ifeq ($(strip $(DEBUG)), 0)
CPPFLAGS = -O2
else
CPPFLAGS = -g -O0
endif
ifeq ($(strip $(USE_OPENMP)), 1)
ifeq ($(strip $(USE_COMPILER)), gcc)
CPPFLAGS += -fopenmp
else
CPPFLAGS += -openmp
endif
endif
# ============================================================================
# ===== libtool linking ======================================================
# ============================================================================
LIBTOOL = $(AMDIS_DIR)/libtool
LINK = $(LIBTOOL) --mode=link $(COMPILE)
# ============================================================================
# ===== rules ================================================================
# ============================================================================
all :
make $(PROGRAMS)
clean:
-rm -rf *.o
-rm -rf $(PROGRAMS)
.cc.o: $*.cc
$(COMPILE) $(DEFS) $(INCLUDES) $(CPPFLAGS) -c -o $*.o $^
# ============================================================================
# ===== user programs ========================================================
# ============================================================================
PROGRAMS = ellipt nonlin heat vecellipt vecnonlin vecheat sphere ball smitest parametric torus bunny navierstokes stokesnonlin vecmultigrid
VPATH = .:./src:/solhome/vey/sourcen/currentcvs/AMDiS/src
# ===== ellipt ============================================================
ELLIPT_OFILES = ellipt.o
ellipt: $(ELLIPT_OFILES)
$(LINK) $(CPPFLAGS) -o ellipt $(ELLIPT_OFILES) $(LIBS)
# ===== nonlin ============================================================
NONLIN_OFILES = nonlin.o
nonlin: $(NONLIN_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o nonlin $(NONLIN_OFILES) $(LIBS)
# ===== heat ============================================================
HEAT_OFILES = heat.o
heat: $(HEAT_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o heat $(HEAT_OFILES) $(LIBS)
# ===== vecellipt ============================================================
VECELLIPT_OFILES = vecellipt.o
vecellipt: $(VECELLIPT_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o vecellipt $(VECELLIPT_OFILES) $(LIBS)
# ===== vecnonlin ============================================================
VECNONLIN_OFILES = vecnonlin.o
vecnonlin: $(VECNONLIN_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o vecnonlin $(VECNONLIN_OFILES) $(LIBS)
# ===== vecheat ============================================================
VECHEAT_OFILES = vecheat.o
vecheat: $(VECHEAT_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o vecheat $(VECHEAT_OFILES) $(LIBS)
# ===== vecmultigrid ============================================================
VECMULTIGRID_OFILES = vecmultigrid.o
vecmultigrid: $(VECMULTIGRID_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o vecmultigrid $(VECMULTIGRID_OFILES) $(LIBS)
# ===== sphere ============================================================
SPHERE_OFILES = sphere.o
sphere: $(SPHERE_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o sphere $(SPHERE_OFILES) $(LIBS)
# ===== bunny ============================================================
BUNNY_OFILES = bunny.o
bunny: $(BUNNY_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o bunny $(BUNNY_OFILES) $(LIBS)
# ===== torus ============================================================
TORUS_OFILES = torus.o
torus: $(TORUS_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o torus $(TORUS_OFILES) $(AMDIS_LIB) $(LIBS)
# ===== ball ============================================================
BALL_OFILES = ball.o
ball: $(BALL_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o ball $(BALL_OFILES) $(LIBS)
# ===== parametric ============================================================
PARAMETRIC_OFILES = parametric.o
parametric: $(PARAMETRIC_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o parametric $(PARAMETRIC_OFILES) $(LIBS)
# ===== navierstokes ========================================================
NAVIERSTOKES_OFILES = navierstokes.o
navierstokes: $(NAVIERSTOKES_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o navierstokes $(NAVIERSTOKES_OFILES) $(LIBS)
# ===== stokes non linear========================================================
STOKESNONLIN_OFILES = stokesnonlin.o
stokesnonlin: $(STOKESNONLIN_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o stokesnonlin $(STOKESNONLIN_OFILES) $(LIBS)
# ===== smitest ============================================================
SMITEST_OFILES = smitest.o
smitest: $(SMITEST_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o smitest $(INCLUDES) $(SMITEST_OFILES) $(SMI_LIB)
# ===== mpccitest ============================================================
MPCCITEST_OFILES = mpccitest.o SMIAdapter.o MpCCIAdapter.o
mpccitest: $(MPCCITEST_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o mpccitest $(INCLUDES) $(MPCCITEST_OFILES) $(LIBS) $(MPCCI_LIB) $(SMI_LIB)
# ===== mpcci1 ============================================================
MPCCI1_OFILES = mpcci1.o SMIAdapter.o MpCCIAdapter.o
mpcci1: $(MPCCI1_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o mpcci1 $(INCLUDES) $(MPCCI1_OFILES) $(LIBS) $(MPCCI_LIB) $(SMI_LIB)
# ===== mpcci2 ============================================================
MPCCI2_OFILES = mpcci2.o SMIAdapter.o MpCCIAdapter.o
mpcci2: $(MPCCI2_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o mpcci2 $(INCLUDES) $(MPCCI2_OFILES) $(LIBS) $(MPCCI_LIB) $(SMI_LIB)
# ===== periodic ============================================================
PERIODIC_OFILES = periodic.o
periodic: $(PERIODIC_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o periodic $(INCLUDES) $(PERIODIC_OFILES) $(LIBS)
# ===== multigrid ============================================================
MULTIGRID_OFILES = multigrid.o
multigrid: $(MULTIGRID_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o multigrid $(INCLUDES) $(MULTIGRID_OFILES) $(LIBS)
# ===== bmp2amdis ============================================================
BMP2AMDIS_OFILES = bmp2amdis.o EasyBMP.o
bmp2amdis: $(BMP2AMDIS_OFILES)
$(LINK) $(CPPFLAGS) $(LDFLAGS) -o bmp2amdis $(INCLUDES) $(BMP2AMDIS_OFILES) $(LIBS)
# ===== parallelellipt =======================================================
PARALLELELLIPT_OFILES = parallelellipt.o
parallelellipt: $(PARALLELELLIPT_OFILES)
$(LINK) $(CPPFLAGS) -o parallelellipt $(PARALLELELLIPT_OFILES) $(LIBS) $(PARMETIS_LIB)
# ===== parallelheat =======================================================
PARALLELHEAT_OFILES = parallelheat.o
parallelheat: $(PARALLELHEAT_OFILES)
$(LINK) $(CPPFLAGS) -o parallelheat $(PARALLELHEAT_OFILES) $(LIBS) $(PARMETIS_LIB)
# ===== couple ============================================================
COUPLE_OFILES = couple.o
couple: $(COUPLE_OFILES)
$(LINK) $(CPPFLAGS) -o couple $(COUPLE_OFILES) $(LIBS)
# ===== nonlin2 ============================================================
NONLIN3_OFILES = nonlin3.o
nonlin3: $(NONLIN3_OFILES)
$(LINK) $(CPPFLAGS) -o nonlin3 $(NONLIN3_OFILES) $(LIBS)
# ===== neumann ============================================================
NEUMANN_OFILES = neumann.o
neumann: $(NEUMANN_OFILES)
$(LINK) $(CPPFLAGS) -o neumann $(NEUMANN_OFILES) $(LIBS)
dimension of world: 2
ballMesh->macro file name: ./macro/macro.ball.2d
ballMesh->global refinements: 3
ball->mesh: ballMesh
ball->dim: 2
ball->polynomial degree: 1
ball->solver: cg % no, bicgstab, cg, gmres, odir, ores
ball->solver->max iteration: 1000
ball->solver->restart: 10 % only used for GMRES
ball->solver->tolerance: 1.e-8
ball->solver->info: 2
ball->solver->left precon: diag
ball->solver->right precon: no
ball->estimator: residual % residual, recovery
ball->estimator->error norm: 1 % 1: H1_NORM, 2: L2_NORM
ball->estimator->C1: 0.1 % constant of jump residual
ball->estimator->C2: 0.1 % constant of coarsening estimate
ball->marker->strategy: 0 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
ball->marker->MSGamma: 0.5
ball->adapt->tolerance: 1e-8
ball->adapt->max iteration: 4
ball->adapt->info: 8
ball->output->filename: ball
ball->output->ParaView format: 1
ball->output->TecPlot format: 0
ball->output->TecPlot ext: .tec
ball->output->AMDiS format: 0
ball->output->AMDiS mesh ext: .mesh
ball->output->AMDiS data ext: .dat
ball->output->append index: 0
ball->output->index length: 6
ball->output->index decimals: 3
WAIT: 1
dimension of world: 3
ballMesh->macro file name: ./macro/macro.ball.3d
ballMesh->global refinements: 15
ball->mesh: ballMesh
ball->dim: 3
ball->polynomial degree: 1
ball->solver: cg % no, bicgstab, cg, gmres, odir, ores
ball->solver->max iteration: 1000
ball->solver->tolerance: 1.e-8
ball->solver->left precon: diag
ball->estimator: no
ball->marker->strategy: 0 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
ball->output->filename: output/ball
ball->output->ParaView format: 1
ball->output->AMDiS format: 0
ball->output->AMDiS mesh ext: .mesh
ball->output->AMDiS data ext: .dat
dimension of world: 3
bunnyMesh->macro file name: ./macro/bunny_fixed.macro
bunnyMesh->check: 0
bunnyMesh->global refinements: 0
bunny->mesh: bunnyMesh
bunny->dim: 2
bunny->polynomial degree: 1
bunny->solver: cg
bunny->solver->max iteration: 100
bunny->solver->restart: 10 % only used for GMRES
bunny->solver->tolerance: 1.e-8
bunny->solver->info: 5
bunny->solver->left precon: diag
bunny->solver->right precon: no
bunny->estimator: residual % residual, recovery
bunny->estimator->error norm: 1 % 1: H1_NORM, 2: L2_NORM
bunny->estimator->C1: 0.1 % constant of jump residual
bunny->estimator->C2: 0.1 % constant of coarsening estimate
bunny->marker->strategy: 0 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
bunny->marker->MSGamma: 0.5
bunny->adapt->tolerance: 1e-8
bunny->adapt->refine bisections: 1
bunny->adapt->max iteration: 0
bunny->adapt->info: 8
bunny->output->filename: bunny_fixed
bunny->output->ParaView format: 1
bunny->output->TecPlot format: 0
bunny->output->TecPlot ext: .tec
bunny->output->AMDiS format: 0
bunny->output->AMDiS mesh ext: .mesh
bunny->output->AMDiS data ext: .dat
bunny->output->append index: 0
bunny->output->index length: 6
bunny->output->index decimals: 3
WAIT: 1
dimension of world: 2
couple->adapt->tolerance: 1e-8
couple->adapt->max iteration: 10
couple->adapt->refine bisections: 2
coupleMesh->macro file name: ./macro/macro.stand.2d
coupleMesh->global refinements: 0
problem1->mesh: coupleMesh
problem1->dim: 2
problem1->polynomial degree: 1
problem1->solver: cg % no, bicgstab, cg, gmres, odir, ores
problem1->solver->max iteration: 1000
problem1->solver->tolerance: 1.e-8
problem1->solver->left precon: diag
problem1->estimator: residual
problem1->estimator->C0: 0.1 % constant of element residual
problem1->estimator->C1: 0.1 % constant of jump residual
problem1->marker->strategy: 2 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
problem1->marker->MSGamma: 0.5
problem1->output->filename: output/problem1
problem1->output->ParaView format: 1
problem1->output->AMDiS format: 0
problem1->output->AMDiS mesh ext: .mesh
problem1->output->AMDiS data ext: .dat
problem2->dim: 2
problem2->polynomial degree: 1
problem2->solver: cg % no, bicgstab, cg, gmres, odir, ores
problem2->solver->max iteration: 1000
problem2->solver->tolerance: 1.e-8
problem2->solver->left precon: diag
problem2->estimator: no
problem2->marker->strategy: 0
problem2->output->filename: output/problem2
problem2->output->ParaView format: 1
problem2->output->AMDiS format: 0
problem2->output->AMDiS mesh ext: .mesh
problem2->output->AMDiS data ext: .dat
dimension of world: 1
elliptMesh->macro file name: ./macro/macro.stand.1d
elliptMesh->global refinements: 3
ellipt->mesh: elliptMesh
ellipt->dim: 1
ellipt->polynomial degree: 1
ellipt->solver: cg % no, bicgstab, cg, gmres, odir, ores
ellipt->solver->max iteration: 1000
ellipt->solver->restart: 10 % only used for GMRES
ellipt->solver->tolerance: 1.e-8
ellipt->solver->info: 2
ellipt->solver->left precon: diag
ellipt->solver->right precon: no
ellipt->estimator: residual
ellipt->estimator->error norm: 1 % 1: H1_NORM, 2: L2_NORM
ellipt->estimator->C0: 0.1 % constant of element residual
ellipt->estimator->C1: 0.1 % constant of jump residual
ellipt->estimator->C2: 0.0 % constant of coarsening estimate
ellipt->adapt->tolerance: 1e-4
ellipt->adapt->max iteration: 10
ellipt->adapt->info: 8
ellipt->adapt->refine bisections: 1
ellipt->marker->strategy: 2 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
ellipt->marker->MSGamma: 0.5
ellipt->marker->info: 8
ellipt->output->filename: ellipt
ellipt->output->ParaView format: 1
ellipt->output->TecPlot format: 0
ellipt->output->TecPlot ext: .tec
ellipt->output->AMDiS format: 0
ellipt->output->AMDiS mesh ext: .mesh
ellipt->output->AMDiS data ext: .dat
ellipt->output->append index: 0
ellipt->output->index length: 6
ellipt->output->index decimals: 3
WAIT: 0
dimension of world: 2
elliptMesh->macro file name: ./macro/macro.stand.2d
elliptMesh->global refinements: 0
ellipt->mesh: elliptMesh
ellipt->dim: 2
ellipt->polynomial degree: 3
ellipt->solver: cg % no, bicgstab, cg, gmres, odir, ores
ellipt->solver->max iteration: 1000
ellipt->solver->restart: 10 % only used for GMRES
ellipt->solver->tolerance: 1.e-8
ellipt->solver->info: 2
ellipt->solver->left precon: diag
ellipt->solver->right precon: no
ellipt->estimator: residual
ellipt->estimator->error norm: 1 % 1: H1_NORM, 2: L2_NORM
ellipt->estimator->C0: 0.1 % constant of element residual
ellipt->estimator->C1: 0.1 % constant of jump residual
ellipt->estimator->C2: 0.0 % constant of coarsening estimate
ellipt->marker->strategy: 2 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
ellipt->marker->MSGamma: 0.5
ellipt->adapt->tolerance: 1e-4
ellipt->adapt->max iteration: 100
ellipt->adapt->refine bisections: 2
ellipt->output->filename: ellipt
ellipt->output->ParaView format: 1
ellipt->output->TecPlot format: 0
ellipt->output->TecPlot ext: .tec
ellipt->output->AMDiS format: 0
ellipt->output->AMDiS mesh ext: .mesh
ellipt->output->AMDiS data ext: .dat
ellipt->output->append index: 0
ellipt->output->index length: 6
ellipt->output->index decimals: 3
WAIT: 1
dimension of world: 3
elliptMesh->macro file name: ./macro/macro.stand.3d
elliptMesh->global refinements: 0
ellipt->mesh: elliptMesh
ellipt->dim: 3
ellipt->polynomial degree: 2
ellipt->solver: cg % no, bicgstab, cg, gmres, odir, ores
ellipt->solver->max iteration: 1000
ellipt->solver->restart: 10 % only used for GMRES
ellipt->solver->tolerance: 1.e-8
ellipt->solver->info: 2
ellipt->solver->left precon: diag
ellipt->solver->right precon: no
ellipt->estimator: residual
ellipt->estimator->error norm: 1 % 1: H1_NORM, 2: L2_NORM
ellipt->estimator->C1: 0.1 % constant of jump residual
ellipt->estimator->C2: 0.1 % constant of coarsening estimate
ellipt->marker->strategy: 2 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
ellipt->marker->MSGamma: 0.5
ellipt->adapt->tolerance: 1e-8
ellipt->adapt->max iteration: 5
ellipt->adapt->info: 8
ellipt->adapt->refine bisections: 3
ellipt->output->filename: ellipt
ellipt->output->ParaView format: 1
ellipt->output->TecPlot format: 0
ellipt->output->TecPlot ext: .tec
ellipt->output->AMDiS format: 0
ellipt->output->AMDiS mesh ext: .mesh
ellipt->output->AMDiS data ext: .dat
ellipt->output->append index: 0
ellipt->output->index length: 6
ellipt->output->index decimals: 3
WAIT: 0