Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Euclidian3GeometryService.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7#include <arcane/geometry/euclidian/Euclidian3GeometryService.h>
8/* Author : havep at Wed Nov 14 13:55:36 2007
9 * Generated by createNew
10 */
11
12#include <arcane/IMesh.h>
13#include <arcane/IMeshSubMeshTransition.h>
14#include <arcane/IItemFamily.h>
15using namespace Arcane;
16
17#include <arcane/geometry/euclidian/Euclidian3Geometry.h>
18
19ARCANE_BEGIN_NAMESPACE
20NUMERICS_BEGIN_NAMESPACE
21
22/* Few words about possible optimisations:
23 * Next possible optimizations (when necessary) are:
24 * - Compute common properties on maximal group
25 * (instead of re-computing the same property on all groups with shared items)
26 * - Different properties may use the same computation. Then, maximal group factorisation
27 * may consider by a system of "what properties may compute this kernel" even if not
28 * shared by alls group in a maximal set.
29 * - Mandatory storage parameter in addItemGroupProperty (up to now, this is optional)
30 * - Geometry computations by constraints
31 * ex: for volume computations, we need face center on Quad4. This center is computed twice
32 * for each shared face. Moreover, this computation may be also wished by the used.
33 * The idea is to define requirements for each geometry computations by kind and type.
34 * Then computations are done following the order of the weakest constraints.
35 */
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
39
48
51{
52 if (m_geometry)
53 delete m_geometry;
54}
55
56/*---------------------------------------------------------------------------*/
57/*---------------------------------------------------------------------------*/
58
59void
61init()
62{
63 if (m_geometry)
64 {
65 info() << className() << " already initialized";
66 return;
67 }
68
69 // L'implémentation actuelle se construit sur le maillage par défaut
70 m_geometry = new Euclidian3Geometry(PRIMARYMESH_CAST(this->mesh())->nodesCoordinates());
71
72 if (options()->variableSuffix.size() > 0)
73 {
74 setSuffix(options()->variableSuffix[0]);
75 }
76}
77
78/*---------------------------------------------------------------------------*/
79
80void
82update(ItemGroup group)
83{
84 updateGroup(group,*m_geometry);
85}
86
87void
89reset(ItemGroup group)
90{
91 ARCANE_UNUSED(group);
92}
93
94/*---------------------------------------------------------------------------*/
95
96
97/*---------------------------------------------------------------------------*/
98
101geometry()
102{
103 return m_geometry;
104}
105
106/*---------------------------------------------------------------------------*/
107/*---------------------------------------------------------------------------*/
108
109ARCANE_REGISTER_SERVICE_EUCLIDIAN3GEOMETRY(Euclidian3Geometry,Euclidian3GeometryService);
110
111NUMERICS_END_NAMESPACE
112ARCANE_END_NAMESPACE
113
114/*---------------------------------------------------------------------------*/
115/*---------------------------------------------------------------------------*/
Generation de la classe de base du Service.
CaseOptionsEuclidian3Geometry * options() const
Options du jeu de données du service.
const char * className() const
Name of instancied class.
Euclidian3GeometryService(const Arcane::ServiceBuildInfo &sbi)
IGeometry * geometry()
Get underlying geometry.
void setSuffix(const String &suffix)
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
VariableNodeReal3 & nodesCoordinates() const
Retourne les coordonnées des noeuds du maillage.
virtual void update()=0
Update property values for all ItemGroups.
virtual void reset()=0
Reset property for all ItemGroups.
Interface de calculs géométriques.
Definition IGeometry.h:25
Structure contenant les informations pour créer un service.
TraceMessage info() const
Flot pour un message d'information.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-