Service basique de calcul d'intersection entre segments et maillage. Plus de détails...
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 IRayFaceIntersector * | faceIntersector () |
| 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 ISubDomain * | subDomain () |
Fonctions membres publiques hérités de Arcane::AbstractService | |
| ~AbstractService () override | |
| Destructeur. | |
| IServiceInfo * | serviceInfo () const override |
| Accès aux informations du service. Voir IServiceInfo pour les détails. | |
| IBase * | serviceParent () const override |
| Accès à l'interface de base des principaux objets Arcane. | |
| IService * | serviceInterface () override |
| Retourne l'interface bas niveau IService du service. | |
Fonctions membres publiques hérités de Arcane::TraceAccessor | |
| TraceAccessor (ITraceMng *m) | |
| Construit un accesseur via le gestionnaire de trace m. | |
| TraceAccessor (const TraceAccessor &rhs) | |
| Constructeur par recopie. | |
| TraceAccessor & | operator= (const TraceAccessor &rhs) |
| Opérateur de recopie. | |
| virtual | ~TraceAccessor () |
| Libère les ressources. | |
| ITraceMng * | traceMng () 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. | |
| VariableNodeReal3 & | nodesCoordinates () 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. | |
| IMesh * | mesh () const |
| const MeshHandle & | meshHandle () 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 ()=default |
| Libère les ressources. | |
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 Arcane::TraceAccessor | |
| void | _setLocalVerboseLevel (Int32 v) |
| Int32 | _localVerboseLevel () const |
Fonctions membres protégées hérités de Arcane::IService | |
| IService () | |
| Constructeur. | |
Service basique de calcul d'intersection entre segments et maillage.
Définition à la ligne 452 du fichier BasicRayMeshIntersection.cc.
| Arcane::BasicRayMeshIntersection::BasicRayMeshIntersection | ( | const ServiceBuildInfo & | sbi | ) |
Définition à la ligne 521 du fichier BasicRayMeshIntersection.cc.
|
inlinevirtual |
Définition à la ligne 459 du fichier BasicRayMeshIntersection.cc.
|
inline |
Définition à la ligne 492 du fichier BasicRayMeshIntersection.cc.
| void Arcane::BasicRayMeshIntersection::_writeSegments | ( | Int32 | rank, |
| Real3ConstArrayView | positions, | ||
| Real3ConstArrayView | directions, | ||
| RealConstArrayView | distances ) |
Définition à la ligne 848 du fichier BasicRayMeshIntersection.cc.
|
inlinevirtual |
Construction de niveau build du service.
Cette méthode est appelé juste après le constructeur.
Réimplémentée à partir de Arcane::AbstractService.
Définition à la ligne 463 du fichier BasicRayMeshIntersection.cc.
|
virtual |
Calcule l'intersection de rayons.
Calcul l'intersection des rayons de la famille 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 Arcane::Array< T >::add(), Arcane::IParallelMng::allGatherVariable(), Arcane::IItemFamily::allItems(), Arcane::arcaneCheckArraySize(), Arcane::IParallelMng::commRank(), compute(), Arcane::Array< T >::data(), ENUMERATE_ITEM, ENUMERATE_PARTICLE, Arcane::IParticleFamily::exchangeParticles(), Arcane::Array< T >::fill(), Arcane::TraceAccessor::info(), Arcane::IParallelMng::isParallel(), Arcane::IItemFamily::itemsNewOwner(), Arcane::IItemFamily::mesh(), Arcane::IItemFamily::nbItem(), Arcane::IParallelMng::reduce(), Arcane::MessagePassing::ReduceSum, Arcane::Array< T >::resize(), Arcane::AbstractArray< T >::size(), Arcane::ConstArrayView< T >::size(), Arcane::ItemGroup::size(), Arcane::IItemFamily::toParticleFamily(), Arcane::Real3POD::x, Arcane::Real3POD::y, et Arcane::Real3POD::z.
|
virtual |
Calcule l'intersection.
En retour, le tableau faces_local_id contient le numéro local de la face coupée pour chaque segment. Si un segment ne coupe pas de face, le local_id correspondant est NULL_ITEM_LOCAL_ID.
Implémente Arcane::IRayMeshIntersection.
Définition à la ligne 531 du fichier BasicRayMeshIntersection.cc.
Références ENUMERATE_FACE, Arcane::TraceAccessor::fatal(), Arcane::ArrayView< T >::fill(), Arcane::TraceAccessor::info(), Arcane::Item::isOwn(), Arcane::Item::localId(), Arcane::ItemWithNodes::nbNode(), Arcane::ItemWithNodes::nodes(), Arcane::Array< T >::resize(), Arcane::ConstArrayView< T >::size(), Arcane::ItemGroup::size(), et Arcane::TraceAccessor::traceMng().
Référencé par compute().
|
inlinevirtual |
Intersecteur utilisé (0 si aucun spécifié)
Implémente Arcane::IRayMeshIntersection.
Définition à la ligne 485 du fichier BasicRayMeshIntersection.cc.
|
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.