You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
type :: energies
! Ab initio electronic energy
real(DP) :: e_pot
! Harmonic energy of the PI bead necklace
real(DP) :: e_pi
end type
type :: forces
! Ab initio forces
real(DP), allocatable, dimension(:, :) :: fxc, fyc, fzc
! Harmonic PI forces
real(DP), allocatable, dimension(:, :) :: fxq, fyq, fzq
! Difference forces between full and reference potential
real(DP), allocatable, dimension(:, :) :: fxdiff, fydiff, fzdiff
end type
type :: positions
real(DP), allocatable, dimension(:, :) ::x, y, z
end type
type :: momenta
real(DP), allocatable, dimension(:, :) ::px, py, pz
end type
type :: electronic_structure
! Dipoles, Transition Dipoles
! NAC couplings?
real(DP), allocatable, dimension(:) :: dip, tdip
end type
type mdstate
type(energies) :: e
type(forces) :: f
type(momenta) :: p
type(positions) :: q
type(electronic_structure) :: elstruct
end type
type(mdstate) :: state, state_prev
For surfaceHopping, we could then easily hold the whole state from a previous step, and be able to just do
Maybe something like this
For surfaceHopping, we could then easily hold the whole state from a previous step, and be able to just do
or vice versa in case we wanted to implement adaptive time step. See also https://stackoverflow.com/questions/19111471/fortran-derived-type-assignment
The text was updated successfully, but these errors were encountered: