Fix group implementation to abide by new atom type formulation

development
Alex Selimov 2 years ago
parent a9833f53bf
commit 612cea3891

@ -2,6 +2,7 @@ module opt_group
!This module contains all code associated with dislocations
use atoms
use parameters
use elements
use subroutines
@ -106,7 +107,7 @@ module opt_group
integer :: i, j, arglen, in_num
character(len=100) :: textholder, type_spec
real(kind=dp) H
real(kind=dp) H, mass
!Parse type and shape command
arg_pos = arg_pos + 1
@ -493,7 +494,8 @@ module opt_group
arg_pos = arg_pos + 1
call get_command_argument(arg_pos, textholder, arglen)
if (arglen==0) stop "Missing atom type for group"
call add_atom_type(textholder, group_type)
call atommass(textholder, mass)
call add_atom_type(mass, group_type)
case('notsize')
arg_pos = arg_pos + 1
call get_command_argument(arg_pos, textholder, arglen)
@ -521,7 +523,8 @@ module opt_group
arg_pos=arg_pos+1
call get_command_argument(arg_pos, textholder, arglen)
if (arglen==0) stop "Missing element type for insert command"
call add_atom_type(textholder, insert_type)
call atommass(textholder, mass)
call add_atom_type(mass, insert_type)
arg_pos=arg_pos + 1
call get_command_argument(arg_pos, textholder, arglen)
select case(trim(adjustl(textholder)))
@ -643,15 +646,6 @@ module opt_group
end if
end select
j = 0
do i = 1, group_atom_num
if (atom_index(i) == 23318348) then
j = j + 1
end if
end do
if (j > 1) stop "Code broken"
print *, 'Group contains ', group_ele_num, " elements and ", group_atom_num, " atoms."
end subroutine get_group
@ -1193,7 +1187,7 @@ module opt_group
subroutine alloy_group
!This subroutine randomizes the atom types to reach desired concentrations, this only operates on atoms
integer :: i, j, ia, type_map(10), added_types(num_species)
real(kind=dp) :: rand
real(kind=dp) :: rand, mass
print *, "Alloying group with desired fractions", s_fractions(1:num_species)
@ -1203,7 +1197,8 @@ module opt_group
!Now get the atom type maps for all the atoms and make the fractions a running sum
do i = 1, num_species
call add_atom_type(species_type(i), type_map(i))
call atommass(species_type(i), mass)
call add_atom_type(mass, type_map(i))
if(i > 1) s_fractions(i) = s_fractions(i) + s_fractions(i-1)
end do
!Now randomize the atom types

Loading…
Cancel
Save