Commit 555eeb2e authored by Gregor Michalicek's avatar Gregor Michalicek

Added FleurOutputSchema.xsd to io/xml/

Note: The planned usage of XML Schema any elements is not possible
as it makes 'the content model nondeterministic'. Therefore this
schema is stricter than planned. It is also incomplete at the
moment, e.g., orbital magnetic moments and forces are not yet
covered.

Also in this commit some smaller layout changed in out.xml.
parent 4637d6b2
......@@ -149,12 +149,12 @@ CONTAINS
WRITE(attributes(1),'(i0)') n
WRITE(attributes(2),'(i0)') jsp
WRITE(attributes(3),'(i0,a1)') nqn(l), ch(l)
WRITE(attributes(4),'(f16.10)') e_lo
WRITE(attributes(5),'(f16.10)') e_up
WRITE(attributes(4),'(f8.2)') e_lo
WRITE(attributes(5),'(f8.2)') e_up
WRITE(attributes(6),'(f16.10)') e
CALL writeXMLElementForm('atomicEP',(/'atomType ','spin ','branch ',&
'branchLowest ','branchHeighest','value '/),&
attributes,reshape((/12,4,6,12,14,5,6,1,3,16,16,16/),(/6,2/)))
CALL writeXMLElementForm('atomicEP',(/'atomType ','spin ','branch ',&
'branchLowest ','branchHighest','value '/),&
attributes,reshape((/12,4,6,12,13,5,6,1,3,8,8,16/),(/6,2/)))
WRITE(6,'(a6,i3,i2,a1,a12,f6.2,a3,f6.2,a13,f8.4)') ' Atom',n,nqn(l),ch(l),' branch from',&
e_lo, ' to',e_up,' htr. ; e_l =',e
ENDIF
......@@ -255,7 +255,7 @@ CONTAINS
WRITE(attributes(5),'(f16.10)') e
CALL writeXMLElementForm('heAtomicEP',(/'atomType ','spin ','branch ',&
'logDerivMT ','value '/),&
attributes(1:5),reshape((/10,4,6,12,5+34,6,1,3,16,16/),(/5,2/)))
attributes(1:5),reshape((/10,4,6,12,5+17,6,1,3,16,16/),(/5,2/)))
WRITE (6,'(a7,i3,i2,a1,a12,f7.2,a4,f7.2,a5)') " Atom ",n,nqn(l),ch(l)," branch, D = ",&
ldmt, " at ",e," htr."
ENDIF
......@@ -325,12 +325,12 @@ CONTAINS
WRITE(attributes(1),'(i0)') n
WRITE(attributes(2),'(i0)') jsp
WRITE(attributes(3),'(i0,a1)') nqn_lo(ilo), ch(l)
WRITE(attributes(4),'(f16.10)') e_lo
WRITE(attributes(5),'(f16.10)') e_up
WRITE(attributes(4),'(f8.2)') e_lo
WRITE(attributes(5),'(f8.2)') e_up
WRITE(attributes(6),'(f16.10)') e
CALL writeXMLElementForm('loAtomicEP',(/'atomType ','spin ','branch ',&
'branchLowest ','branchHeighest','value '/),&
attributes,reshape((/10,4,6,12,14,5,6,1,3,16,16,16/),(/6,2/)))
CALL writeXMLElementForm('loAtomicEP',(/'atomType ','spin ','branch ',&
'branchLowest ','branchHighest','value '/),&
attributes,reshape((/10,4,6,12,13,5,6,1,3,8,8,16/),(/6,2/)))
WRITE(6,'(a6,i3,i2,a1,a12,f6.2,a3,f6.2,a13,f8.4)') ' Atom',n,nqn_lo(ilo),ch(l),' branch from',&
e_lo,' to',e_up,' htr. ; e_l =',e
ENDIF
......@@ -426,7 +426,7 @@ CONTAINS
WRITE(attributes(5),'(f16.10)') e
CALL writeXMLElementForm('heloAtomicEP',(/'atomType ','spin ','branch ',&
'logDerivMT ','value '/),&
attributes(1:5),reshape((/8,4,6,12,5+34,6,1,3,16,16/),(/5,2/)))
attributes(1:5),reshape((/8,4,6,12,5+17,6,1,3,16,16/),(/5,2/)))
WRITE (6,'(a6,i3,i2,a1,a12,f6.2,a4,f6.2,a5)') ' Atom',n,ABS(nqn_lo(ilo)),ch(l),&
' branch, D = ',ldmt,' at ',e,' htr.'
ENDIF
......@@ -518,7 +518,7 @@ CONTAINS
WRITE(attributes(4),'(f16.10)') vz(vacuum%nmz,ivac,jsp)
WRITE(attributes(5),'(f16.10)') evac(ivac,jsp)
CALL writeXMLElementForm('vacuumEP',(/'vacuum','spin ','vzIR ','vzInf ','value '/),&
attributes(1:5),reshape((/6+4,4,4,5,5+30,8,1,16,16,16/),(/5,2/)))
attributes(1:5),reshape((/6+4,4,4,5,5+13,8,1,16,16,16/),(/5,2/)))
ENDDO
IF (vacuum%nvac.EQ.1) THEN
evac(2,jsp) = evac(1,jsp)
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="0.27">
<xsd:element name="fleurOutput" type="FleurOutputType"/>
<xsd:complexType name="FleurOutputType">
<xsd:all>
<xsd:element maxOccurs="1" minOccurs="0" name="programVersion" type="ProgramVersionType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="startDateAndTime" type="DateAndTimeType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="inputData" type="InputDataType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="scfLoop" type="OutSCFLoopType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="endDateAndTime" type="DateAndTimeType"/>
</xsd:all>
<xsd:attribute name="fleurOutputVersion" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="ProgramVersionType">
<xsd:all>
<xsd:element maxOccurs="1" minOccurs="0" name="targetComputerArchitectures" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="precision" type="PrecisionType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="targetStructureClass" type="TargetStructureClassType"/>
</xsd:all>
<xsd:attribute name="version" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="PrecisionType">
<xsd:attribute name="type" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:simpleType name="TargetStructureClassType">
<xsd:list itemType="xsd:string"/>
</xsd:simpleType>
<xsd:complexType name="DateAndTimeType">
<xsd:attribute name="date" type="xsd:string" use="required"/>
<xsd:attribute name="time" type="xsd:string" use="required"/>
<xsd:attribute name="zone" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="OutSCFLoopType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element maxOccurs="unbounded" minOccurs="0" name="iteration" type="IterationType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="IterationType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element maxOccurs="1" minOccurs="0" name="energyParameters" type="OutEnergyParameterType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="eigenvalues" type="EigenvaluesType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="bandgap" type="SingleValueType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="sumValenceSingleParticleEnergies" type="SingleValueType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="FermiEnergy" type="SingleValueType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="valenceDensity" type="ChargeDensityType"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="coreStates" type="OutCoreStatesType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="allElectronCharges" type="ChargeDensityType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="magneticMomentsInMTSpheres" type="MTMagneticMomentsType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="totalEnergy" type="TotalEnergyType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="densityConvergence" type="DensityConvergenceType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="timing" type="TimingType"/>
</xsd:sequence>
<xsd:attribute name="numberForCurrentRun" type="xsd:integer" use="required"/>
<xsd:attribute name="overallNumber" type="xsd:integer" use="optional"/>
</xsd:complexType>
<xsd:complexType name="OutEnergyParameterType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element maxOccurs="unbounded" minOccurs="0" name="atomicEP" type="AtomicEPType"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="heAtomicEP" type="HEAtomicEPType"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="loAtomicEP" type="AtomicEPType"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="heloAtomicEP" type="HEAtomicEPType"/>
<xsd:element maxOccurs="2" minOccurs="0" name="vacuumEP" type="VacuumEPType"/>
</xsd:sequence>
<xsd:attribute name="units" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="AtomicEPType">
<xsd:attribute name="atomType" type="xsd:integer" use="required"/>
<xsd:attribute default="1" name="spin" type="xsd:integer" use="optional"/>
<xsd:attribute name="branch" type="xsd:string" use="required"/>
<xsd:attribute name="branchLowest" type="xsd:double" use="optional"/>
<xsd:attribute name="branchHighest" type="xsd:double" use="optional"/>
<xsd:attribute name="value" type="xsd:double" use="required"/>
</xsd:complexType>
<xsd:complexType name="HEAtomicEPType">
<xsd:attribute name="atomType" type="xsd:integer" use="required"/>
<xsd:attribute default="1" name="spin" type="xsd:integer" use="optional"/>
<xsd:attribute name="branch" type="xsd:string" use="required"/>
<xsd:attribute name="logDerivMT" type="xsd:double" use="optional"/>
<xsd:attribute name="value" type="xsd:double" use="required"/>
</xsd:complexType>
<xsd:complexType name="VacuumEPType">
<xsd:attribute name="vacuum" type="xsd:integer" use="required"/>
<xsd:attribute default="1" name="spin" type="xsd:integer" use="optional"/>
<xsd:attribute name="vzIR" type="xsd:double" use="optional"/>
<xsd:attribute name="vzInf" type="xsd:double" use="optional"/>
<xsd:attribute name="value" type="xsd:double" use="required"/>
</xsd:complexType>
<xsd:complexType name="EigenvaluesType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element maxOccurs="unbounded" minOccurs="1" name="eigenvaluesAt" type="EigenvaluesAtType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="EigenvaluesAtType">
<xsd:simpleContent>
<xsd:extension base="DoubleVecType">
<xsd:attribute default="1" name="spin" type="xsd:integer" use="optional"/>
<xsd:attribute name="ikpt" type="xsd:integer" use="required"/>
<xsd:attribute name="k_x" type="xsd:double" use="optional"/>
<xsd:attribute name="k_y" type="xsd:double" use="optional"/>
<xsd:attribute name="k_z" type="xsd:double" use="optional"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="SingleValueType">
<xsd:attribute name="value" type="xsd:double" use="required"/>
<xsd:attribute name="units" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="ChargeDensityType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element maxOccurs="unbounded" minOccurs="0" name="mtCharges" type="MTChargesType"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="spinDependentCharge" type="SpinDependentChargeType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="totalCharge" type="SingleValueType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MTChargesType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element maxOccurs="unbounded" minOccurs="0" name="mtCharge" type="MTChargeType"/>
</xsd:sequence>
<xsd:attribute default="1" name="spin" type="xsd:integer" use="optional"/>
</xsd:complexType>
<xsd:complexType name="MTChargeType">
<xsd:attribute name="atomType" type="xsd:integer" use="required"/>
<xsd:attribute name="total" type="xsd:double" use="required"/>
<xsd:attribute name="s" type="xsd:double" use="required"/>
<xsd:attribute name="p" type="xsd:double" use="required"/>
<xsd:attribute name="d" type="xsd:double" use="required"/>
<xsd:attribute name="f" type="xsd:double" use="required"/>
</xsd:complexType>
<xsd:complexType name="SpinDependentChargeType">
<xsd:attribute default="1" name="spin" type="xsd:integer" use="optional"/>
<xsd:attribute name="total" type="xsd:double" use="required"/>
<xsd:attribute name="interstitial" type="xsd:double" use="required"/>
<xsd:attribute name="mtSpheres" type="xsd:double" use="required"/>
<xsd:attribute name="vacuum1" type="xsd:double" use="optional"/>
<xsd:attribute name="vacuum2" type="xsd:double" use="optional"/>
</xsd:complexType>
<xsd:complexType name="OutCoreStatesType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element maxOccurs="unbounded" minOccurs="0" name="state" type="OutStateType"/>
</xsd:sequence>
<xsd:attribute name="atomType" type="xsd:integer" use="required"/>
<xsd:attribute name="atomicNumber" type="xsd:integer" use="required"/>
<xsd:attribute default="1" name="spin" type="xsd:integer" use="optional"/>
<xsd:attribute name="kinEnergy" type="xsd:double" use="required"/>
<xsd:attribute name="eigValSum" type="xsd:double" use="required"/>
<xsd:attribute name="lostElectrons" type="xsd:double" use="required"/>
</xsd:complexType>
<xsd:complexType name="MTMagneticMomentsType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element maxOccurs="unbounded" minOccurs="0" name="magneticMoment" type="MagneticMomentType"/>
</xsd:sequence>
<xsd:attribute name="units" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="MagneticMomentType">
<xsd:attribute name="atomType" type="xsd:integer" use="required"/>
<xsd:attribute name="moment" type="xsd:double" use="required"/>
<xsd:attribute name="spinUpCharge" type="xsd:double" use="required"/>
<xsd:attribute name="spinDownCharge" type="xsd:double" use="required"/>
</xsd:complexType>
<xsd:complexType name="OutStateType">
<xsd:attribute name="n" type="xsd:integer" use="required"/>
<xsd:attribute name="l" type="xsd:integer" use="required"/>
<xsd:attribute name="j" type="xsd:double" use="required"/>
<xsd:attribute name="energy" type="xsd:double" use="required"/>
<xsd:attribute name="weight" type="xsd:double" use="required"/>
</xsd:complexType>
<xsd:complexType name="TotalEnergyType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element maxOccurs="1" minOccurs="0" name="sumOfEigenvalues" type="SumOfEigenvaluesType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="densityCoulombPotentialIntegral" type="SingleValueType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="densityEffectivePotentialIntegral" type="SingleValueType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="chargeDenXCDenIntegral" type="SingleValueType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="FockExchangeEnergyValence" type="SingleValueType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="FockExchangeEnergyCore" type="SingleValueType"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="atomTypeDependentContributions" type="AtomTypeDependentContributionsType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tkbTimesEntropy" type="SingleValueType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="freeEnergy" type="SingleValueType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="extrapolationTo0K" type="SingleValueType"/>
</xsd:sequence>
<xsd:attribute name="value" type="xsd:double" use="required"/>
<xsd:attribute name="units" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="SumOfEigenvaluesType">
<xsd:all>
<xsd:element maxOccurs="1" minOccurs="0" name="coreElectrons" type="SingleValueType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="valenceElectrons" type="SingleValueType"/>
</xsd:all>
<xsd:attribute name="value" type="xsd:double" use="required"/>
<xsd:attribute name="units" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="AtomTypeDependentContributionsType">
<xsd:all>
<xsd:element maxOccurs="1" minOccurs="0" name="electronNucleiInteractionDifferentMTs" type="SingleValueType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="MadelungTerm" type="SingleValueType"/>
</xsd:all>
<xsd:attribute name="atomType" type="xsd:integer" use="required"/>
</xsd:complexType>
<xsd:complexType name="DensityConvergenceType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element maxOccurs="unbounded" minOccurs="0" name="chargeDensity" type="DensityDistanceType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="overallChargeDensity" type="DensityDistanceType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="spinDensity" type="DensityDistanceType"/>
</xsd:sequence>
<xsd:attribute name="units" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="DensityDistanceType">
<xsd:attribute name="spin" type="xsd:integer" use="optional"/>
<xsd:attribute name="distance" type="xsd:double" use="required"/>
<xsd:attribute name="units" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="TimingType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element maxOccurs="unbounded" minOccurs="0" name="compositeTimer" type="CompositeTimerType"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="timer" type="TimerType"/>
</xsd:sequence>
<xsd:attribute name="units" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="CompositeTimerType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element maxOccurs="unbounded" minOccurs="0" name="compositeTimer" type="CompositeTimerType"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="timer" type="TimerType"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="value" type="xsd:double" use="required"/>
<xsd:attribute name="units" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="TimerType">
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="value" type="xsd:double" use="required"/>
<xsd:attribute name="units" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="InputDataType">
<xsd:all>
<xsd:element maxOccurs="1" minOccurs="0" name="comment" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="constants" type="ConstDefGroupType"/>
<xsd:element name="calculationSetup" type="CalculationSetupType"/>
<xsd:element name="cell" type="CellType"/>
<xsd:element name="xcFunctional" type="XCFunctionalType"/>
<xsd:element name="atomSpecies" type="AtomSpeciesType"/>
<xsd:element name="atomGroups" type="AtomGroupsType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="output" type="OutputType"/>
</xsd:all>
</xsd:complexType>
<xsd:simpleType name="FleurVersionType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="0.27"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="ConstDefGroupType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="constant" type="ConstantDefinitionType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ConstantDefinitionType">
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="value" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="CalculationSetupType">
<xsd:all>
<xsd:element name="cutoffs" type="CutoffsType"/>
<xsd:element name="scfLoop" type="SCFLoopType"/>
<xsd:element name="coreElectrons" type="CoreElectronsType"/>
<xsd:element name="magnetism" type="MagnetismType"/>
<xsd:element name="bzIntegration" type="BZIntegrationType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="soc" type="SOCType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="nocoParams" type="NocoParamsType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="oneDParams" type="OneDParamType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="expertModes" type="ExpertModeType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="geometryOptimization" type="GeometryOptimizerType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="spinSpiralQPointMesh" type="SpinSpiralQPointMeshType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="eField" type="EFieldType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="energyParameterLimits" type="EnergyParameterLimitsType"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="EnergyParameterLimitsType">
<xsd:attribute name="ellow" type="xsd:double"/>
<xsd:attribute name="elup" type="xsd:double"/>
</xsd:complexType>
<xsd:complexType name="EFieldType">
<xsd:attribute default="10.0" name="zsigma" type="xsd:double" use="optional"/>
<xsd:attribute default="0.0" name="sig_b_1" type="xsd:double" use="optional"/>
<xsd:attribute default="0.0" name="sig_b_2" type="xsd:double" use="optional"/>
<xsd:attribute default="F" name="plot_charge" type="FleurBool" use="optional"/>
<xsd:attribute default="F" name="plot_rho" type="FleurBool" use="optional"/>
<xsd:attribute default="T" name="autocomp" type="FleurBool" use="optional"/>
<xsd:attribute default="F" name="dirichlet" type="FleurBool" use="optional"/>
<xsd:attribute default="F" name="eV" type="FleurBool" use="optional"/>
</xsd:complexType>
<xsd:complexType name="NocoParamsType">
<xsd:sequence>
<xsd:element name="qss" type="Double3DVecType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="qsc" type="Double3DVecType"/>
</xsd:sequence>
<xsd:attribute name="l_ss" type="FleurBool"/>
<xsd:attribute name="l_mperp" type="FleurBool"/>
<xsd:attribute name="l_constr" type="FleurBool"/>
<xsd:attribute name="l_disp" type="FleurBool"/>
<xsd:attribute name="sso_opt" type="TripleFleurBool"/>
<xsd:attribute name="mix_b" type="xsd:double"/>
<xsd:attribute name="thetaJ" type="xsd:double"/>
<xsd:attribute name="nsh" type="xsd:nonNegativeInteger"/>
</xsd:complexType>
<xsd:complexType name="OneDParamType">
<xsd:attribute name="d1" type="FleurBool"/>
<xsd:attribute name="MM" type="xsd:integer"/>
<xsd:attribute name="vM" type="xsd:integer"/>
<xsd:attribute name="m_cyl" type="xsd:integer"/>
<xsd:attribute name="chi" type="xsd:integer"/>
<xsd:attribute name="rot" type="xsd:integer"/>
<xsd:attribute name="invs1" type="FleurBool"/>
<xsd:attribute name="zrfs1" type="FleurBool"/>
</xsd:complexType>
<xsd:complexType name="CoreElectronsType">
<xsd:attribute name="ctail" type="FleurBool" use="required"/>
<xsd:attribute default="F" name="frcor" type="FleurBool" use="optional"/>
<xsd:attribute default="0" name="kcrel" type="xsd:integer" use="optional"/>
</xsd:complexType>
<xsd:complexType name="CellType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="symmetry" type="SymmetryType"/>
<xsd:element name="symmetryFile" type="SymmetryFileType"/>
<xsd:element name="symmetryOperations" type="SymmetryOperationsType"/>
</xsd:choice>
<xsd:choice>
<xsd:element name="bulkLattice" type="BulkLatticeType"/>
<xsd:element name="filmLattice" type="FilmLatticeType"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SymmetryType">
<xsd:attribute name="spgrp" type="SpgrpEnum" use="required"/>
<xsd:attribute name="invs" type="FleurBool" use="required"/>
<xsd:attribute name="zrfs" type="FleurBool" use="required"/>
</xsd:complexType>
<xsd:complexType name="SymmetryFileType">
<xsd:attribute name="filename" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="SymmetryOperationsType">
<xsd:sequence>
<xsd:element maxOccurs="48" minOccurs="1" name="symOp" type="SymOpMatrixType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MagnetismType">
<xsd:attribute name="jspins" type="SpinNumberType" use="required"/>
<xsd:attribute default="F" name="l_noco" type="FleurBool" use="optional"/>
<xsd:attribute default="F" name="l_J" type="FleurBool" use="optional"/>
<xsd:attribute default="F" name="swsp" type="FleurBool" use="optional"/>
<xsd:attribute default="F" name="lflip" type="FleurBool" use="optional"/>
</xsd:complexType>
<xsd:simpleType name="SpinNumberType">
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="2"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="BulkLatticeType">
<xsd:sequence>
<xsd:choice>
<xsd:sequence>
<xsd:element name="a1" type="xsd:double"/>
<xsd:element minOccurs="0" name="a2" type="xsd:double"/>
<xsd:element name="c" type="xsd:double"/>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="row-1" type="String2DVecType"/>
<xsd:element name="row-2" type="String2DVecType"/>
<xsd:element name="c" type="xsd:double"/>
</xsd:sequence>
<xsd:element name="bravaisMatrix" type="BravaisMatrixType"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="scale" type="xsd:double" use="required"/>
<xsd:attribute name="latnam" type="LatnamEnum" use="required"/>
</xsd:complexType>
<xsd:complexType name="FilmLatticeType">
<xsd:sequence>
<xsd:choice>
<xsd:sequence>
<xsd:element name="a1" type="xsd:double"/>
<xsd:element minOccurs="0" name="a2" type="xsd:double"/>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="row-1" type="String2DVecType"/>
<xsd:element name="row-2" type="String2DVecType"/>
</xsd:sequence>
<xsd:element name="bravaisMatrix" type="BravaisMatrixType"/>
</xsd:choice>
<xsd:element minOccurs="0" maxOccurs="2" name="vacuumEnergyParameters" type="VacuumEnergyParameterType"/>
</xsd:sequence>
<xsd:attribute name="scale" type="xsd:double" use="required"/>
<xsd:attribute name="latnam" type="LatnamEnum" use="required"/>
<xsd:attribute name="dVac" type="xsd:double" use="required"/>
<xsd:attribute name="dTilda" type="xsd:double" use="required"/>
</xsd:complexType>
<xsd:complexType name="VacuumEnergyParameterType">
<xsd:attribute name="vacuum" type="xsd:integer" use="required"/>
<xsd:attribute name="spinUp" type="xsd:double" use="required"/>
<xsd:attribute name="spinDown" type="xsd:double" use="optional"/>
</xsd:complexType>
<xsd:complexType name="BravaisMatrixType">
<xsd:sequence>
<xsd:element name="row-1" type="String3DVecType"/>
<xsd:element name="row-2" type="String3DVecType"/>
<xsd:element name="row-3" type="String3DVecType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="StringVecType">
<xsd:list itemType="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="String2DVecType">
<xsd:restriction base="StringVecType">
<xsd:length value="2"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="String3DVecType">
<xsd:restriction base="StringVecType">
<xsd:length value="3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TripleFleurBool">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[FT][FT][FT]"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="DoubleVecType">
<xsd:list itemType="xsd:double"/>
</xsd:simpleType>
<xsd:simpleType name="Double3DVecType">
<xsd:restriction base="DoubleVecType">
<xsd:length value="3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="Double4DVecType">
<xsd:restriction base="DoubleVecType">
<xsd:length value="4"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="SymOpMatrixType">
<xsd:sequence>
<xsd:element name="row-1" type="Double4DVecType"/>
<xsd:element name="row-2" type="Double4DVecType"/>
<xsd:element name="row-3" type="Double4DVecType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="XCFunctionalType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="xcParams" type="XCParamsType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="ggaPrinting" type="GGAPrintingType"/>
</xsd:sequence>
<xsd:attribute name="name" type="XCFunctionalEnum" use="required"/>
<xsd:attribute default="F" name="relativisticCorrections" type="FleurBool" use="optional"/>
</xsd:complexType>
<xsd:simpleType name="XCFunctionalEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="x-a"/>
<xsd:enumeration value="mjw"/>
<xsd:enumeration value="pz"/>
<xsd:enumeration value="bh"/>
<xsd:enumeration value="wign"/>
<xsd:enumeration value="hl"/>
<xsd:enumeration value="vwn"/>
<xsd:enumeration value="xal"/>
<xsd:enumeration value="l91"/>
<xsd:enumeration value="pw91"/>
<xsd:enumeration value="pbe"/>
<xsd:enumeration value="rpbe"/>
<xsd:enumeration value="Rpbe"/>
<xsd:enumeration value="wc"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="XCParamsType">
<xsd:attribute name="igrd" type="xsd:integer" use="required"/>
<xsd:attribute name="lwb" type="FleurBool" use="required"/>
<xsd:attribute name="ndvgrd" type="xsd:integer" use="required"/>
<xsd:attribute name="idsprs" type="xsd:integer" use="required"/>
<xsd:attribute name="chng" type="xsd:double" use="required"/>
</xsd:complexType>
<xsd:complexType name="GGAPrintingType">
<xsd:attribute name="iggachk" type="xsd:integer" use="required"/>
<xsd:attribute name="idsprs0" type="xsd:integer" use="required"/>
<xsd:attribute name="idsprsl" type="xsd:integer" use="required"/>
<xsd:attribute name="idsprsi" type="xsd:integer" use="required"/>
<xsd:attribute name="idsprsv" type="xsd:double" use="required"/>
</xsd:complexType>
<xsd:complexType name="AtomSpeciesType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="species" type="SpeciesType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SpeciesType">
<xsd:sequence>
<xsd:element name="mtSphere" type="MTSphereType"/>
<xsd:element name="atomicCutoffs" type="AtomicCutoffsType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="energyParameters" type="EnergyParametersType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="force" type="ForceType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="electronConfig" type="ElectronConfigType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="nocoParams" type="AtomicNocoParamsType"/>
<xsd:element maxOccurs="4" minOccurs="0" name="ldaU" type="LdaUType"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="lo" type="LOType"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="element" type="xsd:string" use="required"/>
<xsd:attribute name="atomicNumber" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute name="coreStates" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute default="0.0" name="magMom" type="xsd:double" use="optional"/>
<xsd:attribute default="F" name="flipSpin" type="FleurBool" use="optional"/>
<xsd:attribute name="magField" type="xsd:double" use=