Skip to content
This repository was archived by the owner on Aug 28, 2024. It is now read-only.

Commit

Permalink
Disabled the rotation change for energy conservation. Disabled the na…
Browse files Browse the repository at this point in the history
…tural scale factor
  • Loading branch information
daminton committed Dec 30, 2022
1 parent 44f066d commit 7b1b9cd
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions src/fraggle/fraggle_generate.f90
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ module subroutine fraggle_generate_disrupt(self, nbody_system, param, t, lfailur
end if
call ieee_set_flag(ieee_all, .false.) ! Set all fpe flags to quiet

call self%set_natural_scale()
!call self%set_natural_scale()

call fragments%reset()

Expand All @@ -157,7 +157,7 @@ module subroutine fraggle_generate_disrupt(self, nbody_system, param, t, lfailur
call fraggle_generate_rot_vec(self)
call fraggle_generate_vel_vec(self)
call self%get_energy_and_momentum(nbody_system, param, lbefore=.false.)

exit
dEtot = self%Etot(2) - self%Etot(1)
dLmag = .mag. (self%Ltot(:,2) - self%Ltot(:,1))

Expand Down Expand Up @@ -195,7 +195,7 @@ module subroutine fraggle_generate_disrupt(self, nbody_system, param, t, lfailur
trim(adjustl(message)) // " tries")
end if

call self%set_original_scale()
!call self%set_original_scale()

! Restore the big array
if (lk_plpl) call pl%flatten(param)
Expand Down Expand Up @@ -503,15 +503,15 @@ module subroutine fraggle_generate_vel_vec(collider)
ke_residual = fragments%ke_budget - (fragments%ke_orbit + fragments%ke_spin)
! Make sure we don't take away too much orbital kinetic energy, otherwise the fragment can't escape
ke_avail(:) = fragments%ke_orbit_frag(:) - impactors%Gmass(1)*impactors%mass(2)/fragments%vmag(:)
ke_per_dof = -ke_residual/(2 * (nfrag - istart + 1))
ke_per_dof = -ke_residual/((nfrag - istart + 1))
do concurrent(i = istart:nfrag, ke_avail(i) > ke_per_dof)
fragments%vmag(i) = sqrt(2 * (fragments%ke_orbit_frag(i) - ke_per_dof)/fragments%mass(i))
fragments%vc(:,i) = fragments%vmag(i) * fragments%v_unit(:,i)
end do
do concurrent(i = istart:nfrag, fragments%ke_spin_frag(i) > ke_per_dof)
fragments%rotmag(i) = sqrt(2 * (fragments%ke_spin_frag(i) - ke_per_dof)/(fragments%mass(i) * fragments%radius(i)**2 * fragments%Ip(3,i)))
fragments%rot(:,i) = fragments%rotmag(i) * .unit.fragments%rot(:,i)
end do
! do concurrent(i = istart:nfrag, fragments%ke_spin_frag(i) > ke_per_dof)
! fragments%rotmag(i) = sqrt(2 * (fragments%ke_spin_frag(i) - ke_per_dof)/(fragments%mass(i) * fragments%radius(i)**2 * fragments%Ip(3,i)))
! fragments%rot(:,i) = fragments%rotmag(i) * .unit.fragments%rot(:,i)
! end do
call fragments%get_kinetic_energy()
ke_residual = fragments%ke_budget - (fragments%ke_orbit + fragments%ke_spin)

Expand Down

0 comments on commit 7b1b9cd

Please sign in to comment.