3d Laplace TRLM Eigensolver - lattice/quda GitHub Wiki

QUDA includes support for finding eigenvalues and eigenvectors of the 3-d Laplace operator.

export QUDA_RESOURCE_PATH=.
export QUDA_ENABLE_DEVICE_MEMORY_POOL=1 # optional, save memory if needed

export EXE=tests/staggered_eigensolve_test
export VERIFY=false # whether to verify correctness
export DIMS="32 32 32 32" # local problem size
export GRID="1 1 1 2" # MPI topology
export EIG_PARAM="--eig-max-restarts 100 --eig-n-kr 256 --eig-n-ev 168 --eig-n-conv 168 --eig-use-poly-acc true --eig-amin 0.07 --eig-poly-deg 48 --eig-use-pc false --eig-tol 1e-12 --eig-spectrum SR"

# set SMEAR=1 to do inline smearing, else load pre-smeared lattice from disk
SMEAR=1
if [ $SMEAR == "1" ](/lattice/quda/wiki/-$SMEAR-==-"1"-); then
    export SMEAR_PARAM="--gauge-smear true --su3-smear-steps 20 --su3-smear-rho 0.1"
    export LATTICE="/home/jamie/CNVRT/B450r000n1001.Scidac"
else
    export LATTICE="/home/ahanlon/share/cls21_A653_r000/cfgs/A653r000-smeared_n1.lime"
fi

# set LAPLACE3D=1 to do 3-d Laplace operator, else do 4-d Laplace operator
LAPLACE3D=1
if [ $LAPLACE3D == "1" ](/lattice/quda/wiki/-$LAPLACE3D-==-"1"-); then
    echo "Running 3-d Laplace"
    export EIG_PARAM="$EIG_PARAM --eig-type trlm-3d"
    export OPERATOR="--dslash-type laplace --laplace3D 3 --mass 0.0"
else
    echo "Running 4-d Laplace"
    export EIG_PARAM="$EIG_PARAM --eig-type trlm"
    export OPERATOR="--dslash-type laplace --laplace3D 4 --mass 0.0"
fi

mpirun -np 2 ${EXE} --dim ${DIMS} --gridsize ${GRID} ${EIG_PARAM} ${SMEAR_PARAM} ${OPERATOR} --prec double --verbosity verbose --load-gauge ${LATTICE} --verify ${VERIFY}