ufsowa / mcdif

Monte Carlo based alghoritms used to simulate thermodynamic and kinetic properties of the alloys
3 stars 4 forks source link

Shift of the layers #21

Closed ufsowa closed 8 years ago

ufsowa commented 8 years ago

Actually, layers do not move.

Reserves movement criteria. Reinit_blocks and REZ

:facepunch: Add checking of reservuars in dislocation_movement() or find_migration_path()

dislocation_movement() return MOVE true or false which later i used in remove_vac or add_vac in usual way.

ufsowa commented 8 years ago

:interrobang: find_migratio path return last site

Two alternative solutions exists:

  1. With mark option
  2. With type option

    • ad. 2) When node entries REZ check for type in REZ. If node type in REZ move REZ as usual.
    • ad. 1) When node meats vac. cluster. Check if node belong to VAC or ATM. If belongs to VAC, mark node as REZ.

    This require modification of find_migration_path. When in REZ check if type exist. If exist exchange. If not, move_frame.

ufsowa commented 8 years ago

OK. Lets do the option (1). It will be faster.

ufsowa commented 8 years ago

In opcja::find_migration_path() few case modification are needed:

ufsowa commented 8 years ago

It looks like I need functon which takes *site and do all operation base on this site. site has information on which REZ belongs - > rez_index

ufsowa commented 8 years ago

plaster::check() if one exist return true. Now, if one of two does not exist returns false.

ufsowa commented 8 years ago

almost finished.

It is criteria in case of lack of type. Additional criteria is needed when dV is equal to plane. Must be checked before/after :interrobang: every equlibration

:facepunch: check_rez() added in find_mig_path()

ufsowa commented 8 years ago

done :facepunch:

Now, tests