ufsowa / mcdif

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

Update states after movement of dislocation #4

Closed ufsowa closed 8 years ago

ufsowa commented 8 years ago

EVENTS - update_events() +1: VACANCY - consider if still required, since using EVENTS ?? BLOCKS - by site::block_index HIST - by site::hist_index RESERV - add site::rez_index.

ufsowa commented 8 years ago

In animalisation issue, it was found that this concept is wrong.

Add update BLOCK after or before whole equilibration of BLOCKS is desirable. Problems:

  1. How to save flux_add/del which comes from dislocation?
  2. Stech,vac members keep unchanged during equlibration. stech, vac are set during plaster::do_init(). So it works fine, as it is already.

Only update after virtual_jump is useless, because stech,vec is set in init_do() before equilibration.

For sure, update of BLOCKS can be deleted (stech,vac). But it is important to count creation/deletion of sites.

ufsowa commented 8 years ago

ad. 1 How to save flux_add/del which comes from dislocation?

It can be done as it is now. Just comment remove of sites from plaster::PL_SITES_TYPY

:-1: Remove PL_SITES_TYP[typ].remove_if(is_equal(node)); in plaster:: plaster_delete_site(site* node)

ufsowa commented 8 years ago

There is a problem. Because PL_SITES_TYPY are used to choose type of atom to add/remove. It means that they have to be up to date.

ufsowa commented 8 years ago

Lets leave this as it is. With update after every virtual_jump.

Solution of this efficiency problem will be change of opcja::choose_typ() to choose from entire list of sites in plaster.

Loop while can be used with condition that typ_of_atom>0. This is required only in case when vacancy is created.

It can be a question how this change the probability of choosing a type A or B form list containing A,B,V.

:facepunch: