Public Member Functions | |
| AsyncParticleExchanger (const ServiceBuildInfo &sbi) | |
| void | build () override |
| Build-level construction of the service. | |
| void | initialize (IItemFamily *item_family) override |
| Initializes the exchanger for the item_family item_family. | |
| void | beginNewExchange (Integer nb_particule) override |
| Starts a new particle exchange. | |
| bool | exchangeItems (Integer nb_particle_finish_exchange, Int32ConstArrayView local_ids, Int32ConstArrayView sub_domains_to_send, ItemGroup item_group, IFunctor *functor) override |
| Exchanges particles between sub-domains. | |
| bool | exchangeItems (Integer nb_particle_finish_exchange, Int32ConstArrayView local_ids, Int32ConstArrayView sub_domains_to_send, Int32Array *new_particle_local_ids, IFunctor *functor) override |
| Exchanges particles between sub-domains. | |
| void | sendItems (Integer nb_particle_finish_exchange, Int32ConstArrayView local_ids, Int32ConstArrayView sub_domains_to_send) override |
| bool | waitMessages (Integer nb_pending_particles, Int32Array *new_particle_local_ids, IFunctor *functor) override |
| void | addNewParticles (Integer nb_particle) override |
| Adds nb_particle to the current exchange. | |
| IItemFamily * | itemFamily () override |
| Associated family. | |
| void | setVerboseLevel (Integer level) override |
| Sets the verbosity level (0 for no messages). | |
| Integer | verboseLevel () const override |
| Verbosity level. | |
| IAsyncParticleExchanger * | asyncParticleExchanger () override |
| Asynchronism management (returns nullptr if functionality is not available). | |
| bool | exchangeItemsAsync (Integer nb_particle_finish_exchange, Int32ConstArrayView local_ids, Int32ConstArrayView sub_domains_to_send, Int32Array *new_particle_local_ids, IFunctor *functor, bool has_local_flying_particles) override |
| Public Member Functions inherited from Arcane::BasicService | |
| ~BasicService () override | |
| Releases resources. | |
| virtual ISubDomain * | subDomain () |
| Public Member Functions inherited from Arcane::AbstractService | |
| ~AbstractService () override | |
| Destructor. | |
| IServiceInfo * | serviceInfo () const override |
| Access to service information. See IServiceInfo for details. | |
| IBase * | serviceParent () const override |
| Access to the base interface of main Arcane objects. | |
| IService * | serviceInterface () override |
| Returns the low-level IService interface of the service. | |
| Public Member Functions inherited from Arcane::TraceAccessor | |
| TraceAccessor (ITraceMng *m) | |
| Constructs an accessor via the trace manager m. | |
| TraceAccessor (const TraceAccessor &rhs) | |
| Copy constructor. | |
| TraceAccessor & | operator= (const TraceAccessor &rhs) |
| Copy assignment operator. | |
| virtual | ~TraceAccessor () |
| Frees resources. | |
| ITraceMng * | traceMng () 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::IService | |
| virtual | ~IService () |
| Releases resources. | |
| Public Member Functions inherited from Arcane::MeshAccessor | |
| MeshAccessor (ISubDomain *sd) | |
| MeshAccessor (IMesh *mesh) | |
| MeshAccessor (const MeshHandle &mesh_handle) | |
| Integer | nbCell () const |
| Returns the number of cells in the mesh. | |
| Integer | nbFace () const |
| Returns the number of faces in the mesh. | |
| Integer | nbEdge () const |
| Returns the number of edges in the mesh. | |
| Integer | nbNode () const |
| Returns the number of nodes in the mesh. | |
| VariableNodeReal3 & | nodesCoordinates () const |
| Returns the coordinates of the mesh nodes. | |
| NodeGroup | allNodes () const |
| Returns the group containing all nodes. | |
| EdgeGroup | allEdges () const |
| Returns the group containing all edges. | |
| FaceGroup | allFaces () const |
| Returns the group containing all faces. | |
| CellGroup | allCells () const |
| Returns the group containing all cells. | |
| FaceGroup | outerFaces () const |
| Returns the group containing all boundary faces. | |
| NodeGroup | ownNodes () const |
| Returns the group containing all nodes specific to this domain. | |
| CellGroup | ownCells () const |
| Returns the group containing all cells specific to this domain. | |
| FaceGroup | ownFaces () const |
| Group containing all faces specific to this domain. | |
| EdgeGroup | ownEdges () const |
| Group containing all edges specific to this domain. | |
| IMesh * | mesh () const |
| const MeshHandle & | meshHandle () const |
| Public Member Functions inherited from Arcane::CommonVariables | |
| CommonVariables (IModule *c) | |
| Constructs the references of the common variables for the module c. | |
| CommonVariables (IVariableMng *variable_mng) | |
| Constructs the references of the common variables for the manager variable_mng. | |
| CommonVariables (ISubDomain *sd) | |
| Constructs the references of the common variables for the subdomain sd. | |
| virtual | ~CommonVariables () |
| Releases resources. | |
| Int32 | globalIteration () const |
| Current iteration number. | |
| Real | globalTime () const |
| Current time. | |
| Real | globalOldTime () const |
| Previous current time. | |
| Real | globalFinalTime () const |
| Final time of the simulation. | |
| Real | globalDeltaT () const |
| Current Delta T. | |
| Real | globalCPUTime () const |
| CPU time used (in seconds). | |
| Real | globalOldCPUTime () const |
| Previous CPU time used (in seconds). | |
| Real | globalElapsedTime () const |
| Clock time (elapsed) used (in seconds). | |
| Real | globalOldElapsedTime () const |
| Previous clock time (elapsed) used (in seconds). | |
| Public Member Functions inherited from Arcane::IParticleExchanger | |
| virtual | ~IParticleExchanger ()=default |
| Releases resources. | |
Private Member Functions | |
| void | _generateSendItemsAsync (Int32ConstArrayView local_ids, Int32ConstArrayView sub_domains_to_send) |
| bool | _waitSomeMessages (ItemGroup item_group, Int32Array *new_particle_local_ids) |
Additional Inherited Members | |
| Public Attributes inherited from Arcane::CommonVariables | |
| VariableScalarInt32 | m_global_iteration |
| Current iteration. | |
| VariableScalarReal | m_global_time |
| Current time. | |
| VariableScalarReal | m_global_deltat |
| Global Delta T. | |
| VariableScalarReal | m_global_old_time |
| Time previous to the current time. | |
| VariableScalarReal | m_global_old_deltat |
| Delta T at the time previous to the global time. | |
| VariableScalarReal | m_global_final_time |
| Final time of the case. | |
| VariableScalarReal | m_global_old_cpu_time |
| Previous CPU time used (in seconds). | |
| VariableScalarReal | m_global_cpu_time |
| CPU time used (in seconds). | |
| VariableScalarReal | m_global_old_elapsed_time |
| Previous clock time used (in seconds). | |
| VariableScalarReal | m_global_elapsed_time |
| Clock time used (in seconds). | |
| Protected Member Functions inherited from Arcane::BasicService | |
| BasicService (const ServiceBuildInfo &) | |
| Protected Member Functions inherited from Arcane::AbstractService | |
| AbstractService (const ServiceBuildInfo &) | |
| Constructor from a ServiceBuildInfo. | |
| Protected Member Functions inherited from Arcane::TraceAccessor | |
| void | _setLocalVerboseLevel (Int32 v) |
| Int32 | _localVerboseLevel () const |
| Protected Member Functions inherited from Arcane::IService | |
| IService () | |
| Constructor. | |
Definition at line 22 of file AsyncParticleExchanger.h.
|
explicit |
Definition at line 29 of file AsyncParticleExchanger.cc.
|
override |
Definition at line 39 of file AsyncParticleExchanger.cc.
|
private |
Definition at line 268 of file AsyncParticleExchanger.cc.
|
private |
Definition at line 335 of file AsyncParticleExchanger.cc.
|
overridevirtual |
Adds nb_particle to the current exchange.
This method allows indicating that new particles will participate in the exchange, for example following their creation.
Implements Arcane::IParticleExchanger.
Definition at line 143 of file AsyncParticleExchanger.cc.
|
overridevirtual |
Asynchronism management (returns nullptr if functionality is not available).
Implements Arcane::IParticleExchanger.
Definition at line 179 of file AsyncParticleExchanger.cc.
|
overridevirtual |
Starts a new particle exchange.
nb_particle is the number of particles in the sub-domain that will take part in a potential exchange.
This method is collective and must be called by all sub-domains.
Implements Arcane::IParticleExchanger.
Definition at line 79 of file AsyncParticleExchanger.cc.
References Arcane::TraceAccessor::info().
|
overridevirtual |
Build-level construction of the service.
This method is called right after the constructor.
Reimplemented from Arcane::AbstractService.
Definition at line 50 of file AsyncParticleExchanger.cc.
|
overridevirtual |
Exchanges particles between sub-domains.
This operation sends the particles from the item_family item_family whose local indices are given by the list local_ids to the sub-domains specified by sub_domains_to_send, and receives from these same sub-domains those that this sub-domain owns. The sent particles are deleted from the item_family item_family and the received ones are added.
Variables associated with the item_family item_family are transferred at the same time as the particles.
This operation is collective and blocking.
If new_particle_local_ids is not null, it will contain in return the array of local indices of the new entities.
If wait_functor is not null, the functor is called during the sending and receiving of messages. It is then possible to perform operations. Operations must not use particles, nor variables on the particles of the exchanged family.
a true if all exchange phases are finished
a false otherwise
Implements Arcane::IParticleExchanger.
Definition at line 107 of file AsyncParticleExchanger.cc.
|
overridevirtual |
Exchanges particles between sub-domains.
This operation sends the particles from the item_family item_family whose local indices are given by the list local_ids to the sub-domains specified by sub_domains_to_send, and receives from these same sub-domains those that this sub-domain owns. The sent particles are deleted from the item_family item_family and the received ones are added.
Variables associated with the item_family item_family are transferred at the same time as the particles.
This operation is collective and blocking.
If item_group is not null, it will contain the list of new entities in return.
If wait_functor is not null, the functor is called during the sending and receiving of messages. It is then possible to perform operations. Operations must not use particles, nor variables on the particles of the exchanged family.
a true if all exchange phases are finished
a false otherwise
Implements Arcane::IParticleExchanger.
Definition at line 93 of file AsyncParticleExchanger.cc.
|
overridevirtual |
Implements Arcane::IAsyncParticleExchanger.
Definition at line 188 of file AsyncParticleExchanger.cc.
|
overridevirtual |
Initializes the exchanger for the item_family item_family.
Implements Arcane::IParticleExchanger.
Definition at line 62 of file AsyncParticleExchanger.cc.
References ARCANE_THROW, Arcane::IParallelMng::isParallel(), and Arcane::IParallelMng::nonBlockingCollective().
|
overridevirtual |
Associated family.
Implements Arcane::IParticleExchanger.
Definition at line 152 of file AsyncParticleExchanger.cc.
|
overridevirtual |
Implements Arcane::IParticleExchanger.
Definition at line 121 of file AsyncParticleExchanger.cc.
|
overridevirtual |
Sets the verbosity level (0 for no messages).
Implements Arcane::IParticleExchanger.
Definition at line 161 of file AsyncParticleExchanger.cc.
|
overridevirtual |
Verbosity level.
Implements Arcane::IParticleExchanger.
Definition at line 170 of file AsyncParticleExchanger.cc.
|
overridevirtual |
Implements Arcane::IParticleExchanger.
Definition at line 132 of file AsyncParticleExchanger.cc.
|
private |
Definition at line 75 of file AsyncParticleExchanger.h.
|
private |
Definition at line 76 of file AsyncParticleExchanger.h.
|
private |
Definition at line 77 of file AsyncParticleExchanger.h.
|
private |
Definition at line 79 of file AsyncParticleExchanger.h.
|
private |
Definition at line 78 of file AsyncParticleExchanger.h.