Commit d71d23a3 authored by Matthew Ellis's avatar Matthew Ellis
Browse files

Merge remote-tracking branch 'origin/develop' into poly_expansion_methods

parents a3b3f4dd 72fb8269
......@@ -141,3 +141,8 @@ include/base/*Revision.h
# phase_field/tests/solution_rasterizer
out.xyz
# Nek5000 run files
*.sch
SESSION.NAME
nek5000
......@@ -3,7 +3,7 @@
###############################################################################
#
# Optional Environment variables
# MOOSE_DIR - Root directory of the MOOSE project
# MOOSE_DIR - Root directory of the MOOSE project
#
###############################################################################
# Use the MOOSE submodule if it exists and MOOSE_DIR is not set
......@@ -20,14 +20,20 @@ include $(FRAMEWORK_DIR)/build.mk
include $(FRAMEWORK_DIR)/moose.mk
################################## MODULES ####################################
ALL_MODULES := yes
include $(MOOSE_DIR)/modules/modules.mk
SOLID_MECHANICS := yes
CONTACT := yes
HEAT_CONDUCTION := yes
WATER_STEAM_EOS := yes
MISC := yes
PHASE_FIELD := yes
XFEM := yes
include $(MOOSE_DIR)/modules/modules.mk
###############################################################################
# dep apps
APPLICATION_DIR := $(CURDIR)
APPLICATION_NAME := MOON
BUILD_EXEC := yes
APPLICATION_NAME := moon
APP_REV_HEADER := $(CURDIR)/include/base/MoonRevision.h
DEP_APPS := $(shell $(FRAMEWORK_DIR)/scripts/find_dep_apps.py $(APPLICATION_NAME))
include $(FRAMEWORK_DIR)/app.mk
......
......@@ -3,16 +3,16 @@
# (c) 2008,2009,2010 UCHICAGO ARGONNE, LLC
# source path
SOURCE_ROOT="$HOME/Nek5000"
SOURCE_ROOT=$(dirname $(dirname $(pwd)))/Nek5000
SOURCE_ROOT_CORE="$SOURCE_ROOT/core"
SOURCE_ROOT_JL="$SOURCE_ROOT/jl"
SOURCE_ROOT_CMT="$SOURCE_ROOT/core/cmt"
# Fortran compiler
F77="mpif77"
F77="mpif77 -Wa,-q -Wl,-no_compact_unwind"
# C compiler
CC="mpicc"
CC="mpicc -Wl,-no_compact_unwind"
# pre-processor symbol list
# (set PPLIST=? to get a list of available symbols)
......@@ -88,5 +88,5 @@ fi
# do some checks and create makefile
source $SOURCE_ROOT_CORE/makenek.inc
# compile
make -j4 -f makefile 2>&1 | tee compiler.out
make -j4 -f makefile.nek nek5000 lib 2>&1 | tee compiler.out
exit 0
......@@ -414,8 +414,8 @@ if [ "$USR_LIB" != "" ]; then
fi
# tweak makefile template
echo "generating makefile ..."
rm -rf makefile 2>/dev/null
echo "generating makefile.nek ..."
rm -rf makefile.nek 2>/dev/null
sed -e "s:^F77[ ]*=.*:F77\:=$F77:" \
-e "s:^CC[ ]*=.*:CC\:=$CC:" \
......@@ -479,7 +479,7 @@ if [ "$IFVISIT" == "true" -o "$IFVISIT" == "yes" ]; then
fi
if [ "$USR" != "" ]; then
echo "###########################################################" >> makefile
echo "###########################################################" >> makefile.nek
echo "include makefile_usr.inc" >> .makefile
fi
......@@ -487,7 +487,7 @@ if [ -f .makefile ]; then
sed -e "1i\\
### makefile automatically created by makenek `date +"%m/%d/%Y %T"` ###" \
-e "s:^CASEDIR[ ]*=.*:CASEDIR\:=${CASEDIR}:" \
-e "s:^CASENAME[ ]*=.*:CASENAME\:=${CASENAME}:" .makefile > makefile
-e "s:^CASENAME[ ]*=.*:CASENAME\:=${CASENAME}:" .makefile > makefile.nek
else
echo "ERROR: Nek Makefile could not be created!"
exit 1
......
BINNAME=nek5000
LIBNAME=libnek5000.a
CASENAME=
CASEDIR=
S=
S2=
J=
OPT_INCDIR:=./
OBJDIR=obj
IFMPI=
IFCMT=
IFAMG=
IFAMG_DUMP=
IFNEKNEK=
IFMOAB=
MOAB_DIR=
F77=
CC=
P=
PPPO=
PPS=
G=
OPT_FLAGS_STD=
USR=
USR_LFLAGS=
IFVISIT=
VISIT_IFLAGS=
VISIT_LFLAGS=
################################################################################
lFLAGS = $(USR_LFLAGS)
PPS_F = $(patsubst %,$(PPPO)-D%,$(PPS))
PPS_C = $(patsubst %,-D%,$(PPS))
# CORE##########################################################################
CORE = drive.o drive1.o drive2.o \
plan4.o bdry.o coef.o conduct.o connect1.o connect2.o \
dssum.o edgec.o eigsolv.o gauss.o genxyz.o navier1.o makeq.o \
navier0.o navier2.o navier3.o navier4.o prepost.o speclib.o \
map2.o turb.o mvmesh.o ic.o ssolv.o planx.o math.o mxm_wrapper.o \
hmholtz.o gfdm_par.o gfdm_op.o gfdm_solve.o subs1.o subs2.o \
genbox.o gmres.o hsmg.o convect.o induct.o perturb.o \
navier5.o navier6.o navier7.o navier8.o fast3d.o fasts.o calcz.o \
byte.o chelpers.o byte_mpi.o postpro.o \
cvode_driver.o nek_comm.o \
vprops.o qthermal.o cvode_aux.o makeq_aux.o \
papi.o nek_in_situ.o \
readat_new.o finiparser.o iniparser.o dictionary.o
################################################################################
# MXM
MXM = mxm_std.o
################################################################################
# LAPACK
LPACK = dsygv.o ssygv.o
# JL Routines ###################################################################
JO = jl_
JLCORE = $(JO)gs.o $(JO)sort.o $(JO)sarray_transfer.o $(JO)sarray_sort.o \
$(JO)gs_local.o $(JO)crystal.o $(JO)comm.o $(JO)tensor.o $(JO)fail.o \
$(JO)fcrystal.o
# JL INTERPOLATION
JLINTP = $(JO)findpts.o $(JO)findpts_local.o \
$(JO)obbox.o $(JO)poly.o $(JO)lob_bnd.o \
$(JO)findpts_el_3.o $(JO)findpts_el_2.o
# YP NEKNEK SOLVER
ifeq ($(IFNEKNEK),true)
NEKNEKO := multimesh.o
else
NEKNEKO := singlmesh.o
endif
# JL CRS GRID SOLVER
ifeq ($(IFAMG),true)
CGS := $(JO)amg.o $(JO)fcrs.o
else
CGS = $(JO)sparse_cholesky.o $(JO)xxt.o $(JO)fcrs.o
endif
JL := -DPREFIX=jl_
ifeq ($(IFAMG_DUMP),true)
JL := ${JL} -DAMG_DUMP
endif
COMM_MPI := comm_mpi.o
ifeq ($(IFMPI),false)
COMM_MPI := ${COMM_MPI} mpi_dummy.o
endif
# IFCMT append *.o files to CORE
CMTCORE := drive1_cmt.o drive2_cmt.o driver3_cmt.o \
face.o ausm.o MixtPerf.o intpdiff.o diffusive_cmt.o eqnsolver_cmt.o surface_fluxes.o \
bc.o inflow_bc.o outflow_bc.o wall_bc.o step.o \
filters_cmt.o diagnostics.o
# VISIT ########################################################################
ifeq ($(IFVISIT),true)
VISITNEK_INCLUDES:=-I$S/3rd_party
VISITO := visit.o
lFLAGS := ${lFLAGS} $(VISIT_LFLAGS)
endif
# MOAB #########################################################################
ifeq ($(IFMOAB),true)
MOABNEK_INCLUDES:=-I$S/3rd_party
include $(MOAB_DIR)/lib/iMesh-Defs.inc
MOABO := moab.o imeshutil.o imeshcutil.o
lFLAGS := $(IMESH_LFLAGS) $(IMESH_LIBS) ${lFLAGS}
endif
ifeq ($(IFMPI),false)
DUMMY:= $(shell cp $S/mpi_dummy.h $S/mpif.h)
else
DUMMY:= $(shell rm -rf $S/mpif.h)
endif
ifeq ($(IFCMT),true)
TMP1 = $(CORE) $(CMTCORE) $(MXM) $(USR) $(MOABO) $(COMM_MPI) $(NEKNEKO) $(VISITO) $(LPACK)
else
TMP1 = $(CORE) cmt_dummy.o $(MXM) $(USR) $(MOABO) $(COMM_MPI) $(NEKNEKO) $(VISITO) $(LPACK)
endif
NOBJS_F = $(patsubst %,$(OBJDIR)/%,$(TMP1))
TMP2 = $(JLCORE) $(JLINTP) $(CGS)
NOBJS_C = $(patsubst %,$(OBJDIR)/%,$(TMP2))
NOBJS = $(NOBJS_F) $(NOBJS_C)
L0 = $(G) -O0
L2 = $(G) $(OPT_FLAGS_STD)
L3 = $(G) $(OPT_FLAGS_STD)
L4 = $(L3)
FL0 = $(L0) $(P) $(PPS_F) -I$(CASEDIR) -I$S -I$(OPT_INCDIR)
FL2i4 = $(L0) $(PPS_F) -I$(CASEDIR) -I$S -I$(OPT_INCDIR)
FL2 = $(L2) $(P) $(PPS_F) -I$(CASEDIR) -I$S -I$(S2) -I$(OPT_INCDIR)
FL3 = $(L3) $(P) $(PPS_F) -I$(CASEDIR) -I$S -I$(OPT_INCDIR)
FL4 = $(L4) $(P) $(PPS_F) -I$(CASEDIR) -I$S -I$(OPT_INCDIR)
cFL0 = $(L0) $(PPS_C) -I$J
cFL2 = $(L2) $(PPS_C) -I$J
cFL3 = $(L3) $(PPS_C) -I$J
cFL4 = $(L4) $(PPS_C) -I$J
################################################################################
objdir:
@mkdir $(OBJDIR) 2>/dev/null; cat /dev/null
exec: objdir $(NOBJS)
$(F77) -c $(FL2) $(CASEDIR)/${CASENAME}.f $(MOABNEK_INCLUDES) $(VISITNEK_INCLUDES) $(IMESH_INCLUDES) -o ${OBJDIR}/${CASENAME}.o
$(F77) -o ${BINNAME} $G ${OBJDIR}/${CASENAME}.o $(NOBJS) $(lFLAGS)
@if test -f ${BINNAME}; then \
echo "#############################################################"; \
echo "# Compilation successful! #"; \
echo "#############################################################"; \
size ${BINNAME}; \
echo ""; \
echo "$(NEK_WARN)"; \
else \
echo -e "\033[1;31;38m" "ERROR: Compilation failed!"; \
echo -e "\033[0m"; \
fi
ifeq ($(IFMPI),false)
@rm -rf $S/mpif.h
endif
lib: objdir $(NOBJS)
$(AR) cru ${LIBNAME} $(NOBJS)
ranlib ${LIBNAME}
clean:
rm -rf ./obj ${BINNAME}
ifeq ($(IFMPI),false)
@rm -rf $S/mpif.h
endif
$(NOBJS_F) : SIZE
# NEK CORE ##################################################################
$(OBJDIR)/drive.o :$S/drive.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/drive1.o :$S/drive1.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/drive2.o :$S/drive2.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/prepost.o :$S/prepost.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/postpro.o :$S/postpro.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/connect1.o :$S/connect1.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/connect2.o :$S/connect2.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/edgec.o :$S/edgec.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/genxyz.o :$S/genxyz.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/subs1.o :$S/subs1.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/subs2.o :$S/subs2.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/turb.o :$S/turb.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/map2.o :$S/map2.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/mvmesh.o :$S/mvmesh.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/induct.o :$S/induct.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/convect.o :$S/convect.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/perturb.o :$S/perturb.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/genbox.o :$S/genbox.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/hsmg.o :$S/hsmg.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/gmres.o :$S/gmres.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/papi.o :$S/papi.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/bdry.o :$S/bdry.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/ic.o :$S/ic.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/conduct.o :$S/conduct.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/navier0.o :$S/navier0.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/navier2.o :$S/navier2.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/navier3.o :$S/navier3.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/navier4.o :$S/navier4.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/navier5.o :$S/navier5.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/navier6.o :$S/navier6.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/navier7.o :$S/navier7.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/navier8.o :$S/navier8.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/speclib.o :$S/speclib.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/calcz.o :$S/calcz.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/fast3d.o :$S/fast3d.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/dssum.o :$S/dssum.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/eigsolv.o :$S/eigsolv.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/gauss.o :$S/gauss.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/planx.o :$S/planx.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/ssolv.o :$S/ssolv.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/gfdm_par.o :$S/gfdm_par.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/gfdm_solve.o :$S/gfdm_solve.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/gfdm_op.o :$S/gfdm_op.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/coef.o :$S/coef.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/plan4.o :$S/plan4.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/qthermal.o :$S/qthermal.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/vprops.o :$S/vprops.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/cvode_driver.o :$S/cvode_driver.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/cvode_aux.o :$S/cvode_aux.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/makeq.o :$S/makeq.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/makeq_aux.o :$S/makeq_aux.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/hmholtz.o :$S/hmholtz.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/navier1.o :$S/navier1.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/fasts.o :$S/fasts.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/comm_mpi.o :$S/comm_mpi.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/mpi_dummy.o :$S/mpi_dummy.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/byte_mpi.o :$S/byte_mpi.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/math.o :$S/math.f; $(F77) -c $(FL4) $< -o $@
$(OBJDIR)/multimesh.o :$S/multimesh.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/singlmesh.o :$S/singlmesh.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/lb_setqvol.o :$S/lb_setqvol.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/cmt_dummy.o :$S/cmt_dummy.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/readat_new.o :$S/readat_new.f $S/PARDICT; $(F77) -c $(FL2) $< -o $@
# CMT CORE ##################################################################
$(OBJDIR)/step.o :$(S2)/step.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/drive1_cmt.o :$(S2)/drive1_cmt.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/drive2_cmt.o :$(S2)/drive2_cmt.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/driver3_cmt.o :$(S2)/driver3_cmt.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/gradient_solver.o :$(S2)/gradient_solver.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/eqnsolver_cmt.o :$(S2)/eqnsolver_cmt.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/ausm.o :$(S2)/ausm.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/face.o :$(S2)/face.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/bc.o :$(S2)/bc.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/surface_fluxes.o :$(S2)/surface_fluxes.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/diffusive_cmt.o :$(S2)/diffusive_cmt.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/MixtPerf.o :$(S2)/MixtPerf.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/intpdiff.o :$(S2)/intpdiff.f; $(F77) -c $(FL2) $< -o $@
#$(OBJDIR)/numerical_flux_cmt.o :$(S2)/numerical_flux_cmt.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/inflow_bc.o :$(S2)/inflow_bc.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/outflow_bc.o :$(S2)/outflow_bc.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/wall_bc.o :$(S2)/wall_bc.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/filters_cmt.o :$(S2)/filters_cmt.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/diagnostics.o :$(S2)/diagnostics.f; $(F77) -c $(FL2) $< -o $@
# MXM ############################################################################
$(OBJDIR)/mxm_wrapper.o :$S/mxm_wrapper.f; $(F77) -c $(FL2) $< -o $@
$(OBJDIR)/mxm_std.o :$S/mxm_std.f; $(F77) -c $(FL4) $< -o $@
$(OBJDIR)/mxm_bgq.o :$S/mxm_bgq.f; $(F77) -c $(FL4) $< -o $@
$(OBJDIR)/k10_mxm.o :$S/k10_mxm.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/bg_aligned3.o :$S/bg_aligned3.s; $(CC) -c $< -o $@
$(OBJDIR)/bg_mxm3.o :$S/bg_mxm3.s; $(CC) -c $< -o $@
$(OBJDIR)/bg_mxm44.o :$S/bg_mxm44.s; $(CC) -c $< -o $@
$(OBJDIR)/bg_mxm44_uneven.o :$S/bg_mxm44_uneven.s; $(CC) -c $< -o $@
# C Files ##################################################################################
$(OBJDIR)/nek_comm.o :$S/nek_comm.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/byte.o :$S/byte.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/chelpers.o :$S/chelpers.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)fail.o :$(J)/fail.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)tensor.o :$(J)/tensor.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)sort.o :$(J)/sort.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)sarray_sort.o :$(J)/sarray_sort.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)comm.o :$(J)/comm.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)crystal.o :$(J)/crystal.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)sarray_transfer.o :$(J)/sarray_transfer.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)fcrystal.o :$(J)/fcrystal.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)gs.o :$(J)/gs.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)gs_local.o :$(J)/gs_local.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)fcrs.o :$(J)/fcrs.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)xxt.o :$(J)/xxt.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)sparse_cholesky.o :$(J)/sparse_cholesky.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)amg.o :$(J)/amg.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)findpts.o :$(J)/findpts.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)findpts_local.o :$(J)/findpts_local.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)obbox.o :$(J)/obbox.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)poly.o :$(J)/poly.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)lob_bnd.o :$(J)/lob_bnd.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)findpts_el_3.o :$(J)/findpts_el_3.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/$(JO)findpts_el_2.o :$(J)/findpts_el_2.c; $(CC) -c $(cFL2) $(JL) $< -o $@
# 3rd party #######################################################################################
$(OBJDIR)/dsygv.o :$S/3rd_party/dsygv.f; $(F77) -c $(FL2i4) $< -o $@
$(OBJDIR)/ssygv.o :$S/3rd_party/ssygv.f; $(F77) -c $(FL2i4) $< -o $@
$(OBJDIR)/blas.o :$S/3rd_party/blas.f; $(F77) -c $(FL2i4) $< -o $@
$(OBJDIR)/moab.o :$S/3rd_party/moab.f; $(F77) -c $(FL2) $(IMESH_INCLUDES) $< -o $@
$(OBJDIR)/imeshutil.o :$S/3rd_party/imeshutil.f; $(F77) -c $(FL2) $(IMESH_INCLUDES) $< -o $@
$(OBJDIR)/imeshcutil.o :$S/3rd_party/imeshcutil.c; $(CC) -c $(cFL2) $< -o $@
$(OBJDIR)/visit.o :$S/3rd_party/visit.f; $(F77) -c $(VISIT_IFLAGS) $(FL2) $< -o $@
$(OBJDIR)/nek_in_situ.o :$S/3rd_party/nek_in_situ.f; $(F77) -c $(VISIT_IFLAGS) $(FL2) $< -o $@
$(OBJDIR)/finiparser.o :$S/3rd_party/finiparser.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/iniparser.o :$S/3rd_party/iniparser.c; $(CC) -c $(cFL2) $(JL) $< -o $@
$(OBJDIR)/dictionary.o :$S/3rd_party/dictionary.c; $(CC) -c $(cFL2) $(JL) $< -o $@
# Assume that NEK_DIR and NEK_CASENAME are defined by parent Makefile
$(NEK_OBJ): run_makenek
#all:: $(NEK_OBJ) $(NEK_LIB) SESSION.NAME
run_makenek:
$(NEK_SOURCE_DIR)/core/makenek $(NEK_CASENAME) $(NEK_SOURCE_DIR)
SESSION.NAME:
echo $(NEK_CASENAME) > SESSION.NAME && echo $(NEK_CASE_DIR) >> SESSION.NAME
.PHONY: run_makenek
$(NEK_LIB): run_makenek
make lib
# This test solves a 1D transient heat equation
# The error is caclulated by comparing to the analytical solution
# The problem setup and analytical solution are taken from "Advanced Engineering
# Mathematics, 10th edition" by Erwin Kreyszig.
# http://www.amazon.com/Advanced-Engineering-Mathematics-Erwin-Kreyszig/dp/0470458364
# It is Example 1 in section 12.6 on page 561
[Mesh]
type = GeneratedMesh
dim = 2
nx = 40
ny = 40
xmax = 80
ymax = 80
[]
[Variables]
[./T]
[../]
[]
[Kernels]
[./HeatSource]
type = HeatSource
function = '100*sin(3.14159*x/80)*sin(3.14159*y/80)'
variable = T
[../]
[./HeatDiff]
type = HeatConduction
variable = T
[../]
[./HeatTdot]
type = HeatConductionTimeDerivative
variable = T
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = T
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = T
boundary = right
value = 0
[../]
[./top]
type = DirichletBC
variable = T
boundary = top
value = 0
[../]
[./bottom]
type = DirichletBC
variable = T
boundary = bottom
value = 0
[../]
[]
[Materials]
[./k]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity'
prop_values = '0.95' #copper in cal/(cm sec C)
block = 0
[../]
[./cp]
type = GenericConstantMaterial
prop_names = 'specific_heat'
prop_values = '0.092' #copper in cal/(g C)
block = 0
[../]
[./rho]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = '8.92' #copper in g/(cm^3)
block = 0
[../]
[]
[Postprocessors]
[./error]
type = NodalL2Error
function = '100*sin(3.14159*x/80)*exp(-0.95/(0.092*8.92)*3.14159^2/80^2*t)' #T(x,t) = 100sin(pix/L)exp(-rho/(cp k) pi^2/L^2 t)
variable = T
[../]
[]
[Executioner]
type = Transient
scheme = bdf2
nl_rel_tol = 1e-12
l_tol = 1e-6
dt = 2
end_time = 100
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
print_perf_log = true
[]
# This test solves a 1D transient heat equation
# The error is caclulated by comparing to the analytical solution
# The problem setup and analytical solution are taken from "Advanced Engineering
# Mathematics, 10th edition" by Erwin Kreyszig.
# http://www.amazon.com/Advanced-Engineering-Mathematics-Erwin-Kreyszig/dp/0470458364
# It is Example 1 in section 12.6 on page 561
[Mesh]
type = GeneratedMesh
dim = 2
nx = 40
ny = 40
xmax = 80
ymax = 80
[]
[Variables]
[./T]
[../]
[]
[Kernels]
[./HeatSource]
type = HeatSource
function = '100*sin(3.14159*x/80)*sin(3.14159*y/80)'
variable = T
[../]
[./HeatDiff]
type = HeatConduction
variable = T
[../]
[./HeatTdot]
type = HeatConductionTimeDerivative
variable = T
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = T
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = T
boundary = right
value = 0
[../]
[./top]
type = DirichletBC
variable = T
boundary = top
value = 0
[../]
[./bottom]
type = DirichletBC
variable = T
boundary = bottom
value = 0
[../]
[]
[Materials]
[./k]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity'
prop_values = '0.95' #copper in cal/(cm sec C)
block = 0
[../]
[./cp]
type = GenericConstantMaterial
prop_names = 'specific_heat'
prop_values = '0.092' #copper in cal/(g C)
block = 0
[../]
[./rho]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = '8.92' #copper in g/(cm^3)
block = 0
[../]