Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
fleur
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
54
Issues
54
List
Boards
Labels
Service Desk
Milestones
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
fleur
fleur
Commits
7873cae7
Commit
7873cae7
authored
May 16, 2020
by
Alexander Neukirchen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added individual plot stops. Hope this runs.
parent
5f71ed62
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
94 additions
and
85 deletions
+94
-85
fleurinput/constants.f90
fleurinput/constants.f90
+9
-9
main/cdngen.F90
main/cdngen.F90
+3
-3
main/fleur.F90
main/fleur.F90
+9
-2
optional/plot.F90
optional/plot.F90
+64
-64
tests/tests/PlotDenandPot/files/inp-2.xml
tests/tests/PlotDenandPot/files/inp-2.xml
+1
-1
tests/tests/PlotOnlyMT/test.run3
tests/tests/PlotOnlyMT/test.run3
+5
-6
vgen/vgen_finalize.F90
vgen/vgen_finalize.F90
+3
-0
No files found.
fleurinput/constants.f90
View file @
7873cae7
...
...
@@ -41,16 +41,16 @@ MODULE m_constants
INTEGER
,
PARAMETER
::
POTDEN_TYPE_EnergyDen
=
5
INTEGER
,
PARAMETER
::
POTDEN_TYPE_DEN
=
1001
! 1000 < POTDEN_TYPE ==> density
! 11 == plot not yet implemented
INTEGER
,
PARAMETER
::
PLOT_INPDEN
=
1
INTEGER
,
PARAMETER
::
PLOT_OUTDEN_Y_CORE
=
2
INTEGER
,
PARAMETER
::
PLOT_INPDEN_N_CORE
=
3
INTEGER
,
PARAMETER
::
PLOT_MIXDEN_Y_CORE
=
4
INTEGER
,
PARAMETER
::
PLOT_MIXDEN_N_CORE
=
5
INTEGER
,
PARAMETER
::
PLOT_POT_TOT
=
7
INTEGER
,
PARAMETER
::
PLOT_POT_EXT
=
8
INTEGER
,
PARAMETER
::
PLOT_POT_COU
=
9
INTEGER
,
PARAMETER
::
PLOT_POT_VXC
=
10
INTEGER
,
PARAMETER
::
PLOT_INPDEN_N_CORE
=
11
INTEGER
,
PARAMETER
::
PLOT_POT_TOT
=
2
INTEGER
,
PARAMETER
::
PLOT_POT_EXT
=
11
INTEGER
,
PARAMETER
::
PLOT_POT_COU
=
3
INTEGER
,
PARAMETER
::
PLOT_POT_VXC
=
4
INTEGER
,
PARAMETER
::
PLOT_OUTDEN_Y_CORE
=
5
INTEGER
,
PARAMETER
::
PLOT_MIXDEN_Y_CORE
=
6
INTEGER
,
PARAMETER
::
PLOT_MIXDEN_N_CORE
=
11
CHARACTER
(
2
),
DIMENSION
(
0
:
103
),
PARAMETER
::
namat_const
=
(/&
'va'
,
' H'
,
'He'
,
'Li'
,
'Be'
,
' B'
,
' C'
,
' N'
,
' O'
,
' F'
,
'Ne'
,&
...
...
main/cdngen.F90
View file @
7873cae7
...
...
@@ -201,9 +201,9 @@ SUBROUTINE cdngen(eig_id,mpi,input,banddos,sliceplot,vacuum,&
CALL
juDFT_end
(
"slice OK"
,
mpi
%
irank
)
END
IF
IF
(
sliceplot
%
iplot
.NE.
0
)
THEN
CALL
makeplots
(
stars
,
atoms
,
sphhar
,
vacuum
,
input
,
mpi
,
oneD
,
sym
,
cell
,
noco
,
nococonv
,
outDen
,
PLOT_OUTDEN_Y_CORE
,
sliceplot
)
END
IF
!
IF (sliceplot%iplot.NE.0) THEN
!
CALL makeplots(stars, atoms, sphhar, vacuum, input, mpi,oneD, sym, cell, noco,nococonv, outDen, PLOT_OUTDEN_Y_CORE, sliceplot)
!
END IF
CALL
timestart
(
"cdngen: cdncore"
)
if
(
xcpot
%
exc_is_MetaGGA
())
then
...
...
main/fleur.F90
View file @
7873cae7
...
...
@@ -66,7 +66,6 @@ CONTAINS
USE
m_metagga
USE
m_plot
USE
m_hubbard1_setup
#ifdef CPP_MPI
USE
m_mpi_bc_potden
#endif
...
...
@@ -250,6 +249,10 @@ IF (fi%sliceplot%iplot.NE.0) THEN
CALL
makeplots
(
stars
,
fi
%
atoms
,
sphhar
,
fi
%
vacuum
,
fi
%
input
,
mpi
,
fi
%
oneD
,
fi
%
sym
,
fi
%
cell
,
&
fi
%
noco
,
nococonv
,
inDen
,
PLOT_INPDEN
,
fi
%
sliceplot
)
IF
((
mpi
%
irank
.EQ.
0
)
.AND.
(
fi
%
sliceplot
%
iplot
.EQ.
2
))
THEN
CALL
juDFT_end
(
"Stopped self consistency loop after plots have been generated."
)
END
IF
IF
(
mpi
%
irank
.EQ.
0.
AND
.
fi
%
noco
%
l_alignMT
)
THEN
CALL
rotateMagnetToSpinAxis
(
fi
%
vacuum
,
sphhar
,
stars
,
fi
%
sym
,
fi
%
oneD
,
fi
%
cell
,
fi
%
noco
,
nococonv
,
fi
%
input
,
fi
%
atoms
,
inDen
,
.FALSE.
)
#ifdef CPP_MPI
...
...
@@ -450,6 +453,10 @@ END IF
CALL
makeplots
(
stars
,
fi
%
atoms
,
sphhar
,
fi
%
vacuum
,
fi
%
input
,
mpi
,
fi
%
oneD
,
fi
%
sym
,
&
fi
%
cell
,
fi
%
noco
,
nococonv
,
outDen
,
PLOT_OUTDEN_Y_CORE
,
fi
%
sliceplot
)
IF
((
fi
%
sliceplot
%
iplot
.NE.
0
)
.AND.
(
mpi
%
irank
.EQ.
0
)
.AND.
(
fi
%
sliceplot
%
iplot
.LT.
64
)
.AND.
(
MODULO
(
fi
%
sliceplot
%
iplot
,
2
)
.NE.
1
))
THEN
CALL
juDFT_end
(
"Stopped self consistency loop after plots have been generated."
)
END
IF
IF
(
mpi
%
irank
.EQ.
0.
AND
.
fi
%
noco
%
l_alignMT
)
THEN
CALL
rotateMagnetToSpinAxis
(
fi
%
vacuum
,
sphhar
,
stars
,
fi
%
sym
,
fi
%
oneD
,
fi
%
cell
,
fi
%
noco
,
nococonv
,
fi
%
input
,
fi
%
atoms
,
outDen
,
.FALSE.
)
#ifdef CPP_MPI
...
...
@@ -672,4 +679,4 @@ END IF
END
SUBROUTINE
priv_geo_end
END
SUBROUTINE
fleur_execute
END
MODULE
m_fleur
\ No newline at end of file
END
MODULE
m_fleur
optional/plot.F90
View file @
7873cae7
...
...
@@ -1075,10 +1075,10 @@ CONTAINS
END
IF
! Plotting the output density matrix as n / n, m / n, mx, my, mz.
! Plot identifier: PLOT_OUTDEN_Y_CORE =
2
! Plot identifier: PLOT_OUTDEN_Y_CORE =
5
! No core subtraction done!
! Additive term for iplot:
4
IF
(
plot_const
.EQ.
2
)
THEN
! Additive term for iplot:
32
IF
(
plot_const
.EQ.
5
)
THEN
factor
=
1.0
denName
=
'denOutWithCore'
score
=
.FALSE.
...
...
@@ -1099,36 +1099,36 @@ CONTAINS
END
IF
END
IF
! Plotting the output density matrix as n / n, m / n, mx, my, mz.
! Plot identifier: PLOT_OUTDEN_N_CORE = 3
! Core subtraction done!
! Additive term for iplot: 8
IF
(
plot_const
.EQ.
3
)
THEN
factor
=
1.0
denName
=
'denOutNOCore'
score
=
.TRUE.
potnorm
=
.FALSE.
IF
(
input
%
jspins
.EQ.
2
)
THEN
IF
(
noco
%
l_noco
)
THEN
CALL
matrixplot
(
sliceplot
,
stars
,
atoms
,
sphhar
,
vacuum
,
input
,
mpi
,
oneD
,
sym
,
&
cell
,
noco
,
nococonv
,
factor
,
score
,
potnorm
,
denmat
,
&
denName
)
ELSE
CALL
vectorplot
(
sliceplot
,
stars
,
atoms
,
sphhar
,
vacuum
,
input
,
mpi
,
oneD
,
sym
,
&
cell
,
noco
,
nococonv
,
factor
,
score
,
potnorm
,
denmat
,
&
denName
)
END
IF
ELSE
CALL
savxsf
(
sliceplot
,
stars
,
atoms
,
sphhar
,
vacuum
,
input
,
mpi
,
oneD
,
sym
,
cell
,
&
noco
,
nococonv
,
score
,
potnorm
,
denName
,
denmat
)
END
IF
END
IF
!
!
Plotting the output density matrix as n / n, m / n, mx, my, mz.
!
!
Plot identifier: PLOT_OUTDEN_N_CORE = 3
!
!
Core subtraction done!
!
!
Additive term for iplot: 8
!
IF (plot_const.EQ.3) THEN
!
factor = 1.0
!
denName = 'denOutNOCore'
!
score = .TRUE.
!
potnorm = .FALSE.
!
IF (input%jspins.EQ.2) THEN
!
IF (noco%l_noco) THEN
!
CALL matrixplot(sliceplot,stars, atoms, sphhar, vacuum, input, mpi,oneD, sym, &
!
cell, noco, nococonv, factor, score, potnorm, denmat, &
!
denName)
!
ELSE
!
CALL vectorplot(sliceplot,stars, atoms, sphhar, vacuum, input, mpi,oneD, sym, &
!
cell, noco, nococonv, factor, score, potnorm, denmat, &
!
denName)
!
END IF
!
ELSE
!
CALL savxsf(sliceplot,stars, atoms, sphhar, vacuum, input, mpi ,oneD, sym, cell, &
!
noco, nococonv, score, potnorm, denName, denmat)
!
END IF
!
END IF
! Plotting the mixed density matrix as n / n, m / n, mx, my, mz.
! Plot identifier: PLOT_MIXDEN_Y_CORE =
4
! Plot identifier: PLOT_MIXDEN_Y_CORE =
6
! No core subtraction done!
! Additive term for iplot: 1
6
IF
(
plot_const
.EQ.
4
)
THEN
! Additive term for iplot: 1
28
IF
(
plot_const
.EQ.
6
)
THEN
factor
=
1.0
denName
=
'denOutMixWithCore'
score
=
.FALSE.
...
...
@@ -1149,38 +1149,38 @@ CONTAINS
END
IF
END
IF
! Plotting the mixed density matrix as n / n, m / n, mx, my, mz.
! Plot identifier: PLOT_MIXDEN_N_CORE = 5
! Core subtraction done!
! Additive term for iplot: 32
IF
(
plot_const
.EQ.
5
)
THEN
factor
=
1.0
denName
=
'denOutMixNoCore'
score
=
.TRUE.
potnorm
=
.FALSE.
IF
(
input
%
jspins
.EQ.
2
)
THEN
IF
(
noco
%
l_noco
)
THEN
CALL
matrixplot
(
sliceplot
,
stars
,
atoms
,
sphhar
,
vacuum
,
input
,
mpi
,
oneD
,
sym
,
&
cell
,
noco
,
nococonv
,
factor
,
score
,
potnorm
,
denmat
,
&
denName
)
ELSE
CALL
vectorplot
(
sliceplot
,
stars
,
atoms
,
sphhar
,
vacuum
,
input
,
mpi
,
oneD
,
sym
,
&
cell
,
noco
,
nococonv
,
factor
,
score
,
potnorm
,
denmat
,
&
denName
)
END
IF
ELSE
CALL
savxsf
(
sliceplot
,
stars
,
atoms
,
sphhar
,
vacuum
,
input
,
mpi
,
oneD
,
sym
,
cell
,
&
noco
,
nococonv
,
score
,
potnorm
,
denName
,
denmat
)
END
IF
END
IF
!
!
Plotting the mixed density matrix as n / n, m / n, mx, my, mz.
!
!
Plot identifier: PLOT_MIXDEN_N_CORE = 5
!
!
Core subtraction done!
!
!
Additive term for iplot: 32
!
IF (plot_const.EQ.5) THEN
!
factor = 1.0
!
denName = 'denOutMixNoCore'
!
score = .TRUE.
!
potnorm = .FALSE.
!
IF (input%jspins.EQ.2) THEN
!
IF (noco%l_noco) THEN
!
CALL matrixplot(sliceplot,stars, atoms, sphhar, vacuum, input,mpi, oneD, sym, &
!
cell, noco, nococonv, factor, score, potnorm, denmat, &
!
denName)
!
ELSE
!
CALL vectorplot(sliceplot,stars, atoms, sphhar, vacuum, input, mpi,oneD, sym, &
!
cell, noco, nococonv, factor, score, potnorm, denmat, &
!
denName)
!
END IF
!
ELSE
!
CALL savxsf(sliceplot,stars, atoms, sphhar, vacuum, input,mpi , oneD, sym, cell, &
!
noco, nococonv, score, potnorm, denName, denmat)
!
END IF
!
END IF
! Plotting the total potential as vTot / v_eff, B_eff / v_eff,
! B_xc_1, B_xc_2, B_xc_3.
! Plot identifier: PLOT_POT_TOT =
7
! Plot identifier: PLOT_POT_TOT =
2
! No core subtraction done!
! Additive term for iplot:
128
IF
(
plot_const
.EQ.
7
)
THEN
! Additive term for iplot:
4
IF
(
plot_const
.EQ.
2
)
THEN
IF
(
noco
%
l_alignMT
)
CALL
juDFT_warn
(
"l_alignMT=T and plotting potentials can lead to wrong potentials visualized inside the MT"
,
calledby
=
"plot.f90"
)
factor
=
2.0
denName
=
'vTot'
...
...
@@ -1203,10 +1203,10 @@ CONTAINS
END
IF
! Plotting the Coulomb potential as vCoul.
! Plot identifier: PLOT_POT_COU =
9
! Plot identifier: PLOT_POT_COU =
3
! No core subtraction done!
! Additive term for iplot:
512
IF
(
plot_const
.EQ.
9
)
THEN
! Additive term for iplot:
8
IF
(
plot_const
.EQ.
3
)
THEN
IF
(
noco
%
l_alignMT
)
CALL
juDFT_warn
(
"l_alignMT=T and plotting potentials can lead to wrong potentials visualized inside the MT"
,
calledby
=
"plot.f90"
)
factor
=
1.0
denName
=
'vCoul'
...
...
@@ -1218,10 +1218,10 @@ CONTAINS
! Plotting the xc potential as vXc / v_Xc, B_Xc / v_Xc,
! B_xc_1, B_xc_2, B_xc_3.
! Plot identifier: PLOT_POT_VXC =
10
! Plot identifier: PLOT_POT_VXC =
4
! No core subtraction done!
! Additive term for iplot: 1
024
IF
(
plot_const
.EQ.
10
)
THEN
! Additive term for iplot: 1
6
IF
(
plot_const
.EQ.
4
)
THEN
IF
(
noco
%
l_alignMT
)
CALL
juDFT_warn
(
"l_alignMT=T and plotting potentials can lead to wrong potentials visualized inside the MT"
,
calledby
=
"plot.f90"
)
factor
=
2.0
denName
=
'vXc'
...
...
@@ -1290,7 +1290,7 @@ INCLUDE 'mpif.h'
CALL
procplot
(
stars
,
atoms
,
sphhar
,
sliceplot
,
vacuum
,
input
,
mpi
,
oneD
,
sym
,
cell
,
&
noco
,
nococonv
,
denmat
,
plot_const
)
END
IF
CALL
timestop
(
"Plotting iplot plots"
)
CALL
timestop
(
"Plotting iplot plots"
)
END
SUBROUTINE
makeplots
...
...
tests/tests/PlotDenandPot/files/inp-2.xml
View file @
7873cae7
...
...
@@ -118,7 +118,7 @@
<densityOfStates
ndir=
"0"
minEnergy=
"-.50000000"
maxEnergy=
".50000000"
sigma=
".01500000"
/>
<vacuumDOS
layers=
"0"
integ=
"F"
star=
"F"
nstars=
"0"
locx1=
".00000"
locy1=
".00000"
locx2=
".00000"
locy2=
".00000"
nstm=
"0"
tworkf=
".00000"
/>
<unfoldingBand
unfoldBand=
"F"
supercellX=
"1"
supercellY=
"1"
supercellZ=
"1"
/>
<plotting
iplot=
"1
"
polar=
"F"
format=
"1"
>
<plotting
iplot=
"6
"
polar=
"F"
format=
"1"
>
<plot
cartesian=
"f"
TwoD=
"F"
grid=
"10 10 10"
vec1=
"1.0 0.0 0.0"
vec2=
"0.0 1.0 0.0"
vec3=
"0.0 0.0 1.0"
zero=
"0.0 0.0 0.0"
file=
'plot'
vecField=
'T'
/>
</plotting>
<chargeDensitySlicing
numkpt=
"0"
minEigenval=
".00000000"
maxEigenval=
".00000000"
nnne=
"0"
pallst=
"F"
/>
...
...
tests/tests/PlotOnlyMT/test.run3
View file @
7873cae7
...
...
@@ -10,10 +10,9 @@ $result+=jt::test_grepexists("$workdir/denIn_A_vec_plotOnlyMT.xsf","2.86600");
$result+=jt::test_grepexists("$workdir/denIn_A_vec_plotOnlyMT.xsf","1.43300");
#Grep density values
$result+=jt::test_grepexists("$workdir/denIn_A_vec_plotOnlyMT.xsf","0.00000000.*0.00000000.*0.00000000.*0.00000000");
$result+=jt::test_grepexists("$workdir/denIn_A_vec_plotOnlyMT.xsf","4.6045648");
$result+=jt::test_grepexists("$workdir/denIn_A_vec_plotOnlyMT.xsf","3.5526110");
$result+=jt::test_grepexists("$workdir/denIn_A_vec_plotOnlyMT.xsf","5.3227640");
$result+=jt::test_grepexists("$workdir/denIn_A_vec_plotOnlyMT.xsf","8.482447");
$result+=jt::test_grepexists("$workdir/denIn_A_vec_plotOnlyMT.xsf","0.439032");
$result+=jt::test_grepexists("$workdir/denIn_A_vec_plotOnlyMT.xsf","2.229111");
$result+=jt::test_grepexists("$workdir/denIn_A_vec_plot.xsf","2.229111");
$result+=jt::test_grepexists("$workdir/denIn_A_vec_plot.xsf","0.318444");
$result+=jt::test_grepexists("$workdir/denIn_A_vec_plot.xsf","5.7472348");
$result+=jt::test_grepexists("$workdir/denIn_A_vec_plot.xsf","0.4258351");
$result+=jt::test_grepexists("$workdir/denIn_A_vec_plot.xsf","2.547555");
jt::stageresult($workdir,$result,"3");
vgen/vgen_finalize.F90
View file @
7873cae7
...
...
@@ -138,6 +138,9 @@ CONTAINS
CALL
subPotDen
(
vxcForPlotting
,
vTot
,
vCoul
)
CALL
makeplots
(
stars
,
atoms
,
sphhar
,
vacuum
,
input
,
mpi
,
oneD
,
sym
,
cell
,
&
noco
,
nococonv
,
vxcForPlotting
,
PLOT_POT_VXC
,
sliceplot
)
IF
((
mpi
%
irank
.EQ.
0
)
.AND.
(
sliceplot
%
iplot
.LT.
32
)
.AND.
(
MODULO
(
fi
%
sliceplot
%
iplot
,
2
)
.NE.
1
))
THEN
CALL
juDFT_end
(
"Stopped self consistency loop after plots have been generated."
)
END
IF
END
IF
! Store vTot(L=0) component as r*vTot(L=0)/sqrt(4*pi):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment