Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::mesh::ParticleFamily Class Reference

Particle family. More...

#include <arcane/mesh/ParticleFamily.h>

Inheritance diagram for Arcane::mesh::ParticleFamily:
Collaboration diagram for Arcane::mesh::ParticleFamily:

Public Member Functions

 ParticleFamily (IMesh *mesh, const String &name)
virtual void build () override
void setEnableGhostItems (bool value) override
 Sets the flag to manage ghost particles for the family.
bool getEnableGhostItems () const override
 Retrieves the flag to manage ghost particles for the family.
String name () const override
 Family name.
String fullName () const override
 Full family name (with the mesh's name).
Integer nbItem () const override
 Number of entities.
ItemGroup allItems () const override
 Group of all entities.
ParticleVectorView addParticles (Int64ConstArrayView unique_ids, Int32ArrayView items) override
 Allocates particles.
ParticleVectorView addParticles2 (Int64ConstArrayView unique_ids, Int32ConstArrayView owners, Int32ArrayView items) override
ParticleVectorView addParticles (Int64ConstArrayView unique_ids, Int32ConstArrayView cells_local_id, Int32ArrayView items_local_id) override
 Allocates particles in cells.
void removeParticles (Int32ConstArrayView items_local_id) override
void addItems (Int64ConstArrayView unique_ids, Int32ConstArrayView owners, Int32ArrayView items)
void internalRemoveItems (Int32ConstArrayView local_ids, bool keep_ghost) override
 Removes the entities given by local_ids.
void exchangeParticles () override
 Exchanging entities.
void setParticleCell (Particle particle, Cell new_cell) override
 Moves the particle particle into the cell new_cell.
void setParticlesCell (ParticleVectorView particles, CellVectorView new_cells) override
 Moves the list of particles particles into the new cells new_cells.
void endUpdate () override
 Notifies the end of modification of the entity list.
void preAllocate (Integer nb_item)
void prepareForDump () override
 Prepares data for dumping.
void readFromDump () override
 Reads data from a dump.
void setHasUniqueIdMap (bool v) override
 Indicates whether the family has a conversion table from uniqueId to localId.
bool hasUniqueIdMap () const override
 Indicates if the family has a uniqueId to localId conversion table.
void computeSynchronizeInfos () override
 Constructs the structures necessary for synchronization.
IItemFamilyitemFamily () override
 Interface on the family.
IParticleFamilytoParticleFamily () override
 Returns the interface of the particle family for this family.
void checkValidConnectivity () override
 Verification of the validity of internal structures concerning connectivity.
void removeNeedRemoveMarkedItems () override
 Removes entities and updates connectivities.
Public Member Functions inherited from Arcane::mesh::ItemFamily
 ItemFamily (IMesh *mesh, eItemKind ik, const String &name)
eItemKind itemKind () const override
 Entity kind.
Int32 maxLocalId () const override
ItemInternalList itemsInternal () override
 Internal array of entities.
ItemInfoListView itemInfoListView () override
 View on the entity information list.
VariableItemInt32itemsNewOwner () override
 Variable containing the number of the new subdomain owning the entity.
IItemFamilyparentFamily () const override
 IItemFamily parent.
void setParentFamily (IItemFamily *parent) override
 Positions the parent IItemFamily.
Integer parentFamilyDepth () const override
 Gives the nesting depth of the current mesh.
void addChildFamily (IItemFamily *family) override
 Adds a family as a dependency.
IItemFamilyCollection childFamilies () override
 Child families of this family.
void checkValid () override
 Check the validity of internal structures (internal).
void checkUniqueIds (Int64ConstArrayView unique_ids) override
 Checks that the unique_ids are truly unique for all subdomains.
ItemInternalMap & itemsMap ()
void partialEndUpdate () override
 Partial update.
void partialEndUpdateGroup (const ItemGroup &group) override
 Updates a group.
void partialEndUpdateVariable (IVariable *variable) override
 Updates a variable.
void itemsUniqueIdToLocalId (ArrayView< Int64 > ids, bool do_fatal=true) const
void itemsUniqueIdToLocalId (Int32ArrayView local_ids, Int64ConstArrayView unique_ids, bool do_fatal) const override
 Converts an array of unique numbers to local numbers.
void itemsUniqueIdToLocalId (Int32ArrayView local_ids, ConstArrayView< ItemUniqueId > unique_ids, bool do_fatal) const override
 Converts an array of unique numbers to local numbers.
ISubDomainsubDomain () const override
 Associated sub-domain.
ITraceMngtraceMng () const override
 Associated trace manager.
IMeshmesh () const override
 Associated mesh.
IParallelMngparallelMng () const override
 Associated parallelism manager.
IItemConnectivityInfolocalConnectivityInfos () const override
 Information on local connectivity within the subdomain for this family.
IItemConnectivityInfoglobalConnectivityInfos () const override
 Information on global connectivity across all subdomains.
void removeItems2 (ItemDataList &item_data_list) override
 Removes entities.
ItemVectorView view (Int32ConstArrayView local_ids) override
 View on the entities.
ItemVectorView view () override
 View on all entities in the family.
ItemInternalfindOneItem (Int64 uid) override
 Unique ID entity unique_id.
void notifyItemsOwnerChanged () override
 Notifies that the entities specific to the family's subdomain have been modified.
ItemGroup findGroup (const String &name) const override
 Searches for a group.
ItemGroup findGroup (const String &name, bool create_if_needed) override
 Searches for a group.
ItemGroup createGroup (const String &name, Int32ConstArrayView elements, bool do_override=false) override
 Creates an entity group named name containing the entities local_ids.
ItemGroup createGroup (const String &name) override
 Creates an entity group named name.
ItemGroup createGroup (const String &name, const ItemGroup &parent, bool do_override=false) override
ItemGroupCollection groups () const override
 Collection of groups in this family.
void notifyItemsUniqueIdChanged () override
 Notifies that the unique IDs of the entities have been modified.
void destroyGroups () override
 Deletes all groups in this family.
IVariablefindVariable (const String &name, bool throw_exception) override
 Searches for the variable name name associated with this family.
void usedVariables (VariableCollection collection) override
 Adds the list of variables used by this family to the collection.
void copyItemsValues (Int32ConstArrayView source, Int32ConstArrayView destination) override
void copyItemsMeanValues (Int32ConstArrayView first_source, Int32ConstArrayView second_source, Int32ConstArrayView destination) override
void compactItems (bool do_sort) override
 Compresses the entities.
void clearItems () override
 Deletes all entities in the family.
Int64ArrayViewuniqueIds ()
ItemSharedInfocommonItemSharedInfo ()
const DynamicMeshKindInfosinfos () const
void getCommunicatingSubDomains (Int32Array &sub_domains) const override
 List of communicating sub-domains for the entities.
void synchronize (VariableCollection variables) override
 Synchronizes the variables variables.
void synchronize (VariableCollection variables, Int32ConstArrayView local_ids) override
 Synchronizes the variables variables on a list of entities.
IVariableSynchronizerallItemsSynchronizer () override
 Synchronizer on all entities of the family.
void reduceFromGhostItems (IVariable *v, IDataOperation *operation) override
 Applies a reduction operation from ghost items.
void reduceFromGhostItems (IVariable *v, Parallel::eReduceType operation) override
 Applies a reduction operation from ghost items.
ItemPairGroup findAdjencyItems (const ItemGroup &group, const ItemGroup &sub_group, eItemKind link_kind, Integer layer) override
 Searches for an adjacency list.
ItemPairGroup findAdjacencyItems (const ItemGroup &group, const ItemGroup &sub_group, eItemKind link_kind, Integer layer) override
 Searches for an adjacency list.
void setItemSortFunction (IItemInternalSortFunction *sort_function) override
 Positions the entity sorting function.
IItemInternalSortFunctionitemSortFunction () const override
 Entity sorting function.
void addSourceConnectivity (IItemConnectivity *connectivity) override
void addTargetConnectivity (IItemConnectivity *connectivity) override
void removeSourceConnectivity (IItemConnectivity *connectivity) override
void removeTargetConnectivity (IItemConnectivity *connectivity) override
void setConnectivityMng (IItemConnectivityMng *connectivity_mng) override
void addGhostItems (Int64ConstArrayView unique_ids, Int32ArrayView items, Int32ConstArrayView owners) override
 Allocates ghost entities.
EventObservableView< const ItemFamilyItemListChangedEventArgs & > itemListChangedEvent () override
 Event for entity addition and deletion.
void experimentalChangeUniqueId (ItemLocalId local_id, ItemUniqueId unique_id) override
 Changes the unique number of the entity.
IItemFamilyPolicyMngpolicyMng () override
 Interface of behaviors/policies associated with this family.
Propertiesproperties () override
 Properties associated with this family.
IItemFamilyInternal_internalApi () override
 Internal Arcane API.
virtual void setPolicyMng (IItemFamilyPolicyMng *policy_mng)
void beginCompactItems (ItemFamilyCompactInfos &compact_infos)
void compactVariablesAndGroups (const ItemFamilyCompactInfos &compact_infos)
 Compresses the variables and groups.
void finishCompactItems (ItemFamilyCompactInfos &compact_infos)
void removeItem (Item item)
ItemInternalConnectivityListitemInternalConnectivityList ()
 Accessor for connectivities via Item and ItemInternal.
IItemFamilyTopologyModifier_topologyModifier () override
 Topology modifier interface.
void resizeVariables (bool force_resize) override
 Resizes the variables of this family.
Public Member Functions inherited from Arcane::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Constructs an accessor via the trace manager m.
 TraceAccessor (const TraceAccessor &rhs)
 Copy constructor.
TraceAccessoroperator= (const TraceAccessor &rhs)
 Copy assignment operator.
virtual ~TraceAccessor ()
 Frees resources.
ITraceMngtraceMng () const
 Trace manager.
TraceMessage info () const
 Flow for an information message.
TraceMessage pinfo () const
 Flow for a parallel information message.
TraceMessage info (char category) const
 Flow for an information message of a given category.
TraceMessage pinfo (char category) const
 Flow for a parallel information message of a given category.
TraceMessage info (bool v) const
 Flow for an information message.
TraceMessage warning () const
 Flow for a warning message.
TraceMessage pwarning () const
TraceMessage error () const
 Flow for an error message.
TraceMessage perror () const
TraceMessage log () const
 Flow for a log message.
TraceMessage plog () const
 Flow for a log message.
TraceMessage logdate () const
 Flow for a log message preceded by the date.
TraceMessage fatal () const
 Flow for a fatal error message.
TraceMessage pfatal () const
 Flow for a parallel fatal error message.
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flow for a debug message.
Trace::eDebugLevel configDbgLevel () const
 Debug level of the configuration file.
TraceMessage info (Int32 verbose_level) const
 Flow for an information message of a given level.
TraceMessage linfo () const
 Flow for an information message with the local information level of this instance.
TraceMessage linfo (Int32 relative_level) const
 Flow for an information message with the local information level of this instance.
void fatalMessage (const StandaloneTraceMessage &o) const
Public Member Functions inherited from Arcane::IItemFamily
virtual IDoFFamilytoDoFFamily ()
 Returns the interface of the particle family for this family.

Static Public Member Functions

static String const defaultFamilyName ()

Private Types

typedef ItemConnectivitySelectorT< CellInternalConnectivityIndex, OneItemIncrementalItemConnectivityCellConnectivity
typedef ItemFamily BaseClass

Private Member Functions

ItemInternal_allocParticle (Int64 uid, bool &need_alloc)
ItemInternal_findOrAllocParticle (Int64 uid, bool &is_alloc)
void _printInfos (Integer nb_added)
void _setSharedInfo ()
void _setCell (ItemLocalId particle, ItemLocalId cell)
void _initializeNewlyAllocatedParticle (ItemInternal *particle, Int64 uid)
 Positions the connectivity info for a particle that has just been allocated in memory.
void _addItems (Int64ConstArrayView unique_ids, Int32ArrayView items)

Private Attributes

ItemTypeInfom_particle_type_info
ItemSharedInfoWithTypem_particle_shared_info
Int32 m_sub_domain_id
bool m_enable_ghost_items
CellConnectivity * m_cell_connectivity

Additional Inherited Members

Public Types inherited from Arcane::mesh::ItemFamily
using ItemInternalMap = ::Arcane::mesh::ItemInternalMap
Protected Types inherited from Arcane::mesh::ItemFamily
typedef std::set< IItemConnectivity * > ItemConnectivitySet
Protected Member Functions inherited from Arcane::mesh::ItemFamily
void _removeOne (Item item)
void _detachOne (Item item)
ItemInternalList _itemsInternal ()
ItemInternal_itemInternal (Int32 local_id)
ItemInternal_allocOne (Int64 unique_id)
ItemInternal_allocOne (Int64 unique_id, bool &need_alloc)
ItemInternal_findOrAllocOne (Int64 uid, bool &is_alloc)
void _setHasUniqueIdMap (bool v)
void _removeMany (Int32ConstArrayView local_ids)
void _removeDetachedOne (Item item)
const DynamicMeshKindInfos_infos () const
void _detachCells2 (Int32ConstArrayView local_ids)
virtual void _endAllocate ()
virtual void _notifyEndUpdateFromMesh ()
void _checkNeedEndUpdate () const
void _updateSharedInfo ()
void _allocateInfos (ItemInternal *item, Int64 uid, ItemSharedInfoWithType *isi)
void _allocateInfos (ItemInternal *item, Int64 uid, ItemTypeInfo *type)
void _endUpdate (bool need_check_remove)
bool _partialEndUpdate ()
void _updateGroup (ItemGroup group, bool need_check_remove)
void _updateVariable (IVariable *var)
void _addConnectivitySelector (ItemConnectivitySelector *selector)
void _buildConnectivitySelectors ()
void _preAllocate (Int32 nb_item, bool pre_alloc_connectivity)
ItemInternalConnectivityList_unstructuredItemInternalConnectivityList ()
ItemTypeMng_itemTypeMng () const
virtual IItemInternalSortFunction_defaultItemSortFunction ()
void _reserveInfosMemory (Integer memory)
void _resizeInfos (Integer memory)
ItemSharedInfoWithType_findSharedInfo (ItemTypeInfo *type)
Integer _allocMany (Integer memory)
void _setSharedInfosPtr (Integer *ptr)
void _checkValid ()
void _checkValidConnectivity ()
void _notifyDataIndexChanged ()
void _processNewGroup (ItemGroup group)
String _variableName (const String &base_name) const
template<class Type>
void _synchronizeVariable (IVariable *var, Type *var_value, Integer nb_elem)
void _updateGroups (bool check_need_remove)
void _compactFromParentFamily (const ItemFamilyCompactInfos &compact_infos)
 Compresses the connectivities.
void _checkComputeSynchronizeInfos (Int32 changed)
 Test collectif permettant de savoir s'il faut mettre à jour les infos de synchro.
void _readGroups ()
 Relit les groupes depuis une protection et les recréer si besoin.
void _invalidateComputedGroups ()
void _compactItems (bool do_sort)
 Compresses the entities.
void _compactOnlyItems (bool do_sort)
 Compresses the entities without updating references.
void _applyCheckNeedUpdateOnGroups ()
void _setTopologyModifier (IItemFamilyTopologyModifier *tm)
void _checkValidItem (ItemInternal *item)
void _checkValidSourceTargetItems (ItemInternal *source, ItemInternal *target)
void _checkValidItem (Item item)
void _checkValidSourceTargetItems (Item source, Item target)
Protected Member Functions inherited from Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
Int32 _localVerboseLevel () const
Protected Attributes inherited from Arcane::mesh::ItemFamily
String m_name
String m_full_name
IMeshm_mesh = nullptr
InternalApim_internal_api = nullptr
ISubDomainm_sub_domain = nullptr
IItemFamilym_parent_family = nullptr
Integer m_parent_family_depth = 0
ItemGroupList m_item_groups
bool m_need_prepare_dump = true
MeshItemInternalListm_item_internal_list = nullptr
ItemSharedInfoListm_item_shared_infos = nullptr
ObserverPool m_observers
Ref< IVariableSynchronizerm_variable_synchronizer
Integer m_current_variable_item_size = 0
IItemInternalSortFunctionm_item_sort_function = nullptr
std::set< IVariable *, decltype(&_cmpIVariablePtr)> m_used_variables
std::set< IVariable *, decltype(&_cmpIVariablePtr)> m_used_shmem_variables
UniqueArray< ItemFamily * > m_child_families
ItemConnectivityInfom_local_connectivity_info = nullptr
ItemConnectivityInfom_global_connectivity_info = nullptr
Propertiesm_properties = nullptr
ItemConnectivitySet m_source_item_connectivities
ItemConnectivitySet m_target_item_connectivities
 connectivite ou ItemFamily == SourceFamily
IItemConnectivityMngm_connectivity_mng = nullptr
 connectivite ou ItemFamily == TargetFamily
IItemFamilyPolicyMngm_policy_mng = nullptr
Int32 m_sub_domain_id = A_NULL_RANK

Detailed Description

Particle family.

Definition at line 39 of file ParticleFamily.h.

Member Typedef Documentation

◆ BaseClass

typedef ItemFamily Arcane::mesh::ParticleFamily::BaseClass
private

Definition at line 46 of file ParticleFamily.h.

◆ CellConnectivity

typedef ItemConnectivitySelectorT<CellInternalConnectivityIndex, OneItemIncrementalItemConnectivity> Arcane::mesh::ParticleFamily::CellConnectivity
private

Definition at line 45 of file ParticleFamily.h.

Constructor & Destructor Documentation

◆ ParticleFamily()

Arcane::mesh::ParticleFamily::ParticleFamily ( IMesh * mesh,
const String & name )

Definition at line 39 of file ParticleFamily.cc.

◆ ~ParticleFamily()

Arcane::mesh::ParticleFamily::~ParticleFamily ( )
virtual

Definition at line 53 of file ParticleFamily.cc.

Member Function Documentation

◆ _addItems()

void Arcane::mesh::ParticleFamily::_addItems ( Int64ConstArrayView unique_ids,
Int32ArrayView items )
private

Definition at line 212 of file ParticleFamily.cc.

◆ _allocParticle()

ItemInternal * Arcane::mesh::ParticleFamily::_allocParticle ( Int64 uid,
bool & need_alloc )
inlineprivate

Definition at line 111 of file ParticleFamily.cc.

◆ _findOrAllocParticle()

ItemInternal * Arcane::mesh::ParticleFamily::_findOrAllocParticle ( Int64 uid,
bool & is_alloc )
inlineprivate

Definition at line 129 of file ParticleFamily.cc.

◆ _initializeNewlyAllocatedParticle()

void Arcane::mesh::ParticleFamily::_initializeNewlyAllocatedParticle ( ItemInternal * particle,
Int64 uid )
inlineprivate

Positions the connectivity info for a particle that has just been allocated in memory.

Definition at line 101 of file ParticleFamily.cc.

◆ _printInfos()

void Arcane::mesh::ParticleFamily::_printInfos ( Integer nb_added)
private

Definition at line 281 of file ParticleFamily.cc.

◆ _setCell()

void Arcane::mesh::ParticleFamily::_setCell ( ItemLocalId particle,
ItemLocalId cell )
inlineprivate

Definition at line 163 of file ParticleFamily.cc.

◆ _setSharedInfo()

void Arcane::mesh::ParticleFamily::_setSharedInfo ( )
private

Definition at line 407 of file ParticleFamily.cc.

◆ addItems()

void Arcane::mesh::ParticleFamily::addItems ( Int64ConstArrayView unique_ids,
Int32ConstArrayView owners,
Int32ArrayView items )

Definition at line 234 of file ParticleFamily.cc.

◆ addParticles() [1/2]

ParticleVectorView Arcane::mesh::ParticleFamily::addParticles ( Int64ConstArrayView unique_ids,
Int32ArrayView items_local_id )
overridevirtual

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.

Implements Arcane::IParticleFamily.

Definition at line 141 of file ParticleFamily.cc.

References Arcane::mesh::ItemFamily::view().

Here is the call graph for this function:

◆ addParticles() [2/2]

ParticleVectorView Arcane::mesh::ParticleFamily::addParticles ( Int64ConstArrayView unique_ids,
Int32ConstArrayView cells_local_id,
Int32ArrayView items_local_id )
overridevirtual

Allocates particles in cells.

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

Implements Arcane::IParticleFamily.

Definition at line 172 of file ParticleFamily.cc.

References Arcane::ArrayView< T >::size(), and Arcane::mesh::ItemFamily::view().

Here is the call graph for this function:

◆ addParticles2()

ParticleVectorView Arcane::mesh::ParticleFamily::addParticles2 ( Int64ConstArrayView unique_ids,
Int32ConstArrayView owners,
Int32ArrayView items )
overridevirtual

Implements Arcane::IParticleFamily.

Definition at line 151 of file ParticleFamily.cc.

◆ allItems()

ItemGroup Arcane::mesh::ParticleFamily::allItems ( ) const
inlineoverridevirtual

Group of all entities.

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 75 of file ParticleFamily.h.

References Arcane::mesh::ItemFamily::allItems().

Here is the call graph for this function:

◆ build()

void Arcane::mesh::ParticleFamily::build ( )
overridevirtual

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 61 of file ParticleFamily.cc.

◆ checkValidConnectivity()

void Arcane::mesh::ParticleFamily::checkValidConnectivity ( )
overridevirtual

Verification of the validity of internal structures concerning connectivity.

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 416 of file ParticleFamily.cc.

References Arcane::mesh::ItemFamily::checkValidConnectivity().

Here is the call graph for this function:

◆ computeSynchronizeInfos()

void Arcane::mesh::ParticleFamily::computeSynchronizeInfos ( )
inlineoverridevirtual

Constructs the structures necessary for synchronization.

This operation must be performed every time the entities of the mesh change ownership (for example, during a load balancing).

This operation is collective.

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 114 of file ParticleFamily.h.

References Arcane::mesh::ItemFamily::computeSynchronizeInfos().

Here is the call graph for this function:

◆ defaultFamilyName()

String const Arcane::mesh::ParticleFamily::defaultFamilyName ( )
inlinestatic

Definition at line 50 of file ParticleFamily.h.

◆ endUpdate()

void Arcane::mesh::ParticleFamily::endUpdate ( )
inlineoverridevirtual

Notifies the end of modification of the entity list.

This method must be called after modifying the entity list (after adding or removing). It updates the groups and resizes the variables on this family.

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 96 of file ParticleFamily.h.

References Arcane::mesh::ItemFamily::endUpdate().

Referenced by exchangeParticles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ exchangeParticles()

void Arcane::mesh::ParticleFamily::exchangeParticles ( )
overridevirtual

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.

Implements Arcane::IParticleFamily.

Definition at line 262 of file ParticleFamily.cc.

References Arcane::mesh::ItemsExchangeInfo2::computeExchangeInfos(), Arcane::mesh::ItemsExchangeInfo2::computeExchangeItems(), endUpdate(), Arcane::mesh::ItemFamily::notifyItemsOwnerChanged(), Arcane::mesh::ItemsExchangeInfo2::prepareToSend(), Arcane::mesh::ItemsExchangeInfo2::processExchange(), Arcane::mesh::ItemsExchangeInfo2::readAndAllocItems(), Arcane::mesh::ItemsExchangeInfo2::readGroups(), Arcane::mesh::ItemsExchangeInfo2::readVariables(), and Arcane::mesh::ItemsExchangeInfo2::removeSentItems().

Here is the call graph for this function:

◆ fullName()

String Arcane::mesh::ParticleFamily::fullName ( ) const
inlineoverridevirtual

Full family name (with the mesh's name).

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 73 of file ParticleFamily.h.

References Arcane::mesh::ItemFamily::fullName().

Here is the call graph for this function:

◆ getEnableGhostItems()

bool Arcane::mesh::ParticleFamily::getEnableGhostItems ( ) const
inlineoverridevirtual

Retrieves the flag to manage ghost particles for the family.

Implements Arcane::IParticleFamily.

Definition at line 66 of file ParticleFamily.h.

Referenced by Arcane::mesh::DynamicMeshIncrementalBuilder::removeNeedRemoveMarkedItems(), and removeNeedRemoveMarkedItems().

Here is the caller graph for this function:

◆ hasUniqueIdMap()

bool Arcane::mesh::ParticleFamily::hasUniqueIdMap ( ) const
overridevirtual

Indicates if the family has a uniqueId to localId conversion table.

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 398 of file ParticleFamily.cc.

◆ internalRemoveItems()

void Arcane::mesh::ParticleFamily::internalRemoveItems ( Int32ConstArrayView local_ids,
bool keep_ghost )
overridevirtual

Removes the entities given by local_ids.

For internal use only. If you want to delete entities from the mesh, you must go through IMeshModifier via the call to IMesh::modifier().

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 290 of file ParticleFamily.cc.

References Arcane::ConnectivityItemVector::connectedItems(), ENUMERATE_ITEM, Arcane::Legacy, Arcane::mesh::ItemFamily::mesh(), and Arcane::ConstArrayView< T >::size().

Here is the call graph for this function:

◆ itemFamily()

IItemFamily * Arcane::mesh::ParticleFamily::itemFamily ( )
inlineoverridevirtual

Interface on the family.

Implements Arcane::IParticleFamily.

Definition at line 119 of file ParticleFamily.h.

◆ name()

String Arcane::mesh::ParticleFamily::name ( ) const
inlineoverridevirtual

Family name.

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 72 of file ParticleFamily.h.

References Arcane::mesh::ItemFamily::name().

Referenced by prepareForDump(), and removeNeedRemoveMarkedItems().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nbItem()

Integer Arcane::mesh::ParticleFamily::nbItem ( ) const
inlineoverridevirtual

Number of entities.

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 74 of file ParticleFamily.h.

References Arcane::mesh::ItemFamily::nbItem().

Referenced by prepareForDump().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ preAllocate()

void Arcane::mesh::ParticleFamily::preAllocate ( Integer nb_item)

Definition at line 376 of file ParticleFamily.cc.

◆ prepareForDump()

void Arcane::mesh::ParticleFamily::prepareForDump ( )
overridevirtual

Prepares data for dumping.

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 353 of file ParticleFamily.cc.

References Arcane::TraceAccessor::info(), name(), nbItem(), and Arcane::mesh::ItemFamily::prepareForDump().

Here is the call graph for this function:

◆ readFromDump()

void Arcane::mesh::ParticleFamily::readFromDump ( )
overridevirtual

Reads data from a dump.

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 365 of file ParticleFamily.cc.

References Arcane::mesh::ItemFamily::readFromDump().

Here is the call graph for this function:

◆ removeNeedRemoveMarkedItems()

void Arcane::mesh::ParticleFamily::removeNeedRemoveMarkedItems ( )
overridevirtual

Removes entities and updates connectivities.

Does not delete any potential orphaned sub-items.

Context of use with a family graph. Orphaned sub-items must also be marked NeedRemove. Therefore, there is no need to manage them in parent families.

TODO: To be put in the internal API

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 425 of file ParticleFamily.cc.

References Arcane::Array< T >::add(), Arcane::mesh::ItemInternalMap::eachItem(), Arcane::ItemBase::flags(), getEnableGhostItems(), Arcane::ItemFlags::II_NeedRemove, Arcane::TraceAccessor::info(), Arcane::Item::itemBase(), Arcane::Item::localId(), Arcane::Item::mutableItemBase(), name(), Arcane::Array< T >::reserve(), Arcane::MutableItemBase::setFlags(), and Arcane::AbstractArray< T >::size().

Here is the call graph for this function:

◆ removeParticles()

void Arcane::mesh::ParticleFamily::removeParticles ( Int32ConstArrayView items_local_id)
overridevirtual

Implements Arcane::IParticleFamily.

Definition at line 344 of file ParticleFamily.cc.

◆ setEnableGhostItems()

void Arcane::mesh::ParticleFamily::setEnableGhostItems ( bool value)
inlineoverridevirtual

Sets the flag to manage ghost particles for the family.

Implements Arcane::IParticleFamily.

Definition at line 62 of file ParticleFamily.h.

◆ setHasUniqueIdMap()

void Arcane::mesh::ParticleFamily::setHasUniqueIdMap ( bool v)
overridevirtual

Indicates whether the family has a conversion table from uniqueId to localId.

The conversion table allows using the methods itemsUniqueIdToLocalId() or findOneItem().

This method can only be called when there are no entities in the family.

The node, edge, face, and cell families of the mesh must have a conversion table.

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 388 of file ParticleFamily.cc.

◆ setParticleCell()

void Arcane::mesh::ParticleFamily::setParticleCell ( Particle particle,
Cell new_cell )
overridevirtual

Moves the particle particle into the cell new_cell.

Implements Arcane::IParticleFamily.

Definition at line 189 of file ParticleFamily.cc.

◆ setParticlesCell()

void Arcane::mesh::ParticleFamily::setParticlesCell ( ParticleVectorView particles,
CellVectorView new_cells )
overridevirtual

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

Implements Arcane::IParticleFamily.

Definition at line 199 of file ParticleFamily.cc.

References Arcane::ItemVectorView::localIds(), and Arcane::ConstArrayView< T >::size().

Here is the call graph for this function:

◆ toParticleFamily()

IParticleFamily * Arcane::mesh::ParticleFamily::toParticleFamily ( )
inlineoverridevirtual

Returns the interface of the particle family for this family.

The IParticleFamily interface only exists if this family is a particle family (itemKind()==IK_Particle). For other family kinds, 0 is returned.

Reimplemented from Arcane::mesh::ItemFamily.

Definition at line 120 of file ParticleFamily.h.

Member Data Documentation

◆ m_cell_connectivity

CellConnectivity* Arcane::mesh::ParticleFamily::m_cell_connectivity
private

Definition at line 131 of file ParticleFamily.h.

◆ m_enable_ghost_items

bool Arcane::mesh::ParticleFamily::m_enable_ghost_items
private

Definition at line 130 of file ParticleFamily.h.

◆ m_particle_shared_info

ItemSharedInfoWithType* Arcane::mesh::ParticleFamily::m_particle_shared_info
private

Definition at line 128 of file ParticleFamily.h.

◆ m_particle_type_info

ItemTypeInfo* Arcane::mesh::ParticleFamily::m_particle_type_info
private

Definition at line 127 of file ParticleFamily.h.

◆ m_sub_domain_id

Int32 Arcane::mesh::ParticleFamily::m_sub_domain_id
private

Definition at line 129 of file ParticleFamily.h.


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