summaryrefslogtreecommitdiff
path: root/new
diff options
context:
space:
mode:
authorConnor Moore <connor@hhmoore.ca>2026-02-25 12:47:03 -0500
committerConnor Moore <connor@hhmoore.ca>2026-02-25 12:47:03 -0500
commit9013106e09e2b380e93df8f1a79153630885d185 (patch)
tree4e20768cc60f0740823e69647939d860a84bcffb /new
parent85a8d86d0cb0e114c2f3a471e0cf1b82945445ec (diff)
Forced real64 for everything and added gitignore
Diffstat (limited to 'new')
-rw-r--r--new/self-langevin-motion.f9054
1 files changed, 27 insertions, 27 deletions
diff --git a/new/self-langevin-motion.f90 b/new/self-langevin-motion.f90
index 167da70..6c048d9 100644
--- a/new/self-langevin-motion.f90
+++ b/new/self-langevin-motion.f90
@@ -7,19 +7,19 @@ program langevin_motion
!> Define some basic parameters
integer(int64), parameter :: n = 1000
- real(real64), parameter :: pi = 2.0*asin(1.0)
- real(real64), parameter :: L = 1.0
+ real(real64), parameter :: pi = 2.0_real64*asin(1.0_real64)
+ real(real64), parameter :: L = 1.0_real64
!> Numerical constants and such
- real(real64), parameter :: dt = 0.005
- real(real64), parameter :: t_max = 10.0
- real(real64), parameter :: kT = 10.0
- real(real64), parameter :: g = 1.0
- real(real64), parameter :: m = 1.0
- real(real64), parameter :: eps = 1.0
- real(real64), parameter :: sigma = 1E-03
- real(real64), parameter :: rc = sigma*2**(1.0/6.0)
- real(real64), parameter :: pref1 = g, pref2 = sqrt(24.0*kT*g/dt)
+ real(real64), parameter :: dt = 0.005_real64
+ real(real64), parameter :: t_max = 10.0_real64
+ real(real64), parameter :: kT = 10.0_real64
+ real(real64), parameter :: g = 1.0_real64
+ real(real64), parameter :: m = 1.0_real64
+ real(real64), parameter :: eps = 1.0_real64
+ real(real64), parameter :: sigma = 1E-03_real64
+ real(real64), parameter :: rc = sigma*2**(1.0_real64/6.0_real64)
+ real(real64), parameter :: pref1 = g, pref2 = sqrt(24.0_real64*kT*g/dt)
!> And non-constants
real(real64) :: t
@@ -39,8 +39,8 @@ program langevin_motion
do while (t .lt. t_max)
!> Update half-step velocities
- vhx = vx + 0.5*ax*dt
- vhy = vy + 0.5*ay*dt
+ vhx = vx + 0.5_real64*ax*dt
+ vhy = vy + 0.5_real64*ay*dt
!> Update the positions
px = px + vhx*dt
@@ -50,13 +50,13 @@ program langevin_motion
call impose_BC(px, py, vhx, vhy, is_tracked, L)
!> Find the new acceleration
- ax = 0.0
- ay = 0.0
+ ax = 0.0_real64
+ ay = 0.0_real64
call random_number(ran1)
- ran1 = ran1 - 0.5
+ ran1 = ran1 - 0.5_real64
call random_number(ran2)
- ran2 = ran2 - 0.5
+ ran2 = ran2 - 0.5_real64
!> Random force
ax = ax - pref1*vhx + ran1
@@ -74,12 +74,12 @@ program langevin_motion
are_interacting = (dn .gt. 0.0) .and. (dn .lt. rc) .and. is_tracked
!> Start with no forces
- F = 0.0
+ F = 0.0_real64
where (are_interacting)
!> Lennardn-Jones force
- F = 4.0*eps*(-12.0*sigma**12/dn**13 + 6.0*sigma**6/dn**7)
+ F = 4.0_real64*eps*(-12.0_real64*sigma**12/dn**13 + 6.0_real64*sigma**6/dn**7)
end where
@@ -90,8 +90,8 @@ program langevin_motion
end do interactions
!> Update full velocities
- vx = vhx + 0.5*ax*dt
- vy = vhy + 0.5*ay*dt
+ vx = vhx + 0.5_real64*ax*dt
+ vy = vhy + 0.5_real64*ay*dt
!> Update timestep
t = t + dt
@@ -120,20 +120,20 @@ contains
call random_number(ran2)
!> Initial position
- px = L*(ran1-0.5)
- py = L*(ran2-0.5)
+ px = L*(ran1-0.5_real64)
+ py = L*(ran2-0.5_real64)
!> Initial acceleration is zero
- ax = 0.0
- ay = 0.0
+ ax = 0.0_real64
+ ay = 0.0_real64
!> New random numbers
call random_number(ran1)
call random_number(ran2)
!> Initial velocity using Box-Muller transform
- vx = sqrt(kT/m)*sqrt(-2.0*log(ran1))*cos(2*pi*ran2)
- vy = sqrt(kT/m)*sqrt(-2.0*log(ran1))*sin(2*pi*ran2)
+ vx = sqrt(kT/m)*sqrt(-2.0_real64*log(ran1))*cos(2.0_real64*pi*ran2)
+ vy = sqrt(kT/m)*sqrt(-2.0_real64*log(ran1))*sin(2.0_real64*pi*ran2)
end subroutine initialize_particles