Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
DoFFamilyPolicyMng.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/*---------------------------------------------------------------------------*/
8/* DoFFamilyPolicyMng.cc (C) 2000-2016 */
9/* */
10/* Gestionnaire des politiques d'une famille de DoF. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/utils/NotSupportedException.h"
15
16#include "arcane/mesh/ItemFamilyPolicyMng.h"
17#include "arcane/mesh/ItemFamilyCompactPolicy.h"
18#include "arcane/mesh/ItemFamilySerializer.h"
19#include "arcane/mesh/IndirectItemFamilySerializer.h"
20#include "arcane/mesh/DoFFamily.h"
21#include "arcane/mesh/DynamicMesh.h"
22#include "arcane/mesh/DynamicMeshIncrementalBuilder.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27ARCANE_BEGIN_NAMESPACE
28ARCANE_MESH_BEGIN_NAMESPACE
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
37: public ItemFamilyCompactPolicy
38{
39 public:
40 DoFFamilyCompactPolicy(ItemFamily* family) : ItemFamilyCompactPolicy(family){}
41 public:
42 void updateInternalReferences(IMeshCompacter* compacter) override
43 {
44 // Pour l'instant ne fait rien car c'est la famille source qui gère la
45 // mise à jour dans ItemFamily::beginCompactItems().
46 ARCANE_UNUSED(compacter);
47 }
48};
49
50/*---------------------------------------------------------------------------*/
51/*---------------------------------------------------------------------------*/
55class ARCANE_MESH_EXPORT DoFFamilyPolicyMng
57{
58 public:
59 DoFFamilyPolicyMng(DoFFamily* family)
61 , m_family(family){}
62 public:
64 {
65 if (use_flags)
66 throw NotSupportedException(A_FUNCINFO,"serialisation with 'use_flags==true'");
67
68 IMesh* mesh = m_family->mesh();
69 DynamicMesh* dmesh = ARCANE_CHECK_POINTER(dynamic_cast<DynamicMesh*>(mesh));
70 return new ItemFamilySerializer(m_family, m_family, dmesh->incrementalBuilder());
71 //return new IndirectItemFamilySerializer(m_family);
72 }
73 private:
74 DoFFamily* m_family;
75};
76
77/*---------------------------------------------------------------------------*/
78/*---------------------------------------------------------------------------*/
79
80extern "C++" ARCANE_MESH_EXPORT IItemFamilyPolicyMng*
81createDoFFamilyPolicyMng(ItemFamily* family)
82{
83 DoFFamily* f = ARCANE_CHECK_POINTER(dynamic_cast<DoFFamily*>(family));
84 return new DoFFamilyPolicyMng(f);
85}
86
87/*---------------------------------------------------------------------------*/
88/*---------------------------------------------------------------------------*/
89
90ARCANE_MESH_END_NAMESPACE
91ARCANE_END_NAMESPACE
92
93/*---------------------------------------------------------------------------*/
94/*---------------------------------------------------------------------------*/
#define ARCANE_CHECK_POINTER(ptr)
Macro retournant le pointeur ptr s'il est non nul ou lancant une exception s'il est nul.
Gestionnaire des politiques d'une famille de DoF.
IItemFamilySerializer * createSerializer(bool use_flags) override
Créé une instance pour la sérialisation des entités. L'instance retournée doit être détruite par l'op...
Gère la sérialisation/désérialisation des entités d'une famille.
Gestion d'un compactage de familles du maillage.
Gestionnaire des politiques d'une famille d'entités.
Sérialisation/Désérialisation des familles d'entités.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Exception lorsqu'une opération n'est pas supportée.