• Alexis SALZMAN's avatar
    Mainly adapting to new FM interface to treat GAMAIN and avoid prb · 89ca0c12
    Alexis SALZMAN authored
    dam_pull_out
    ============
    Adapting to para version
    
    FastMarchingInterface,TLSGeom,TLSSolver
    =======================================
    Modify groups (sm, sub mesh) to enter FM with known fixed and volatile
    values. This is following new FM interface. It correct bug with previous
    interface where progression of the front was stopped by re-initialisation
    process (all new variation of phi removed by fast marching).
    Now buildBndIntNonlocal (TLSGEOM) is creating 2 set (bnd_part_nonlocal
    and bnd_nonlocal) in replacement of the original bnd_nonlocal. Those
    sets split boundary of non local zone in :
    * boundary with local mesh element (bnd_nonlocal)
    * boundary with part boundary (bnd_part_nonlocal)
    Has before it is do_bnd_in that control if we create bnd_part_nonlocal or
    not by calling GetBoundary or GetInteriorBoundary.
    In GetBoundary a dirty hack is used to identify part boundary and remove
    Gama_c.
    When do_bnd_in is 0 bnd_part_nonlocal exist but is empty.
    
    For FM, bnd_part_nonlocal is used has known volatile value. Says those
    part boundary value may or may not be re-initialized by FM. In the
    latter case those values are used for velocity computation as new extra
    modes with their values unmodified. This imply that on part
    boundary the level set live its own life when phi gradient enter the
    part.
    
    Unfortunately as can be seen, for now, in new dam_gamain test, setting
    bnd_part_nonlocal as volatile values may stop progression of the front
    just like before when all modified values are reset by FM.
    
    N. Chevaugeon suggested to create only volatile values for non modified
    values (values not updated during current time step). This look like a
    promising solution because removing these values from bnd_part_nonlocal
    and put them in bnd_nonlocal force them to be still present in velocity
    computation. It ensure that variation of phi is not destroyed. But it
    does not insure anymore that phi gradient norm is 1 around those values.
    This somehow must be the case when gradient direction start to be collinear
    to part boundary. In that case epsilon_ratio was supposed to do the job
    but for rather blunt variation of phi it is not clear if this will fits
    ours needs. So filtering like that bnd_part_nonlocal seems interesting.
    TODO
    
    About epsilon_ratio it have been forced to zero because really strange
    result where obtain with it (non same result in case where
    bnd_part_nonlocal is empty, non deterministic computation !???).
    To be analyzed.
    
    dam_gamain
    ==========
    This test case is to check if and how gamin feature works.
    It is a simple plate with a shear loading that force creation of crack
    with an angle of -45 degres (x axes). A default( removing of 2 elements)
    is placed in the diagonal of the plate a little closer to left upper
    corner. Mesh is regular and chosen to intentionally offers a line of
    nodes from default to corner. lc is chosen rather big so that number of
    element per lc is important.
    
    Without gamin non-local zone progress toward corner. When reaching
    part boundary modification of phi on it are clearly done by FM re-init only.
    It arrive to a point where bluntly in on step all corner is extra damaged (phi>lc).
    With gamain when reaching part boundary modification comes clearly from
    phi update in far more slower way. Crack continue on the diagonal.
    Unfortunately process is stopped by the case of delta-phi removed by FM.
    (see above for perspectives)
    
    In both case it is not clear how boundary condition have to be handle in
    omega+ zone. Without treatment like here it impose force on almost
    damaged material which induce maybe other estimate strain. To be check.
    89ca0c12
Name
Last commit
Last update
atomic_test Loading commit data...
src Loading commit data...
test Loading commit data...
.gitignore Loading commit data...
CMakeLists.txt Loading commit data...
CMakeLists.txt-template Loading commit data...
LICENSE Loading commit data...
NOTICE Loading commit data...
README Loading commit data...
TODO Loading commit data...