##############################################################
#
# 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_mechanical.f
RESULT=UMATmacro_mechanical-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 examples/homogenous/pure_shear/Job_1 examples/bimaterial/Job_1
VERIFICACATIONCASEMEDIUM=examples/porous/macro examples/Direct_FE2/BEAM
VERIFICACATIONCASECOMPLEX=examples/sharp_notched_beam_2D/Job_1 examples/quarter_plate_hole_tension/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}
