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

Interface of a particle family. More...

#include <arcane/core/IParticleFamily.h>

Inheritance diagram for Arcane::IParticleFamily:
Collaboration diagram for Arcane::IParticleFamily:

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.

Implemented in Arcane::mesh::ParticleFamily.

◆ 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.

Implemented in Arcane::mesh::ParticleFamily.

◆ allItems()

virtual ItemGroup Arcane::IParticleFamily::allItems ( ) const
pure virtual

Group of all particles.

Implemented in Arcane::mesh::ParticleFamily.

◆ 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.

Implemented in Arcane::mesh::ParticleFamily.

Referenced by Arcane::BasicRayMeshIntersection::compute().

Here is the caller graph for this function:

◆ fullName()

virtual String Arcane::IParticleFamily::fullName ( ) const
pure virtual

Full name of the family (including the mesh name).

Implemented in Arcane::mesh::ParticleFamily.

◆ getEnableGhostItems()

virtual bool Arcane::IParticleFamily::getEnableGhostItems ( ) const
pure virtual

Retrieves the flag to manage ghost particles for the family.

Implemented in Arcane::mesh::ParticleFamily.

Referenced by Arcane::mesh::MeshExchanger::computeExchangeInfos(), Arcane::mesh::MeshExchanger::removeNeededItems(), and Arcane::mesh::ItemsExchangeInfo2::removeSentItems().

Here is the caller graph for this function:

◆ itemFamily()

virtual IItemFamily * Arcane::IParticleFamily::itemFamily ( )
pure virtual

Interface on the family.

Implemented in Arcane::mesh::ParticleFamily.

Referenced by Arcane::mesh::MeshExchanger::removeNeededItems().

Here is the caller graph for this function:

◆ name()

virtual String Arcane::IParticleFamily::name ( ) const
pure virtual

Name of the family.

Implemented in Arcane::mesh::ParticleFamily.

◆ nbItem()

virtual Integer Arcane::IParticleFamily::nbItem ( ) const
pure virtual

Number of entities.

Implemented in Arcane::mesh::ParticleFamily.

◆ setEnableGhostItems()

virtual void Arcane::IParticleFamily::setEnableGhostItems ( bool value)
pure virtual

Sets the flag to manage ghost particles for the family.

Implemented in Arcane::mesh::ParticleFamily.

◆ setParticleCell()

virtual void Arcane::IParticleFamily::setParticleCell ( Particle particle,
Cell new_cell )
pure virtual

Moves the particle particle into the cell new_cell.

Implemented in Arcane::mesh::ParticleFamily.

◆ setParticlesCell()

virtual void Arcane::IParticleFamily::setParticlesCell ( ParticleVectorView particles,
CellVectorView new_cells )
pure virtual

Moves the list of particles particles into the new cells new_cells.

Implemented in Arcane::mesh::ParticleFamily.


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