Commit 9ed043f6 authored by Ask Hjorth Larsen's avatar Ask Hjorth Larsen
Browse files

better handling of upper/lowercase. Remove duplicate files in tests

parent 735aaa0b
......@@ -48,10 +48,16 @@ def get_input_metadata(inputvars_file, use_new_format):
varset = set(varlist)
lower_vars = {}
for var in varlist:
lower_vars[var.lower()] = var
def addvar(tokens):
name = tokens[0]
val = ' '.join(tokens[1:])
if name in varset:
name = name.lower()
if name in lower_vars:
name = lower_vars[name]
inputvars[name] = val
currentblock = None
......@@ -119,12 +125,12 @@ class SiestaContext(object):
self.files = None # Dict of files
self.blocks = None # Dict of input blocks (coords, cell, etc.)
self._is_last_configuration = False # XXX
self.data = {}
self.special_input_vars = {}
self.system_meta = {}
self.section_refs = {} # {name: gindex, ...}
self.simulation_type = None
def adhoc_format_new(self, parser):
assert self.format is None
......@@ -156,51 +162,57 @@ class SiestaContext(object):
# what else? We already get force/stress/positions from stdout.
if self.format == 'new':
inplogfiles = glob('%s/fdf-*.log' % dirname)
assert len(inplogfiles) == 1
if inplogfiles:
inplogfiles.sort()
files['inputlog'] = inplogfiles[-1]
files['inputlog'] = inplogfiles[0]
else:
assert self.format == 'old', self.format
files['inputlog'] = os.path.join(dirname, 'out.fdf')
self.files = files
def adhoc_set_simulation_type(self, parser):
line = parser.fIn.readline()
if self.simulation_type is not None:
return
line = line.strip()
if line.startswith('Single-point'):
self.simulation_type = 'singlepoint'
elif 'opt' in line or 'move' in line:
self.simulation_type = 'optimization'
else:
raise ValueError('Todo: recognize simulation type "%s"' % line)
def startedParsing(self, fname, parser):
self.fname = fname
path = os.path.abspath(fname)
self.dirname, _ = os.path.split(path)
#self.parser = parser
def onClose_x_siesta_section_xc_authors(self, backend, gindex, section):
authors = section['x_siesta_xc_authors']
if authors is None:
raise ValueError('XC authors not found!')
#def onClose_x_siesta_section_xc_authors(self, backend, gindex, section):
assert len(authors) == 1
authors = authors[0]
def onClose_section_frame_sequence(self, backend, gindex, section):
backend.addValue('frame_sequence_to_sampling_ref',
self.section_refs['sampling_method'])
mapping = {'CA': ('LDA_X', 'LDA_C_PZ'),
'PZ': ('LDA_X', 'LDA_C_PZ'),
'PW92': ('LDA_X', 'LDA_C_PW'),
#'PW91': '',
'PBE': ('GGA_X_PBE', 'GGA_C_PBE'),
'revPBE': ('GGA_X_PBE_R', 'GGA_C_PBE'),
'RPBE': ('GGA_X_RPBE', 'GGA_C_PBE'),
#'WC': ('GGA_X_WC', ),
# Siesta does not mention which correlation is used with
# the WC functional. Is it just the PBE one?
'AM05': ('GGA_X_AM05', 'GGA_C_AM05'),
'PBEsol': ('GGA_X_PBE_SOL', 'GGA_C_PBE_SOL'),
'BLYP': ('GGA_X_B88 + GGA_C_LYP')}
xc = mapping.get(authors)
def onOpen_section_sampling_method(self, backend, gindex, section):
self.section_refs['sampling_method'] = gindex
if xc is None:
raise ValueError('XC functional %s unsupported by parser'
% authors)
def onOpen_section_frame_sequence(self, backend, gindex, section):
self.section_refs['frame_sequence'] = gindex
for funcname in xc:
gid = backend.openSection('section_XC_functionals')
backend.addValue('XC_functional_name', funcname)
backend.closeSection('section_XC_functionals', gid)
def onClose_section_sampling_method(self, backend, gindex, section):
simtype = self.simulation_type
assert simtype is not None
if simtype == 'optimization':
backend.addValue('sampling_method', 'geometry_optimization')
elif simtype == 'singlepoint':
pass
else:
raise ValueError('XXX: %s' % simtype)
def onClose_section_eigenvalues(self, backend, gindex, section):
self.read_eigenvalues(backend)
......@@ -208,6 +220,18 @@ class SiestaContext(object):
def onOpen_section_method(self, backend, gindex, section):
self.section_refs['method'] = gindex
def onClose_section_method(self, backend, gindex, section):
temp = self.special_input_vars['ElectronicTemperature']
temp, unit = temp.split()
assert unit == 'Ry' # Siesta always converts to Ry here I think
temp = float(temp)
temp = convert_unit(temp, 'rydberg')
backend.addValue('smearing_width', temp)
#simtype = self.special_input_vars['MD.TypeOfRun']
#print('SIMTYPE', simtype)
#sdfsdf
def onOpen_section_system(self, backend, gindex, section):
self.section_refs['system'] = gindex
......@@ -308,7 +332,7 @@ class SiestaContext(object):
def onClose_x_siesta_section_input(self, backend, gindex, section):
inputvars_file = self.files.get('inputlog')
if inputvars_file is None:
return
raise ValueError('no input logfile!')
inputvars, blocks = get_input_metadata(inputvars_file,
self.format == 'new')
......@@ -317,11 +341,44 @@ class SiestaContext(object):
for special_name in ['LatticeConstant',
'AtomicCoordinatesFormat',
'AtomicCoordinatesFormatOut']:
'AtomicCoordinatesFormatOut',
'ElectronicTemperature']:
self.special_input_vars[special_name] = inputvars.get(special_name)
self.blocks = blocks
authors = section['x_siesta_xc_authors']
if authors is None:
raise ValueError('XC authors not found!')
assert len(authors) == 1
authors = authors[0]
# XXX Case sensitive?
mapping = {'CA': ('LDA_X', 'LDA_C_PZ'),
'PZ': ('LDA_X', 'LDA_C_PZ'),
'PW92': ('LDA_X', 'LDA_C_PW'),
#'PW91': '',
'PBE': ('GGA_X_PBE', 'GGA_C_PBE'),
'revPBE': ('GGA_X_PBE_R', 'GGA_C_PBE'),
'RPBE': ('GGA_X_RPBE', 'GGA_C_PBE'),
#'WC': ('GGA_X_WC', ),
# Siesta does not mention which correlation is used with
# the WC functional. Is it just the PBE one?
'AM05': ('GGA_X_AM05', 'GGA_C_AM05'),
'PBEsol': ('GGA_X_PBE_SOL', 'GGA_C_PBE_SOL'),
'BLYP': ('GGA_X_B88 + GGA_C_LYP')}
xc = mapping.get(authors)
if xc is None:
raise ValueError('XC functional %s unsupported by parser'
% authors)
for funcname in xc:
gid = backend.openSection('section_XC_functionals')
backend.addValue('XC_functional_name', funcname)
backend.closeSection('section_XC_functionals', gid)
def read_eigenvalues(self, backend):
eigfile = self.files.get('EIG')
if eigfile is None:
......@@ -448,35 +505,47 @@ def get_header_matcher():
return m
def anycase(string):
tokens = []
for letter in list(string):
if letter.isalpha():
tokens.append('[%s%s]' % (letter.upper(),
letter.lower()))
else:
tokens.append(letter)
return ''.join(tokens)
welcome_pattern = r'\s*\*\s*WELCOME TO SIESTA\s*\*'
def get_input_matcher():
m = SM(welcome_pattern,
name='welcome',
sections=['section_method'],
sections=['section_method', 'x_siesta_section_input'],
fixedStartValues={'electronic_structure_method': 'DFT',
'smearing_kind': 'fermi'},
subFlags=SM.SubFlags.Unordered,
subMatchers=[
SM(r'NumberOfAtoms\s*(?P<number_of_atoms>\d+)',
name='natoms'),
context.multi_sm('block_species_label',
r'%block ChemicalSpeciesLabel',
anycase(r'%block ChemicalSpeciesLabel'),
r'\s*\d+\s*\d+\s*(\S+)',
conflict='keep'),
context.multi_sm('block_coords_and_species',
r'%block AtomicCoordinatesAndAtomicSpecies',
anycase(r'%block AtomicCoordinatesAndAtomicSpecies'),
r'\s*(\S+)\s*(\S+)\s*(\S+)\s*(\d+)'),
context.multi_sm('block_lattice_vectors',
r'%block LatticeVectors',
anycase(r'%block LatticeVectors'),
r'(?!%)\s*(\S+)\s*(\S+)\s*(\S+)'),
SM(r'xc.authors\s*(?P<x_siesta_xc_authors>\S+)',
SM(r'%s\s*(?P<x_siesta_xc_authors>\S+)' % anycase('xc\.authors'),
name='xc authors',
fixedStartValues={'x_siesta_xc_authors': 'CA'},
sections=['section_method', 'x_siesta_section_xc_authors']),
fixedStartValues={'x_siesta_xc_authors': 'CA'}),
#SM(r'MD.TypeOfRun\s*(?P<x_siesta_typeofrun>\S+)',
# fixedStartValues={'x_siesta_typeofrun': 'none'}),
SM(r'reinit: System Name:\s*(?P<system_name>.+)',
name='sysname'),
SM(r'reinit: System Label:\s*(?P<x_siesta_system_label>\S+)',
name='syslabel', forwardMatch=True,
sections=['x_siesta_section_input'],
adHoc=context.adhoc_set_label),
context.multi_sm('coords_and_species',
r'siesta: Atomic coordinates \(Bohr\) and species',
......@@ -495,6 +564,8 @@ step_pattern = r'\s*(Single-point calculation|Begin[^=]+=\s*\d+)'
def get_step_matcher():
m = SM(step_pattern,
name='step',
forwardMatch=True,
adHoc=context.adhoc_set_simulation_type,
sections=['section_single_configuration_calculation'],
subFlags=SM.SubFlags.Unordered,
subMatchers=[
......@@ -547,7 +618,7 @@ mainFileDescription = SM(
forwardMatch=True,
repeats=True,
required=True,
sections=['section_system'],
sections=['section_system', 'section_frame_sequence', 'section_sampling_method'],
subMatchers=[
get_input_matcher(),
get_step_matcher(),
......
SystemName Al_slab
SystemLabel Al_slab
XML.Write T # default value
XML.AbortOnErrors F # default value
XML.AbortOnWarnings F # default value
timer_report_threshold 0.000000000 # default value
UseTreeTimer F # default value
alloc_report_level 0 # default value
alloc_report_threshold 0.000000000 # default value
xc.functional LDA
xc.authors CA
MM.Cutoff 30.00000000 Bohr # default value
MM.UnitsEnergy eV # default value
MM.UnitsDistance Ang # default value
WriteIonPlotFiles F # default value
Atom.Debug.KB.Generation F # default value
KB.New.Reference.Orbitals F # default value
user-basis F # default value
user-basis-netcdf F # default value
ReparametrizePseudos F # default value
Restricted.Radial.Grid T # default value
Rmax.Radial.Grid 0.000000000 # default value
PAO.BasisSize standard # default value
PAO.BasisType split # default value
PAO.SoftDefault F # default value
PAO.SoftInnerRadius 0.9000000000 # default value
PAO.SoftPotential 40.00000000 # default value
PAO.SplitNorm 0.1500000000 # default value
PAO.SplitNormH -1.000000000 # default value
Number_of_species 1
%block Chemical_species_label
1 13 Al
%endblock Chemical_species_label
%block PAO.Basis
Al 3 # Species label, number of l-shells
n=3 0 2 # n, l, Nzeta
5.859 4.513
1.000 1.000
n=3 1 2 # n, l, Nzeta
6.809 5.09
1.000 1.000
n=3 2 1 # n, l, Nzeta
5.176
1.000
%endblock PAO.Basis
FilterCutoff 0.000000000 Ry # default value
FilterTol 0.000000000 Ry # default value
KB.Rmax 6.000000000 Bohr # default value
PAO.EnergyShift 0.2000000000E-01 Ry # default value
PAO.SplitTailNorm F # default value
PAO.FixSplitTable F # default value
PAO.NewSplitCode F # default value
PAO.Filter F # default value
PAO.Filter F # default value
PAO.Filter F # default value
PAO.Filter F # default value
PAO.Filter F # default value
PAO.OldStylePolorbs T # default value
PAO.SplitTailNorm F # default value
PAO.FixSplitTable F # default value
PAO.NewSplitCode F # default value
Vna.Filter F # default value
PAO.BasisType split # default value
Atom-Setup-Only F # default value
UseStructFile F # default value
MD.UseStructFile F # default value
LatticeConstant 1.889726878 Bohr
# above item originally: LatticeConstant 1.000000000 Ang
%block LatticeVectors
%block LatticeVectors
4.457602528 0.0 0.0
0.0 3.152000000 0.0
0.0 0.0 30
AtomicCoordinatesFormat Ang
NumberOfAtoms 12
ZM.UnitsLength Bohr # default value
ZM.UnitsAngle rad # default value
ZM.ForceTolLength 0.1555740000E-02 Ry/Bohr # default value
ZM.ForceTolAngle 0.3565490000E-02 Ry/rad # default value
ZM.MaxDisplLength 0.2000000000 Bohr # default value
ZM.MaxDisplAngle 0.3000000000E-02 rad # default value
ZM.CalcAllForces F # default value
%block AtomicCoordinatesAndAtomicSpecies
2.228801000 3.152000000 0.0 1
4.457606000 1.576024000 0.0 1
1.485868000 1.576024000 2.414 1
3.714668000 3.152000000 2.414 1
2.971741000 1.576024000 4.828 1
5.200541000 3.152000000 4.828 1
2.228801000 3.152000000 7.242 1
4.457606000 1.576024000 7.242 1
1.485868000 1.576024000 9.656 1
3.714668000 3.152000000 9.656 1
2.971741000 1.576024000 12.07 1
5.200541000 3.152000000 12.07 1
UseSaveData F # default value
MD.UseSaveXV F # default value
MD.UseSaveZM F # default value
WriteCoorInitial T # default value
MD.TypeOfRun none # default value
MaxBondDistance 6.000000000 Bohr # default value
Output-Structure-Only F # default value
WriteCoorXmol F # default value
SpinPolarized F # default value
NonCollinearSpin F # default value
HSetupOnly F # default value
LongOutput F # default value
WriteDenchar F # default value
WriteMullikenPop 0 # default value
WriteHirshfeldPop F # default value
WriteVoronoiPop F # default value
PartialChargesAtEveryGeometry F # default value
PartialChargesAtEveryScfStep F # default value
MeshCutoff 400.0000000 Ry
# above item originally: MeshCutoff 400.0000000 Ry
NetCharge 0.000000000 # default value
MinSCFIterations 0 # default value
MaxSCFIterations 10000
SCFMustConverge F # default value
MixHamiltonian F # default value
TS.MixH F # default value
MixCharge F # default value
Compat-pre-v4-DM-H F # default value
SCF.MixAfterConvergence F # default value
SCF.Recompute-H-After-Scf F # default value
DM.NumberPulay 5
DM.NumberBroyden 0 # default value
DM.FIRE.Mixing F # default value
DM.MixSCF1 F # default value
DM.PulayOnFile F # default value
DM.Pulay.Avoid.First.After.Kick F # default value
DM.MixingWeight 0.1000000000E-02
DM.OccupancyTolerance 0.1000000000E-11 # default value
DM.NumberKick 0 # default value
DM.KickMixingWeight 0.5000000000 # default value
DM.Tolerance 0.1000000000E-03
DM.RequireEnergyConvergence F # default value
DM.EnergyTolerance 0.7349806700E-06 Ry # default value
DM.RequireHarrisConvergence F # default value
DM.HarrisTolerance 0.7349806700E-06 Ry # default value
MonitorForcesInSCF F # default value
UseSaveData F # default value
DM.UseSaveDM T
NeglNonOverlapInt F # default value
SolutionMethod diagon
Diag.DivideAndConquer T # default value
Diag.Memory 1.000000000 # default value
ElectronicTemperature 0.1900069269E-02 Ry
# above item originally: ElectronicTemperature 300.0000000 K
FixSpin F # default value
ON.MaxNumIter 1000 # default value
ON.etol 0.1000000000E-07 # default value
ON.eta 0.000000000 Ry # default value
ON.eta_alpha 0.000000000 Ry # default value
ON.eta_beta 0.000000000 Ry # default value
On.RcLWF 9.500000000 Bohr # default value
ON.UseSaveLWF F # default value
ON.functional kim # default value
ON.ChemicalPotentialUse F # default value
ON.ChemicalPotential F # default value
ON.ChemicalPotentialRc 9.500000000 Bohr # default value
ON.ChemicalPotentialTemperature 0.5000000000E-01 Ry # default value
ON.ChemicalPotentialOrder 100 # default value
MD.VariableCell F # default value
compat-pre-v4-dynamics F # default value
MD.TypeOfRun cg # default value
MD.UseSaveCG F # default value
Optim.Broyden F # default value
MD.NumCGsteps 0 # default value
MD.MaxCGDispl 0.2000000000 Bohr # default value
MD.MaxForceTol 0.1555740000E-02 Ry/Bohr # default value
MD.MaxStressTol 0.6797730000E-04 Ry/Bohr**3 # default value
MD.InitialTimeStep 1 # default value
MD.FinalTimeStep 1 # default value
MD.LengthTimeStep 1.000000000 fs # default value
MD.Quench F # default value
MD.FireQuench F # default value
MD.InitialTemperature 0.000000000 K # default value
MD.TargetTemperature 0.000000000 K # default value
MD.TargetPressure 0.000000000 Ry/Bohr**3 # default value
MD.NoseMass 100.0000000 Ry*fs**2 # default value
MD.ParrinelloRahmanMass 100.0000000 Ry*fs**2 # default value
MD.AnnealOption TemperatureAndPressure # default value
MD.TauRelax 100.0000000 fs # default value
MD.BulkModulus 0.6797730000E-02 Ry/Bohr**3 # default value
MD.FCDispl 0.4000000000E-01 Bohr # default value
MD.FCfirst 1 # default value
MD.FClast 12 # default value
UseSpatialDecomposition F # default value
UseDomainDecomposition F # default value
Harris_functional F # default value
WriteKpoints F # default value
WriteForces F # default value
WriteDM T # default value
WriteDM.NetCDF F # default value
WriteDM.History.NetCDF F # default value
WriteDMHS.NetCDF F # default value
WriteDMHS.History.NetCDF F # default value
SCF.Read.Charge.NetCDF F # default value
SCF.Read.Deformation.Charge.NetCDF F # default value
SaveInitialChargeDensity F # default value
UseNewDiagk F # default value
WriteBands F # default value
WriteKbands F # default value
WriteEigenvalues F # default value
WriteCoorStep F # default value
WriteMDhistory F # default value
WriteMDXmol T # default value
UseSaveData F # default value
SaveHS F # default value
FixAuxiliaryCell F # default value
NaiveAuxiliaryCell F # default value
ReInitialiseDM T # default value
DM.AllowReuse T # default value
DM.AllowExtrapolation T # default value
DM.NormalizationTolerance 0.1000000000E-04 # default value
DM.NormalizeDuringSCF T # default value
MullikenInSCF F # default value
WarningMinimumAtomicDistance 1.000000000 Bohr # default value
BornCharge F # default value
ChangeKgridInMD F # default value
Diag.ParallelOverK F # default value
MD.RelaxCellOnly F # default value
MD.RemoveIntraMolecularPressure F # default value
COOP.Write F # default value
SaveRho F # default value
SaveDeltaRho F # default value
SaveRhoXC F # default value
SaveElectrostaticPotential F # default value
SaveNeutralAtomPotential F # default value
SaveTotalPotential F # default value
SaveIonicCharge F # default value
SaveBaderCharge F # default value
SaveTotalCharge F # default value
Siesta2Wannier90.WriteMmn F # default value
Siesta2Wannier90.WriteUnk F # default value
Siesta2Wannier90.WriteAmn F # default value
Siesta2Wannier90.WriteEig F # default value
Siesta2Wannier90.NumberOfBandsUp 0 # default value
Siesta2Wannier90.NumberOfBandsDown 0 # default value
Siesta2Wannier90.NumberOfBands 0 # default value
RcSpatial 0.000000000 Bohr # default value
ProcessorGridX 1 # default value
ProcessorGridY 1 # default value
ProcessorGridZ 1 # default value
processorY 2 # default value
blocksize 20 # default value
NumberOfEigenStates 156 # default value
TimeReversalSymmetryForKpoints T # default value
%block kgrid_Monkhorst_Pack
8 0 0 0.0
0 8 0 0.0
0 0 1 0.0
LongOutput F # default value
WriteWaveFunctions F # default value
ForceAuxCell F # default value
AtomicCoordinatesFormat Ang
AtomCoorFormatOut Ang # default value
LatticeConstant 1.889726878 Bohr
# above item originally: LatticeConstant 1.000000000 Ang
DM.FormattedFiles F # default value
DM.FormattedInput F # default value
DM.FormattedOutput F # default value
SCF.Pulay.Damping -1.000000000 # default value
SCF.MixingWeightAfterPulay 0.5000000000 # default value
SCF.PulayMinimumHistory 2 # default value
SCF.PulayDmaxRegion 1000.000000 # default value
SCF.LinearMixingAfterPulay F # default value
SCF.Pulay.UseSVD F # default value
SCF.Pulay.DebugSVD T # default value
SCF.Pulay.RcondSVD 0.1000000000E-07 # default value
MeshSubDivisions 2 # default value
LatticeConstant 1.889726878 Bohr
# above item originally: LatticeConstant 1.000000000 Ang
%block LatticeVectors
%block LatticeVectors
4.457602528 0.0 0.0
0.0 3.152000000 0.0
0.0 0.0 30
PROCS_PER_NODE 4 # default value
PROCS_PER_NODE 4 # default value
DirectPhi F # default value
SimulateDoping F # default value
SlabDipoleCorrection F # default value
Diag.ParallelOverK F # default value
LatticeConstant 1.889726878 Bohr
# above item originally: LatticeConstant 1.000000000 Ang
%block LatticeVectors
%block LatticeVectors
4.457602528 0.0 0.0
0.0 3.152000000 0.0
0.0 0.0 30
Diag.AllInOne F # default value
Diag.DivideAndConquer T # default value
Diag.NoExpert F # default value
Diag.PreRotate F # default value
Diag.Use2D T # default value
SingleExcitation F # default value
OccupationFunction FD # default value
OccupationFunction FD # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value
SCF.Want.Variational.EKS F # default value