##############################################################
#
# Makefile for MonolithFEsqr
#
##############################################################
ABACALL=abaqus
MATERIAL=Mises
UELlibDIR=$(abspath ../uellib/lib/)
UELDIR=$(abspath ../uel-large-deformation/src/)
MATERIALDIR=$(abspath ../uel-large-deformation/materialroutines/${MATERIAL})
MAINSRC=UMATmacro.f
RESULT=UMATmacro-std.o
OUTPUTNAME:=MonolithFE2_${MATERIAL}.o

###
TRG=bin/${OUTPUTNAME}
INCLPATH=${UELlibDIR}:${UELDIR}:${MATERIALDIR}
SRC := $(wildcard src/*.f) $(wildcard src/*.f90) $(wildcard src/*.f95)
VERIFICACATIONCASESIMPLE=examples/homogenous/uniaxial_tension/Job_1
VERIFICACATIONCASEMEDIUM=examples/bimaterial/Job_1
VERIFICACATIONCASECOMPLEX=examples/sharp_notched_beam_2D/Job_1
NCPUS=2

build: ${TRG}

#Note CPATH is read as include path by ifort
${TRG}: src/${MAINSRC}
	cd src; export CPATH=${INCLPATH}; ${ABACALL} make library=${MAINSRC}
	rm -f src/libstandardU.so
	mv -f src/${RESULT}  bin/${OUTPUTNAME}

move: 
	cd src
	mv src/UMATmacro-std.o  bin/${OUTPUTNAME}

clean:
	rm -f ${TRG}

#verification examples
verify: verifysimple verifymedium verifycomplex

verifysimple: $(addsuffix .sta, $(basename ${VERIFICACATIONCASESIMPLE}))

verifymedium: $(addsuffix .sta, $(basename ${VERIFICACATIONCASEMEDIUM}))

verifycomplex: $(addsuffix .sta, $(basename ${VERIFICACATIONCASECOMPLEX}))

%.sta: %.inp ${TRG}
	cd $(dir $@); ${ABACALL} interactive user=$(abspath ${TRG}) job=$(basename $(notdir $@)) cpus=${NCPUS}
