Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
ICaseMeshMasterService.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* ICaseMeshMasterService.h (C) 2000-2024 */
9/* */
10/* Interface of the service managing the meshes of the dataset. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_ICASEMESHMASTERSERVICE_H
13#define ARCANE_CORE_ICASEMESHMASTERSERVICE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28/*!
29 * \internal
30 * \brief Interface of the service managing the meshes of the dataset.
31 *
32 * This service manages the different mesh creation/reading services.
33 *
34 * This is done in two phases:
35 * - a first phase when calling createMeshes() where all the
36 * meshes derived from the dataset are created. In this phase, only
37 * the class managing the meshes is created, but they are not yet
38 * usable.
39 * - a second phase when calling allocateMeshes() where the meshes
40 * are actually allocated. This corresponds either to reading the meshes,
41 * or to the effective creation of the entities they manage.
42 *
43 * There is a third optional phase which is only performed
44 * in parallel and consists of partitioning the meshes, via the call
45 * to partitionMeshes().
46 *
47 * Finally, it is possible to apply an additional treatment at the end of mesh creation.
48 * For example, it is possible to subdivide the current mesh. This is done by calling
49 * applyAdditionalOperationsOnMeshes().
50 */
52{
53 public:
54
55 virtual ~ICaseMeshMasterService() = default;
56
57 public:
58
59 //! Creates the meshes
60 virtual void createMeshes() = 0;
61 //! Creates the meshes
62 virtual void allocateMeshes() = 0;
63 //! Partitions the meshes
64 virtual void partitionMeshes() = 0;
65 //! Applies any additional operations on the created mesh.
67
68 public:
69
70 virtual ICaseOptions* _options() = 0;
71};
72
73/*---------------------------------------------------------------------------*/
74/*---------------------------------------------------------------------------*/
75
76} // namespace Arcane
77
78/*---------------------------------------------------------------------------*/
79/*---------------------------------------------------------------------------*/
80
81#endif
Declarations of Arcane's general types.
virtual void createMeshes()=0
Creates the meshes.
virtual void applyAdditionalOperationsOnMeshes()
Applies any additional operations on the created mesh.
virtual void partitionMeshes()=0
Partitions the meshes.
virtual void allocateMeshes()=0
Creates the meshes.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --