{#
software = "orca"
jobtype = "scan"
requires = ["method", "basis_set", "charge", "mult", "nprocs", "mem", "Molecule", "scan_atoms", "scan_end", "scan_steps"]
description = "Relaxed surface scan — set scan_atoms (1-based list: [i,j] bond, [i,j,k] angle, [i,j,k,l] dihedral), scan_end, scan_steps in [parameters]"
#}
! {{ method }} {{ basis_set }}{% if dispersion is defined %} {{ dispersion }}{% endif %}{% if solvation %}{% if solvation_model is defined and solvation_model == "alpb" %} ALPB({{ solvent }}){% elif solvation_model is defined and solvation_model == "cpcm" %} CPCM({{ solvent }}){% else %} SMD({{ solvent }}){% endif %}{% endif %}
! Opt

%pal
 nprocs {{ nprocs }}
end

%maxcore {{ mem }}

%geom
 scan
  {% if scan_atoms | length == 2 %}B{% elif scan_atoms | length == 3 %}A{% else %}D{% endif %} {% for i in scan_atoms %}{{ i - 1 }}{% if not loop.last %} {% endif %}{% endfor %} = {{ measure(molecule=Molecule, atoms=scan_atoms) | round(precision=4) }}, {{ scan_end }}, {{ scan_steps }}
 end
end

*xyz {{ charge }} {{ mult }}
{{ print_coords(molecule = Molecule) }}
*
