Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::Materials::IncrementalComponentModifier

Modification incrémentale des matériaux. Plus de détails...

#include <arcane/materials/internal/IncrementalComponentModifier.h>

+ Graphe d'héritage de Arcane::Materials::IncrementalComponentModifier:
+ Graphe de collaboration de Arcane::Materials::IncrementalComponentModifier:

Fonctions membres publiques

 IncrementalComponentModifier (AllEnvData *all_env_data, const RunQueue &queue)
 
void initialize (bool is_debug)
 
void apply (MaterialModifierOperation *operation)
 
void finalize ()
 
void setDoCopyBetweenPartialAndPure (bool v)
 
void setDoInitNewItems (bool v)
 
void flagRemovedCells (SmallSpan< const Int32 > local_ids, bool value_to_set)
 
Int32 _computeCellsToTransformForEnvironments (SmallSpan< const Int32 > ids)
 Calcule les mailles à transformer lorsqu'on modifie les mailles d'un milieu.
 
void _resetTransformedCells (SmallSpan< const Int32 > ids)
 
void _addItemsToIndexer (MeshMaterialVariableIndexer *var_indexer, SmallSpan< const Int32 > local_ids)
 
void _removeItemsInGroup (ItemGroup cells, SmallSpan< const Int32 > removed_ids)
 
void _applyCopyBetweenPartialsAndGlobals (const CopyBetweenPartialAndGlobalArgs &args, RunQueue &queue)
 Effectue la copie entre les valeurs partielles et globales.
 
void _applyCopyVariableViews (RunQueue &queue)
 Effectue la copie des vues pour les variables.
 
void _applyInitializeWithZero (const InitializeWithZeroArgs &args)
 
void _computeItemsToAdd (ComponentItemListBuilder &list_builder, SmallSpan< const Int32 > local_ids)
 
- Fonctions membres publiques hérités de Arccore::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Construit un accesseur via le gestionnaire de trace m.
 
 TraceAccessor (const TraceAccessor &rhs)
 Constructeur par recopie.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () const
 Gestionnaire de trace.
 
TraceMessage info () const
 Flot pour un message d'information.
 
TraceMessage pinfo () const
 Flot pour un message d'information en parallèle.
 
TraceMessage info (char category) const
 Flot pour un message d'information d'une catégorie donnée.
 
TraceMessage pinfo (char category) const
 Flot pour un message d'information parallèle d'une catégorie donnée.
 
TraceMessage info (bool v) const
 Flot pour un message d'information.
 
TraceMessage warning () const
 Flot pour un message d'avertissement.
 
TraceMessage pwarning () const
 
TraceMessage error () const
 Flot pour un message d'erreur.
 
TraceMessage perror () const
 
TraceMessage log () const
 Flot pour un message de log.
 
TraceMessage plog () const
 Flot pour un message de log.
 
TraceMessage logdate () const
 Flot pour un message de log précédé de la date.
 
TraceMessage fatal () const
 Flot pour un message d'erreur fatale.
 
TraceMessage pfatal () const
 Flot pour un message d'erreur fatale en parallèle.
 
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flot pour un message de debug.
 
Trace::eDebugLevel configDbgLevel () const
 Niveau debug du fichier de configuration.
 
TraceMessage info (Int32 verbose_level) const
 Flot pour un message d'information d'un niveau donné
 
TraceMessage linfo () const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
TraceMessage linfo (Int32 relative_level) const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
void fatalMessage (const StandaloneTraceMessage &o) const
 

Fonctions membres privées

void _switchCellsForEnvironments (const IMeshEnvironment *modified_env, SmallSpan< const Int32 > ids)
 Transforme les entités pour les milieux.
 
void _switchCellsForMaterials (const MeshMaterial *modified_mat, SmallSpan< const Int32 > ids)
 Transforme les entités pour un milieu.
 
Int32 _computeCellsToTransformForMaterial (const MeshMaterial *mat, SmallSpan< const Int32 > ids)
 Calcule les mailles à transformer pour le matériau \at mat.
 
void _removeItemsFromEnvironment (MeshEnvironment *env, MeshMaterial *mat, SmallSpan< const Int32 > local_ids, bool update_env_indexer)
 Supprime les mailles d'un matériau du milieu.
 
void _addItemsToEnvironment (MeshEnvironment *env, MeshMaterial *mat, SmallSpan< const Int32 > local_ids, bool update_env_indexer)
 Ajoute les mailles d'un matériau du milieu.
 
void _copyBetweenPartialsAndGlobals (const CopyBetweenPartialAndGlobalArgs &args)
 Copie entre les valeurs partielles et les valeurs globales.
 
void _resizeVariablesIndexer (Int32 var_index)
 Redimensionne l'index var_index des variables.
 

Attributs privés

AllEnvDatam_all_env_data = nullptr
 
MeshMaterialMngm_material_mng = nullptr
 
ConstituentModifierWorkInfo m_work_info
 
RunQueue m_queue
 
bool m_do_copy_between_partial_and_pure = true
 
bool m_do_init_new_items = true
 
bool m_is_debug = false
 
Int32 m_use_generic_copy_between_pure_and_partial = 0
 1 ou 2 si on utilise une version générique pour les copies entre pure et partiel
 

Amis

class MeshMaterialModifierImpl
 

Membres hérités additionnels

- Fonctions membres protégées hérités de Arccore::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 

Description détaillée

Modification incrémentale des matériaux.

Il faut appeler initialize() pour initialiser l'instance puis appeler apply() pour chaque opération.

Définition à la ligne 40 du fichier IncrementalComponentModifier.h.

Documentation des constructeurs et destructeur

◆ IncrementalComponentModifier()

Arcane::Materials::IncrementalComponentModifier::IncrementalComponentModifier ( AllEnvData all_env_data,
const RunQueue queue 
)

Définition à la ligne 38 du fichier IncrementalComponentModifier.cc.

Documentation des fonctions membres

◆ _addItemsToEnvironment()

void Arcane::Materials::IncrementalComponentModifier::_addItemsToEnvironment ( MeshEnvironment env,
MeshMaterial mat,
SmallSpan< const Int32 >  local_ids,
bool  update_env_indexer 
)
private

Ajoute les mailles d'un matériau du milieu.

Ajoute les mailles données par local_ids au matériau mat du milieu. L'indexeur du matériau est mis à jour et si update_env_indexer est vrai, celui du milieu aussi (ce qui signifie que le milieu apparait dans les mailles local_ids).

Définition à la ligne 292 du fichier IncrementalComponentModifier.cc.

Références Arcane::Materials::ConstituentConnectivityList::fillCellsIsPartial().

◆ _addItemsToIndexer()

void Arcane::Materials::IncrementalComponentModifier::_addItemsToIndexer ( MeshMaterialVariableIndexer var_indexer,
SmallSpan< const Int32 >  local_ids 
)

Définition à la ligne 324 du fichier IncrementalComponentModifier.cc.

◆ _applyCopyBetweenPartialsAndGlobals()

void Arcane::Materials::IncrementalComponentModifier::_applyCopyBetweenPartialsAndGlobals ( const CopyBetweenPartialAndGlobalArgs args,
RunQueue queue 
)

◆ _applyCopyVariableViews()

void Arcane::Materials::IncrementalComponentModifier::_applyCopyVariableViews ( RunQueue queue)

Effectue la copie des vues pour les variables.

Cette méthode permet de faire en une seule RunCommand les copies entre les vues CPU et accélérateurs des variables

Définition à la ligne 477 du fichier IncrementalComponentModifier_Accelerator.cc.

Références ARCANE_CHECK_ACCESSIBLE_POINTER, ARCANE_FATAL, Arcane::Materials::ConstituentModifierWorkInfo::m_host_variables_copy_data, Arcane::Materials::ConstituentModifierWorkInfo::m_variables_copy_data, Arcane::Accelerator::makeCommand(), et RUNCOMMAND_LOOP2.

◆ _applyInitializeWithZero()

void Arcane::Materials::IncrementalComponentModifier::_applyInitializeWithZero ( const InitializeWithZeroArgs args)

Définition à la ligne 436 du fichier IncrementalComponentModifier_Accelerator.cc.

◆ _computeCellsToTransformForEnvironments()

Int32 Arcane::Materials::IncrementalComponentModifier::_computeCellsToTransformForEnvironments ( SmallSpan< const Int32 >  ids)

Calcule les mailles à transformer lorsqu'on modifie les mailles d'un milieu.

Définition à la ligne 219 du fichier IncrementalComponentModifier_Accelerator.cc.

Références Arcane::Materials::ConstituentModifierWorkInfo::isAdd(), Arcane::Accelerator::makeCommand(), et RUNCOMMAND_LOOP1.

◆ _computeCellsToTransformForMaterial()

Int32 Arcane::Materials::IncrementalComponentModifier::_computeCellsToTransformForMaterial ( const MeshMaterial mat,
SmallSpan< const Int32 >  ids 
)
private

Calcule les mailles à transformer pour le matériau \at mat.

Définition à la ligne 233 du fichier IncrementalComponentModifier.cc.

Références Arcane::Materials::ConstituentConnectivityList::fillCellsToTransform().

◆ _computeItemsToAdd()

void Arcane::Materials::IncrementalComponentModifier::_computeItemsToAdd ( ComponentItemListBuilder list_builder,
SmallSpan< const Int32 >  local_ids 
)

Définition à la ligne 253 du fichier IncrementalComponentModifier_Accelerator.cc.

◆ _copyBetweenPartialsAndGlobals()

void Arcane::Materials::IncrementalComponentModifier::_copyBetweenPartialsAndGlobals ( const CopyBetweenPartialAndGlobalArgs args)
private

Copie entre les valeurs partielles et les valeurs globales.

Si pure_to_partial est vrai, alors on copie les valeurs globales vers les valeurs partielles, sinon on fait l'inverse. de suppression d'un matériau)

Définition à la ligne 443 du fichier IncrementalComponentModifier.cc.

Références Arccore::SpanImpl< T, SizeType, Extent, MinValue >::empty().

◆ _removeItemsFromEnvironment()

void Arcane::Materials::IncrementalComponentModifier::_removeItemsFromEnvironment ( MeshEnvironment env,
MeshMaterial mat,
SmallSpan< const Int32 >  local_ids,
bool  update_env_indexer 
)
private

Supprime les mailles d'un matériau du milieu.

Supprime les mailles données par local_ids du matériau mat du milieu. L'indexeur du matériau est mis à jour et si update_env_indexer est vrai, celui du milieu aussi (ce qui signifie que le milieu disparait des mailles local_ids).

TODO: optimiser cela en ne parcourant pas toutes les mailles matériaux du milieu (il faut supprimer removed_local_ids_filter). Si on connait l'indice de chaque maille dans la liste des MatVarIndex de l'indexeur, on peut directement taper dedans.

Définition à la ligne 260 du fichier IncrementalComponentModifier.cc.

◆ _removeItemsInGroup()

void Arcane::Materials::IncrementalComponentModifier::_removeItemsInGroup ( ItemGroup  cells,
SmallSpan< const Int32 >  removed_ids 
)

Définition à la ligne 345 du fichier IncrementalComponentModifier_Accelerator.cc.

◆ _resetTransformedCells()

void Arcane::Materials::IncrementalComponentModifier::_resetTransformedCells ( SmallSpan< const Int32 >  ids)

Définition à la ligne 328 du fichier IncrementalComponentModifier_Accelerator.cc.

◆ _resizeVariablesIndexer()

void Arcane::Materials::IncrementalComponentModifier::_resizeVariablesIndexer ( Int32  var_index)
private

Redimensionne l'index var_index des variables.

Définition à la ligne 400 du fichier IncrementalComponentModifier.cc.

Références Arcane::Accelerator::RunQueue::barrier().

◆ _switchCellsForEnvironments()

void Arcane::Materials::IncrementalComponentModifier::_switchCellsForEnvironments ( const IMeshEnvironment modified_env,
SmallSpan< const Int32 >  ids 
)
private

Transforme les entités pour les milieux.

Parcours les milieux, sauf le milieu modifié modified_env et pour chacun convertie les mailles pures en mailles partielles ou inversement. Après conversion, les valeurs correspondantes aux mailles modifiées sont mises à jour pour chaque variable.

Si is_add est vrai, alors on transforme de pure en partiel (dans le cas d'ajout de matériau) sinon on transforme de partiel en pure (dans le cas de suppression d'un matériau)

Définition à la ligne 164 du fichier IncrementalComponentModifier.cc.

Références Arcane::Materials::MeshMaterialVariableIndexer::name(), et Arcane::Materials::MeshMaterialVariableIndexer::transformCells().

◆ _switchCellsForMaterials()

void Arcane::Materials::IncrementalComponentModifier::_switchCellsForMaterials ( const MeshMaterial modified_mat,
SmallSpan< const Int32 >  ids 
)
private

Transforme les entités pour un milieu.

Parcours le milieux env et convertie les mailles pures en mailles partielles ou inversement. Après conversion, les valeurs correspondantes aux mailles modifiées sont mises à jour pour chaque variable.

Si is_add est vrai, alors on transforme de pure en partiel (ajout de matériau) sinon on transforme de partiel en pure (suppression d'un matériau)

Définition à la ligne 96 du fichier IncrementalComponentModifier.cc.

Références Arcane::Materials::MeshMaterialVariableIndexer::name(), et Arcane::Materials::MeshMaterialVariableIndexer::transformCells().

◆ apply()

void Arcane::Materials::IncrementalComponentModifier::apply ( MaterialModifierOperation operation)

Définition à la ligne 41 du fichier IncrementalComponentModifier_Accelerator.cc.

◆ finalize()

void Arcane::Materials::IncrementalComponentModifier::finalize ( )

Définition à la ligne 77 du fichier IncrementalComponentModifier.cc.

◆ flagRemovedCells()

void Arcane::Materials::IncrementalComponentModifier::flagRemovedCells ( SmallSpan< const Int32 >  local_ids,
bool  value_to_set 
)

Définition à la ligne 308 du fichier IncrementalComponentModifier_Accelerator.cc.

◆ initialize()

void Arcane::Materials::IncrementalComponentModifier::initialize ( bool  is_debug)

Définition à la ligne 63 du fichier IncrementalComponentModifier.cc.

◆ setDoCopyBetweenPartialAndPure()

void Arcane::Materials::IncrementalComponentModifier::setDoCopyBetweenPartialAndPure ( bool  v)
inline

Définition à la ligne 54 du fichier IncrementalComponentModifier.h.

◆ setDoInitNewItems()

void Arcane::Materials::IncrementalComponentModifier::setDoInitNewItems ( bool  v)
inline

Définition à la ligne 55 du fichier IncrementalComponentModifier.h.

Documentation des fonctions amies et associées

◆ MeshMaterialModifierImpl

Définition à la ligne 43 du fichier IncrementalComponentModifier.h.

Documentation des données membres

◆ m_all_env_data

AllEnvData* Arcane::Materials::IncrementalComponentModifier::m_all_env_data = nullptr
private

Définition à la ligne 59 du fichier IncrementalComponentModifier.h.

◆ m_do_copy_between_partial_and_pure

bool Arcane::Materials::IncrementalComponentModifier::m_do_copy_between_partial_and_pure = true
private

Définition à la ligne 63 du fichier IncrementalComponentModifier.h.

◆ m_do_init_new_items

bool Arcane::Materials::IncrementalComponentModifier::m_do_init_new_items = true
private

Définition à la ligne 64 du fichier IncrementalComponentModifier.h.

◆ m_is_debug

bool Arcane::Materials::IncrementalComponentModifier::m_is_debug = false
private

Définition à la ligne 65 du fichier IncrementalComponentModifier.h.

◆ m_material_mng

MeshMaterialMng* Arcane::Materials::IncrementalComponentModifier::m_material_mng = nullptr
private

Définition à la ligne 60 du fichier IncrementalComponentModifier.h.

◆ m_queue

RunQueue Arcane::Materials::IncrementalComponentModifier::m_queue
private

Définition à la ligne 62 du fichier IncrementalComponentModifier.h.

◆ m_use_generic_copy_between_pure_and_partial

Int32 Arcane::Materials::IncrementalComponentModifier::m_use_generic_copy_between_pure_and_partial = 0
private

1 ou 2 si on utilise une version générique pour les copies entre pure et partiel

Définition à la ligne 67 du fichier IncrementalComponentModifier.h.

◆ m_work_info

ConstituentModifierWorkInfo Arcane::Materials::IncrementalComponentModifier::m_work_info
private

Définition à la ligne 61 du fichier IncrementalComponentModifier.h.


La documentation de cette classe a été générée à partir des fichiers suivants :