From 612cea3891460e07460e4c35f184dac9801ecc47 Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Wed, 9 Mar 2022 14:11:03 -0500 Subject: [PATCH] Fix group implementation to abide by new atom type formulation --- src/opt_group.f90 | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/src/opt_group.f90 b/src/opt_group.f90 index 776d161..58b81bb 100644 --- a/src/opt_group.f90 +++ b/src/opt_group.f90 @@ -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