# Test ferrofluid t_random seed 1 set name "ff-test" set ident "-1" # parameters set temperature 1 set friction 1 set box_l 20 set gap 1 set r 0.8 set lambda 7.0 set dipole_modulus [expr sqrt($lambda*pow((2*$r),3)) ] set n_part 1000 set lj_sig [expr 2*$r] set lj_eps 10 set lj_cut [expr pow(2.,1./6.) *$lj_sig] set lj_shift 0.25 set warmup_steps 100 set warmup_min_dist [expr 1.1*$lj_sig] set warmup_lj_cap_min 1 set warmup_lj_cap_max 500 set thermalization_steps_big 500 set thermalization_steps_small 500 set vmd_output "no" # setup MD setmd box_l $box_l $box_l $box_l setmd periodic 1 1 1 setmd max_num_cells 1000 setmd time_step 0.003 setmd skin 0 thermostat langevin $temperature $friction # Generate particles part 0 pos 0 0 0 dip 0 0 $dipole_modulus part 1 pos 3 0 0 dip 0 0 $dipole_modulus for {set i 1} { $i < $n_part } {incr i} { set try 0 while { ($try==0) || ([analyze mindist]<1)} { set try 1 catch {part $i delete} set posx [expr $box_l*[expr [t_random]]] set posy [expr $box_l*[expr [t_random]]] set posz [expr ($box_l-$gap)*[expr [t_random]]] set costheta [expr 2*[expr [t_random]] - 1] set sintheta [expr sin(acos($costheta))] set phi [expr 2*3.1415926536*[expr [t_random]]] set dipx [expr $sintheta*cos($phi)*$dipole_modulus] set dipy [expr $sintheta*sin($phi)*$dipole_modulus] set dipz [expr $costheta*$dipole_modulus] part $i pos $posx $posy $posz type 0 dip $dipx $dipy $dipz } } if {[lindex $argv 0] == "ds" } { puts "direct sum" setmd periodic 1 1 0 inter magnetic 1 mdds n_cut 30 integrate 0 set f [open directsum.dat w] for {set i 0} {$i <$n_part} {incr i} { puts $f [part $i print pos f] } close $f setmd periodic 1 1 1 exit } if {[lindex $argv 0] == "p3m" } { inter magnetic 1 p3m tunev2 accuracy 1E-7 integrate 0 puts [inter magnetic] set f [open p3m.dat w] for {set i 0} {$i <$n_part} {incr i} { puts $f [part $i print pos f] } close $f exit } if {[lindex $argv 0] == "mdlc" } { puts "mdlc" inter magnetic 1 p3m tunev2 accuracy 1E-7 inter magnetic mdlc 1E-7 1 integrate 0 set f [open mdlc.dat w] for {set i 0} {$i <$n_part} {incr i} { puts $f [part $i print pos f] } close $f exit }