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

Service basique de calcul d'intersection entre segments et maillage. Plus de détails...

+ Graphe d'héritage de Arcane::BasicRayMeshIntersection:
+ Graphe de collaboration de Arcane::BasicRayMeshIntersection:

Fonctions membres publiques

 BasicRayMeshIntersection (const ServiceBuildInfo &sbi)
 
virtual void build ()
 Construction de niveau build du service.
 
virtual void compute (Real3ConstArrayView segments_position, Real3ConstArrayView segments_direction, Int32ConstArrayView segments_orig_face, Int32ArrayView user_values, Real3ArrayView intersections, RealArrayView distances, Int32ArrayView faces_local_id)
 Calcule l'intersection.
 
virtual void compute (IItemFamily *ray_family, VariableParticleReal3 &rays_position, VariableParticleReal3 &rays_direction, VariableParticleInt32 &rays_orig_face, VariableParticleInt32 &user_values, VariableParticleReal3 &intersections, VariableParticleReal &distances, VariableParticleInt32 &rays_face)
 Calcule l'intersection de rayons.
 
virtual void setFaceIntersector (IRayFaceIntersector *intersector)
 Positionne le callback d'intersection.
 
virtual IRayFaceIntersectorfaceIntersector ()
 Intersecteur utilisé (0 si aucun spécifié)
 
void _checkBoundingBox (Real3 p, Real3 *ARCANE_RESTRICT min_bounding_box, Real3 *ARCANE_RESTRICT max_bounding_box)
 
void _writeSegments (Int32 rank, Real3ConstArrayView positions, Real3ConstArrayView directions, RealConstArrayView distances)
 
- Fonctions membres publiques hérités de Arcane::BasicService
 ~BasicService () override
 Libère les ressources.
 
virtual ISubDomainsubDomain ()
 
- Fonctions membres publiques hérités de Arcane::AbstractService
virtual ~AbstractService ()
 Destructeur.
 
virtual IServiceInfoserviceInfo () const
 Accès aux informations du service.
 
virtual IBaseserviceParent () const
 Accès à l'interface de base des principaux objets Arcane.
 
virtual IServiceserviceInterface ()
 Retourne l'interface bas niveau IService du service.
 
- 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 publiques hérités de Arcane::IService
virtual ~IService ()
 Libère les ressources.
 
- Fonctions membres publiques hérités de Arcane::MeshAccessor
 MeshAccessor (ISubDomain *sd)
 
 MeshAccessor (IMesh *mesh)
 
 MeshAccessor (const MeshHandle &mesh_handle)
 
Integer nbCell () const
 Retourne le nombre de mailles du maillage.
 
Integer nbFace () const
 Retourne le nombre de faces du maillage.
 
Integer nbEdge () const
 Retourne le nombre d'arêtes du maillage.
 
Integer nbNode () const
 Retourne le nombre de noeuds du maillage.
 
VariableNodeReal3nodesCoordinates () const
 Retourne les coordonnées des noeuds du maillage.
 
NodeGroup allNodes () const
 Retourne le groupe contenant tous les noeuds.
 
EdgeGroup allEdges () const
 Retourne le groupe contenant toutes les arêtes.
 
FaceGroup allFaces () const
 Retourne le groupe contenant toutes les faces.
 
CellGroup allCells () const
 Retourne le groupe contenant toutes les mailles.
 
FaceGroup outerFaces () const
 Retourne le groupe contenant toutes les faces de le frontière.
 
NodeGroup ownNodes () const
 Retourne le groupe contenant tous les noeuds propres à ce domaine.
 
CellGroup ownCells () const
 Retourne le groupe contenant toutes les mailles propres à ce domaine.
 
FaceGroup ownFaces () const
 Groupe contenant toutes les faces propres à ce domaine.
 
EdgeGroup ownEdges () const
 Groupe contenant toutes les arêtes propres à ce domaine.
 
IMeshmesh () const
 
const MeshHandlemeshHandle () const
 
- Fonctions membres publiques hérités de Arcane::CommonVariables
 CommonVariables (IModule *c)
 Construit les références des variables communes pour le module c.
 
 CommonVariables (IVariableMng *variable_mng)
 Construit les références des variables communes pour le gestionnaire variable_mng.
 
 CommonVariables (ISubDomain *sd)
 Construit les références des variables communes pour le sous-domaine sd.
 
virtual ~CommonVariables ()
 Libère les ressources.
 
Int32 globalIteration () const
 Numéro de l'itération courante.
 
Real globalTime () const
 Temps courant.
 
Real globalOldTime () const
 Temps courant précédent.
 
Real globalFinalTime () const
 Temps final de la simulation.
 
Real globalDeltaT () const
 Delta T courant.
 
Real globalCPUTime () const
 Temps CPU utilisé (en seconde)
 
Real globalOldCPUTime () const
 Temps CPU utilisé précédent (en seconde)
 
Real globalElapsedTime () const
 Temps horloge (elapsed) utilisé (en seconde)
 
Real globalOldElapsedTime () const
 Temps horloge (elapsed) utilisé précédent (en seconde)
 
- Fonctions membres publiques hérités de Arcane::IRayMeshIntersection
virtual ~IRayMeshIntersection ()
 Libère les ressources.
 

Attributs privés

IRayFaceIntersectorm_face_intersector
 

Membres hérités additionnels

- Attributs publics hérités de Arcane::CommonVariables
VariableScalarInt32 m_global_iteration
 Itération courante.
 
VariableScalarReal m_global_time
 Temps actuel.
 
VariableScalarReal m_global_deltat
 Delta T global.
 
VariableScalarReal m_global_old_time
 Temps précédent le temps actuel.
 
VariableScalarReal m_global_old_deltat
 Delta T au temps précédent le temps global.
 
VariableScalarReal m_global_final_time
 Temps final du cas.
 
VariableScalarReal m_global_old_cpu_time
 Temps précédent CPU utilisé (en seconde)
 
VariableScalarReal m_global_cpu_time
 Temps CPU utilisé (en seconde)
 
VariableScalarReal m_global_old_elapsed_time
 Temps précédent horloge utilisé (en seconde)
 
VariableScalarReal m_global_elapsed_time
 Temps horloge utilisé (en seconde)
 
- Fonctions membres protégées hérités de Arcane::BasicService
 BasicService (const ServiceBuildInfo &)
 
- Fonctions membres protégées hérités de Arcane::AbstractService
 AbstractService (const ServiceBuildInfo &)
 Constructeur à partir d'un ServiceBuildInfo.
 
- Fonctions membres protégées hérités de Arccore::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 
- Fonctions membres protégées hérités de Arcane::IService
 IService ()
 Constructeur.
 

Description détaillée

Service basique de calcul d'intersection entre segments et maillage.

Définition à la ligne 452 du fichier BasicRayMeshIntersection.cc.

Documentation des constructeurs et destructeur

◆ BasicRayMeshIntersection()

Arcane::BasicRayMeshIntersection::BasicRayMeshIntersection ( const ServiceBuildInfo sbi)

Définition à la ligne 521 du fichier BasicRayMeshIntersection.cc.

◆ ~BasicRayMeshIntersection()

virtual Arcane::BasicRayMeshIntersection::~BasicRayMeshIntersection ( )
inlinevirtual

Définition à la ligne 459 du fichier BasicRayMeshIntersection.cc.

Documentation des fonctions membres

◆ _checkBoundingBox()

void Arcane::BasicRayMeshIntersection::_checkBoundingBox ( Real3  p,
Real3 *ARCANE_RESTRICT  min_bounding_box,
Real3 *ARCANE_RESTRICT  max_bounding_box 
)
inline

Définition à la ligne 492 du fichier BasicRayMeshIntersection.cc.

◆ _writeSegments()

void Arcane::BasicRayMeshIntersection::_writeSegments ( Int32  rank,
Real3ConstArrayView  positions,
Real3ConstArrayView  directions,
RealConstArrayView  distances 
)

Définition à la ligne 848 du fichier BasicRayMeshIntersection.cc.

◆ build()

virtual void Arcane::BasicRayMeshIntersection::build ( void  )
inlinevirtual

Construction de niveau build du service.

L'appel à build est effectué au moment de sa construction, usuellement au niveau de sa lecture dans les options en phase1.

Réimplémentée à partir de Arcane::AbstractService.

Définition à la ligne 463 du fichier BasicRayMeshIntersection.cc.

◆ compute() [1/2]

void Arcane::BasicRayMeshIntersection::compute ( IItemFamily ray_family,
VariableParticleReal3 rays_position,
VariableParticleReal3 rays_direction,
VariableParticleInt32 rays_orig_face,
VariableParticleInt32 user_values,
VariableParticleReal3 intersections,
VariableParticleReal distances,
VariableParticleInt32 rays_face 
)
virtual

Calcule l'intersection de rayons.

Calcul l'intersection des rayons de la familly ray_family avec la surface du maillage. La position et la direction des rayons est donnée par les variables rays_position et rays_direction. Le tableau rays_orig_face contient le numéro local de la face dont le rayon est originaire. Ce tableau est utilisé dans le IRayFaceIntersector.

En retour rays_face contiendra pour chaque rayon le localId() de la face intersectée ou NULL_ITEM_LOCAL_ID si un rayon n'intersecte aucune face. Le tableau rays_intersection contient en retour la position du point d'intersection et rays_distance la distance du point d'intersection par rapport à l'origine du rayon. Le tableau user_values est remplit en retour par le IRayFaceIntersector

En parallèle, les rayons de la famille sont échangés entre sous-domaines pour qu'un rayon se trouve dans le même sous-domaine que celui propriétaire de la face intersectée. Si un rayon n'intersecte pas de face, il reste dans ce sous-domaine.

Implémente Arcane::IRayMeshIntersection.

Définition à la ligne 654 du fichier BasicRayMeshIntersection.cc.

Références Arccore::Array< T >::add(), Arcane::IParallelMng::allGatherVariable(), Arcane::IItemFamily::allItems(), Arcane::arcaneCheckArraySize(), Arcane::IParallelMng::commRank(), compute(), Arccore::Array< T >::data(), ENUMERATE_ITEM, ENUMERATE_PARTICLE, Arcane::IParticleFamily::exchangeParticles(), Arccore::Array< T >::fill(), Arccore::TraceAccessor::info(), Arcane::IParallelMng::isParallel(), Arcane::IItemFamily::itemsNewOwner(), Arcane::IItemFamily::mesh(), Arcane::IItemFamily::nbItem(), Arcane::IMesh::parallelMng(), Arcane::IParallelMng::reduce(), Arccore::Array< T >::resize(), Arcane::ItemGroup::size(), Arccore::AbstractArray< T >::size(), Arccore::ConstArrayView< T >::size(), Arcane::IItemFamily::toParticleFamily(), Arcane::Real3POD::x, Arcane::Real3POD::y, et Arcane::Real3POD::z.

◆ compute() [2/2]

void Arcane::BasicRayMeshIntersection::compute ( Real3ConstArrayView  segments_position,
Real3ConstArrayView  segments_direction,
Int32ConstArrayView  orig_faces_local_id,
Int32ArrayView  user_values,
Real3ArrayView  intersections,
RealArrayView  distances,
Int32ArrayView  faces_local_id 
)
virtual

◆ faceIntersector()

virtual IRayFaceIntersector * Arcane::BasicRayMeshIntersection::faceIntersector ( )
inlinevirtual

Intersecteur utilisé (0 si aucun spécifié)

Implémente Arcane::IRayMeshIntersection.

Définition à la ligne 485 du fichier BasicRayMeshIntersection.cc.

◆ setFaceIntersector()

virtual void Arcane::BasicRayMeshIntersection::setFaceIntersector ( IRayFaceIntersector intersector)
inlinevirtual

Positionne le callback d'intersection.

Cela permet à l'appelant de spécifier sa méthode de calcul d'intersection d'un rayon avec une face. Si cette méthode n'est pas appelée, un intersecteur par défaut est utilisé.

Implémente Arcane::IRayMeshIntersection.

Définition à la ligne 481 du fichier BasicRayMeshIntersection.cc.

Documentation des données membres

◆ m_face_intersector

IRayFaceIntersector* Arcane::BasicRayMeshIntersection::m_face_intersector
private

Définition à la ligne 515 du fichier BasicRayMeshIntersection.cc.


La documentation de cette classe a été générée à partir du fichier suivant :