Commit b61c7701 authored by Gregor Michalicek's avatar Gregor Michalicek

Add some preliminary RDMFT input

parent 9faf27d2
......@@ -699,6 +699,30 @@ input%preconditioning_param = evaluateFirstOnly(xmlGetAttributeValue('/fleurInpu
input%ldauSpinf = evaluateFirstOnly(xmlGetAttributeValue(TRIM(ADJUSTL(xPathA))//'/@spinf'))
END IF
! Read in RDMFT parameters
input%l_rdmft = .FALSE.
input%rdmftOccEps = 0.00001
input%rdmftStatesBelow = 5
input%rdmftStatesAbove = 5
input%rdmftFunctional = -1
xPathA = '/fleurInput/calculationSetup/rdmft'
numberNodes = xmlGetNumberOfNodes(xPathA)
IF (numberNodes.EQ.1) THEN
input%l_rdmft = evaluateFirstBoolOnly(xmlGetAttributeValue(TRIM(ADJUSTL(xPathA))//'/@l_rdmft'))
input%rdmftOccEps = evaluateFirstOnly(xmlGetAttributeValue(TRIM(ADJUSTL(xPathA))//'/@occEps'))
input%rdmftStatesBelow = evaluateFirstIntOnly(xmlGetAttributeValue(TRIM(ADJUSTL(xPathA))//'/@statesBelow'))
input%rdmftStatesAbove = evaluateFirstIntOnly(xmlGetAttributeValue(TRIM(ADJUSTL(xPathA))//'/@statesAbove'))
valueString = TRIM(ADJUSTL(xmlGetAttributeValue(TRIM(ADJUSTL(xPathA))//'/@functional')))
SELECT CASE (valueString)
CASE ('Muller')
input%rdmftFunctional = 1
CASE DEFAULT
STOP 'Error: unknown RDMFT functional selected!'
END SELECT
END IF
! Read in optional q point mesh for spin spirals
xPathA = '/fleurInput/calculationSetup/spinSpiralQPointMesh'
......
......@@ -51,6 +51,7 @@
<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="ldaU" type="LdaUGeneralType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="rdmft" type="RDMFTType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="spinSpiralQPointMesh" type="SpinSpiralQPointMeshType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="fields" type="FieldType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="energyParameterLimits" type="EnergyParameterLimitsType"/>
......@@ -599,6 +600,14 @@
<xsd:attribute default="1.00" name="spinf" type="xsd:double" use="optional"/>
</xsd:complexType>
<xsd:complexType name="RDMFTType">
<xsd:attribute default="F" name="l_rdmft" type="FleurBool" use="required"/>
<xsd:attribute default="0.00001" name="occEps" type="xsd:double" use="optional"/>
<xsd:attribute name="statesBelow" type="xsd:positiveInteger" use="required"/>
<xsd:attribute name="statesAbove" type="xsd:positiveInteger" use="required"/>
<xsd:attribute name="functional" type="RDMFTFunctionalEnum" use="required"/>
</xsd:complexType>
<xsd:complexType name="DOSOutputType">
<xsd:attribute name="ndir" type="xsd:integer" use="required"/>
<xsd:attribute name="minEnergy" type="xsd:string" use="required"/>
......@@ -941,6 +950,12 @@
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="RDMFTFunctionalEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Muller"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="NobleGasConfigEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="[He]"/>
......
This diff is collapsed.
......@@ -411,6 +411,11 @@ MODULE m_types_setup
LOGICAL :: ldauLinMix
REAL :: ldauMixParam
REAL :: ldauSpinf
LOGICAL :: l_rdmft
REAL :: rdmftOccEps
INTEGER :: rdmftStatesBelow
INTEGER :: rdmftStatesAbove
INTEGER :: rdmftFunctional
END TYPE t_input
TYPE t_sliceplot
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment