12#ifndef ARCANE_MESH_PARTICLEFAMILY_H
13#define ARCANE_MESH_PARTICLEFAMILY_H
17#include "arcane/utils/MultiBuffer.h"
19#include "arcane/core/VariableTypes.h"
20#include "arcane/core/IParticleFamily.h"
22#include "arcane/mesh/ItemFamily.h"
23#include "arcane/mesh/ItemInternalConnectivityIndex.h"
39class ARCANE_MESH_EXPORT ParticleFamily
46 typedef ItemFamily BaseClass;
50 static String const defaultFamilyName()
56 virtual ~ParticleFamily();
60 virtual void build()
override;
64 m_enable_ghost_items = value;
68 return m_enable_ghost_items;
91 void exchangeParticles()
override;
93 void setParticleCell(
Particle particle,
Cell new_cell)
override;
100 void preAllocate(
Integer nb_item);
104 void prepareForDump()
override;
105 void readFromDump()
override;
109 void setHasUniqueIdMap(
bool v)
override;
110 bool hasUniqueIdMap()
const override;
116 if (m_enable_ghost_items)
122 void checkValidConnectivity()
override;
123 void removeNeedRemoveMarkedItems()
override;
129 Int32 m_sub_domain_id;
130 bool m_enable_ghost_items;
131 CellConnectivity* m_cell_connectivity;
136 void _printInfos(
Integer nb_added);
137 void _setSharedInfo();
139 inline void _initializeNewlyAllocatedParticle(
ItemInternal* particle,
Int64 uid);
Interface of an entity family.
Interface of a particle family.
Internal structure of a mesh entity.
Index of an Item in a variable.
Info on a mesh entity type.
Unicode character string.
Incremental item->item[] connectivity.
Selection between historical and on-demand connectivities.
IMesh * mesh() const override
Associated mesh.
String fullName() const override
Full family name (with the mesh's name).
void endUpdate() override
Notifies the end of modification of the entity list.
ItemGroup allItems() const override
Group of all entities.
Integer nbItem() const override
Number of entities.
void computeSynchronizeInfos() override
Constructs the structures necessary for synchronization.
String name() const override
Family name.
Temporary class to hold an ItemSharedInfo and an entity type.
Incremental item->item connectivity.
IItemFamily * itemFamily() override
Interface on the family.
Integer nbItem() const override
Number of entities.
String name() const override
Family name.
String fullName() const override
Full family name (with the mesh's name).
void endUpdate() override
Notifies the end of modification of the entity list.
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.
IParticleFamily * toParticleFamily() override
Returns the interface of the particle family for this family.
void computeSynchronizeInfos() override
Constructs the structures necessary for synchronization.
ItemGroup allItems() const override
Group of all entities.
ItemVectorViewT< Cell > CellVectorView
View over a vector of cells.
ItemVectorViewT< Particle > ParticleVectorView
View over a vector of particles.
std::int64_t Int64
Signed integer type of 64 bits.
Int32 Integer
Type representing an integer.
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
ConstArrayView< Int64 > Int64ConstArrayView
C equivalent of a 1D array of 64-bit integers.
ArrayView< Int32 > Int32ArrayView
C equivalent of a 1D array of 32-bit integers.
std::int32_t Int32
Signed integer type of 32 bits.