Difference between revisions of "Material Point Reservoir"

From OSUPDOCS
Jump to navigation Jump to search
Line 30: Line 30:


   <MaterialPoints>
   <MaterialPoints>
     <Fill num='(num)' mat='(matnum)' lx='(lx)' ly='(ly)' lz='(lz)'/>
     <Fill num='(num)' mat='(matid)' lx='(lx)' ly='(ly)' lz='(lz)'/>
   </MaterialPoints>
   </MaterialPoints>


Line 36: Line 36:


* <tt>(num)</tt> is the number of material points to put into the reservoir.
* <tt>(num)</tt> is the number of material points to put into the reservoir.
* <tt>(matid)</tt> or <tt>(matnum)</tt> specify the material type. Scripted files use the material ID defined in the script while <tt>XML</tt> must specify the material by number in the simulation.
* <tt>(matid)</tt> is the material ID for a previously defined [[Material Command Block|material]] (which must be a [[Material Command Block#Referencing Materials in XML Files|material number]] in <tt>XML</tt> files).
* <tt>(lx)</tt>, <tt>(ly)</tt>, and <tt>(lz)</tt> optionally specify the size of the material point in [[ConsistentUnits Command#Legacy and Consistent Units|length units]]. If these optional parameters are not provided, the material points will use the default size for the simulation (as set using the [[MPM Methods and Simulation Timing#Input Commands|<tt>PtsPerElement</tt> command]]). When a custom task injects particles of a certain size, that size must made available in the reservoir by use a matching size in this command.
* <tt>(lx)</tt>, <tt>(ly)</tt>, and <tt>(lz)</tt> optionally specify the size of the material point in [[ConsistentUnits Command#Legacy and Consistent Units|length units]]. If these optional parameters are not provided, the material points will use the default size for the simulation (as set using the [[MPM Methods and Simulation Timing#Input Commands|<tt>PtsPerElement</tt> command]]). When a custom task injects particles of a certain size, that size must made available in the reservoir by use a matching size in this command.

Revision as of 12:16, 22 July 2021

Introduction

Simulations in NairnMPM are currently limited to a fixed number of particles. To allow for simulations options to delete particles or inject particles, the code implements a reservoir of material points. This reservoir is current only implement in OSParticulas but will be moved to NairnMPM soon and will be then be documented further.

Deleting Particles

Any feature that deletes particles, moves those particle into the reservoir. The current options to delete particles are

  • LeaveLimit Command - if this command's (maxNum) parameter is negative, particle that leave the grid are deleted from the simulation.
  • DeleteLimit Command - if this command's (maxNum) parameter is greater than 1, particles that develop nan are deleted from the simulation.
  • DeleteDamaged Custom Task - this tasks can delete damaged particles after decohesion.
  • JWLPlusPlus Material - this material has an option to delete gas particles a sufficient distance from the ignition site.

Injecting Particles

Currently, the only options for injecting particles are in custom tasks. The only built-in custom task that injects particles is:

User-written custom tasks can also inject particles and more documentation on writing such tasks will be provided soon.

Filling the Reservoir

To allow custom tasks to inject particles, the reservoir normally needs to be seeded with enough material points for the injection process. The command to fill the reservoir in scripted files is:

Fill (num),(matid),<(lx)>,<(ly)>,<(lz)>

In XML files, the reservoir is filled using a Fill element that must be within the single <MaterialPoints> element in the input file:

 <MaterialPoints>
   <Fill num='(num)' mat='(matid)' lx='(lx)' ly='(ly)' lz='(lz)'/>
 </MaterialPoints>

where

  • (num) is the number of material points to put into the reservoir.
  • (matid) is the material ID for a previously defined material (which must be a material number in XML files).
  • (lx), (ly), and (lz) optionally specify the size of the material point in length units. If these optional parameters are not provided, the material points will use the default size for the simulation (as set using the PtsPerElement command). When a custom task injects particles of a certain size, that size must made available in the reservoir by use a matching size in this command.