package "qpms-translations-ewald32"
version "dev"
purpose "Computes Ewald-summed VSWF translation matrix elements in arbitrary 2D-periodic infinite lattices."
#versiontext ""

#args "<command line options>"
args "--file-name=transop_ewald_cmdline"

# Options

option "output" o "Output file"
	details="Path to the output file. If not specified, print to the standard output."
        string
	default=""
	optional

option "base-vector" b "Base vector"
	details="Single base vector (two numbers separated by comma)"
	string
	typestr="X,Y"
	multiple(2) required # will be multiple(-3) when implemented 1d, 3d

option "error-estimate-output" E "Path to the output with error estimates"
	string
	optional

option "normalisation" N "VSWF normalisation convention"
	values="Power","None","SH" enum
	default="Power"

option "csphase" c "Whether the Condon-Shortley phase is included in VSWF definition (-1) or not (+1)"
	int
	values="+1","-1"
	default="-1"

option "Ewald-parameter" e "The value of Ewald parameter η"
	double
	optional

option "frequency-unit" u "Specifies the frequency unit is used for inputs."
	values="eV","scuff" enum
	default="scuff"

option "lMax" L "Maximum spherical multipole order to which the translation operator elements are calculated"
	int
	required

option "refractive-index" n "Medium refractive index"
	double
	required

option "particle" p "Specify the x and y coordinates of a single particle; If not specified, one particle per unit cell is assumed."
	string
	typestr="X,Y"
	multiple optional

defmode "k_omega_points" modedesc="Specifying each (ω, k) pair separately."
defmode "k_omega_meshgrid" modedesc="Specifying lists of ω and k, from which all possible pairs are generated."

modeoption "pointfile" T "Path to a file containing frequency, k_x, k_y triples\
(separated by white spaces). If not specified, read them from stdin." 
	mode="k_omega_points" 
	string 
	multiple default="-"

modeoption "point" t "Specifies a frequency, k_x, k_y triple, separated by commas."
	mode="k_omega_points"
	string
	typestr="ω,k_x,k_y"
	multiple optional

modeoption "omegafile" F "Path to a file containing a list of frequencies\
separated by whitespaces."
	mode="k_omega_meshgrid" 
	string
	multiple optional

modeoption "omega" f "Specifies frequency (or multiple frequencies separated by commas) on the command line."
	mode="k_omega_meshgrid"
	string
	typestr="ω1[,ω2[,...]]"
	multiple optional

modeoption "kfile" K "Path to a file containing a list of k_x, k_y pairs."
	mode="k_omega_meshgrid"
	string
	multiple optional
	default="-"

modeoption "k" k "Specifies pair(s) of k_x, k_y values"
	mode="k_omega_meshgrid"
	string
	typestr="k1_x,k1_y[,k2_x,k2_y[,...]]"
	multiple optional


#option <long> <short> "<desc>"
#	{details="<detailed description>"}
#	{argtype} {typestr="<type descr>"}
#	{values="<value1>","<value2>",...}
#	{default="<default value>"}
#	{dependon="<other option>"}
#	{required} {argoptional} {multiple}
#	{hidden}

#option <long> <short> "<desc>" flag <on/off>

#section "section name" {sectiondesc="optional section description"}

#text "a textual sentence"
