Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
Arcane::IParticleFamily Class Referenceabstract

Interface of a particle family. More...

#include <arcane/core/IParticleFamily.h>

Public Member Functions

virtual void build ()=0
virtual void setEnableGhostItems (bool value)=0
 Sets the flag to manage ghost particles for the family.
virtual bool getEnableGhostItems () const =0
 Retrieves the flag to manage ghost particles for the family.
virtual String name () const =0
 Name of the family.
virtual String fullName () const =0
 Full name of the family (including the mesh name).
virtual Integer nbItem () const =0
 Number of entities.
virtual ItemGroup allItems () const =0
 Group of all particles.
virtual ParticleVectorView addParticles (Int64ConstArrayView unique_ids, Int32ArrayView items_local_id)=0
 Allocates particles.
virtual ParticleVectorView addParticles2 (Int64ConstArrayView unique_ids, Int32ConstArrayView owners, Int32ArrayView items)=0
virtual ParticleVectorView addParticles (Int64ConstArrayView unique_ids, Int32ConstArrayView cells_local_id, Int32ArrayView items_local_id)=0
 Allocates particles in cells.
virtual void removeParticles (Int32ConstArrayView items_local_id)=0
virtual void endUpdate ()=0
virtual void setParticleCell (Particle particle, Cell new_cell)=0
 Moves the particle particle into the cell new_cell.
virtual void setParticlesCell (ParticleVectorView particles, CellVectorView new_cells)=0
 Moves the list of particles particles into the new cells new_cells.
virtual void exchangeParticles ()=0
 Exchanging entities.
virtual IItemFamilyitemFamily ()=0
 Interface on the family.

Detailed Description

Interface of a particle family.

A particle family is a family of entities (IItemFamily). This interface only contains methods specific to particles. For generic entity operations, you must go through the IItemFamily interface via itemFamily().

There can be several particle families per mesh. Unlike classical mesh entities (node, cell, ...), particles can be created directly.

Definition at line 43 of file IParticleFamily.h.

Constructor & Destructor Documentation

◆ ~IParticleFamily()

virtual Arcane::IParticleFamily::~IParticleFamily ( )
inlinevirtual

Definition at line 47 of file IParticleFamily.h.

Member Function Documentation

◆ addParticles() [1/2]

virtual ParticleVectorView Arcane::IParticleFamily::addParticles ( Int64ConstArrayView unique_ids,
Int32ArrayView items_local_id )
pure virtual

Allocates particles.

Allocates particles whose uniqueId() are given by the array unique_ids.

After calling this operation, you must call endUpdate() to notify the instance that modifications are finished. It is possible to chain several allocations before calling endUpdate(). Note that the returned view may be invalidated after calling endUpdate() if compression is active. items_local_id must have the same number of elements as unique_ids.

◆ addParticles() [2/2]

virtual ParticleVectorView Arcane::IParticleFamily::addParticles ( Int64ConstArrayView unique_ids,
Int32ConstArrayView cells_local_id,
Int32ArrayView items_local_id )
pure virtual

Allocates particles in cells.

This method is similar to addParticles() but allows specifying directly the cells in which the particles will be created.

◆ endUpdate()

virtual void Arcane::IParticleFamily::endUpdate ( )
pure virtual

◆ exchangeParticles()

virtual void Arcane::IParticleFamily::exchangeParticles ( )
pure virtual

Exchanging entities.

This method is only supported for particle families. For mesh elements such as nodes, faces, or cells, you must use IMesh::exchangeItems().

The new owners of the entities are given by itemsNewOwner().

This operation is blocking and collective.


The documentation for this class was generated from the following file: