wiki:CodeChanges

Version 9 (modified by dv615747, 12 years ago) (diff)

--

General steps required to define materials with the Lagrangian cloud

Pre-modification thoughts

  1. Add flag to select between defining materials with material volume from level set functions or from the Lagrangian cloud.
  2. Add material number to cloud particles defined by the initial surface geometries. Provide option for removing selected surface. Surface 1 must never be removed or divFEM will break. Should this even be an option? Should this occur in nliter 1 or using a separate subroutine following the surface geometry definition???
    • Where should be define the material numbers on the cloud particles? Should this occur when the LSFs are defined, or upon cloud definition???
  3. At the time of elemental material definition, count number of each material from cloud in a given element. Provide option for majority rule or others (can we do divFEM with Lag particles??)??? How do we resolve issues with equal numbers of materials? Use old material number or something else??? Note that the general criterion for using the Lag cloud for material definition should check to be sure to use only completely uncut elements, not uncut subelements.
    • How does strain get transferred from the cloud to the elements???
  4. Take decision from count/rule above and give element new material number. For certain properties, be aware we may want to override the default from the material number using something stored on the cloud particles. The material number stored on the cloud should not be changed based on the elemental material number. However, if we want material changes available, we should be able to update those numbers.

Potential new subroutines

define_cloud_mat_number()
Use LSF values on octree to define the material number for every cloud particle. This routine should be called in the first grid iteration, after the void has been calculated. The general procedure is
 * Set material number equal to zero for all cloud particles
 * Loop through all LSFs
 * Loop through all cloud particles
 * If LSF value is negative, give cloud particle current LSF number as material number
 * In not, do nothing
element_material_number_from_cloud()

Record of code changes by routine

Dynamic refinement of the surfaces