@echo off
:echo on

set ProgramsDir=d:\Programs
if not exist "%ProgramsDir%" (
	set ProgramsDir=c:\Programs
)
set PerlDir=%ProgramsDir%\Perl
set ElasticDir=%PerlDir%\ElasticConstant
set TemplateSource=%ElasticDir%\Template
set script=%ElasticDir%\CalElasticConstant.pl
set tee=%ProgramsDir%\bin\ktee.exe -f

set TemplateDir=.\Template

set SampleName=%1
if "%SampleName%" == "" (
	set SampleName=Si
)
set Library=%2
if "%Library%" == "" (
	set Library=IGZO-Morse.lib
)
::Remove extension
set SampleName=%SampleName:.cif=%
set SampleName=%SampleName:.glp=%
set SampleName=%SampleName:.gin=%
set SampleName=%SampleName:.out=%
set SampleName=%SampleName:.axsf=%
set SampleName=%SampleName:.arc=%
set SampleName=%SampleName:.trg=%
set SampleName=%SampleName:.pre=%

::engine: gulp, vasp, pwscf
set engine=%3
::set engine=gulp
::set engine=vasp
if "%engine%" == "" (
	set engine=pwscf
)

::mode: Cabc, CXYZ, Vconst, Vconp
set mode=%4
if "%mode%" == "" (
	set mode=Cabc
)
set mode_original=%mode%

set index=%5
if "%index%" == "" (
	set index=1122
)

set nStep=%6
if "%nStep%" == "" (
	set nStep=3
)
:: Can use equation for nOrder
set nOrder=%7
if "%nOrder%" == "" (
	set nOrder=$nStep-1
)

:: fdiff = da / a, dV/V, dP (atm)
::set fdiff=2000.0
set fdiff=%8
if "%fdiff%" == "" (
	set fdiff=0.01
)

:: Pressure of origin in atm
set pressure0=%9
if "%pressure0%" == "" (
	set pressure0=0.0
)
set pressure_tol=10.0

set DoMakeInputs=1
set DoMakeRunScript=1
set Execute=1
set Calculate=1

echo Sample=%SampleName%
echo mode=%mode%
echo index=%index%
echo nStep=%nStep%
::goto END

if "%DoMakeInputs%" == "1" (
@echo on
	perl %script% --Action=MakeInputs    --Mode=%mode% --Index=%index% --nStep=%nStep% ^
		--pressure0=%pressure0% --pressure_tol=%pressure_tol% --fdiff=%fdiff% %SampleName%.cif ^
		| %tee% %SampleName%-input.out
@echo off
)
:goto END

if "%DoMakeRunScript%" == "1" (
@echo on
	perl %script% --Action=MakeRunScript --Mode=%mode% --Index=%index% ^
		--pressure0=%pressure0% --pressure_tol=%pressure_tol% --fdiff=%fdiff% ^
		--Engine=%engine% %SampleName%.cif ^
		| %tee% %SampleName%-mkscript.out
@echo off
)
::goto END

if "%Execute%" == "1" (
@echo on
	call CalculateElasticConstant.bat %SampleName%
@echo off
)
:goto END

if "%Calculate%" == "1" (
	echo.
	echo.
	echo Calculate elastic tensor
	echo perl %script% --Action=cal --Mode=%mode_original% --Index=%index% --Engine=%engine% --nStep=%nStep% --nOrder=%nOrder% %SampleName%.cif
@echo on
	perl %script% --Action=cal --Mode=%mode_original% --Index=%index% --Engine=%engine% --nStep=%nStep% --nOrder=%nOrder% %SampleName%.cif ^
		| %tee% %SampleName%-cal.out
@echo off
)

:END
