Arcane
4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
ExtraGhostParticlesBuilder.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
/* ExtraGhostParticlesBuilder.h (C) 2000-2024 */
9
/* */
10
/* Construction of extra ghost cells. */
11
/*---------------------------------------------------------------------------*/
12
#ifndef ARCANE_MESH_EXTRAGHOSTPARTICLESBUILDER_H
13
#define ARCANE_MESH_EXTRAGHOSTPARTICLESBUILDER_H
14
/*---------------------------------------------------------------------------*/
15
/*---------------------------------------------------------------------------*/
16
17
#include "arcane/utils/TraceAccessor.h"
18
#include "arcane/utils/Array.h"
19
20
#include "arcane/mesh/MeshGlobal.h"
21
22
/*---------------------------------------------------------------------------*/
23
/*---------------------------------------------------------------------------*/
24
25
namespace
Arcane
26
{
27
class
IExtraGhostParticlesBuilder
;
28
}
29
30
/*---------------------------------------------------------------------------*/
31
/*---------------------------------------------------------------------------*/
32
33
namespace
Arcane::mesh
34
{
35
36
/*---------------------------------------------------------------------------*/
37
/*---------------------------------------------------------------------------*/
38
39
class
DynamicMesh
;
40
class
ParticleFamily
;
41
42
/*---------------------------------------------------------------------------*/
43
/*---------------------------------------------------------------------------*/
44
48
class
ExtraGhostParticlesBuilder
49
:
public
TraceAccessor
50
{
51
public
:
52
53
explicit
ExtraGhostParticlesBuilder(
DynamicMesh
*
mesh
);
54
55
public
:
56
57
void
computeExtraGhostParticles();
58
void
addExtraGhostParticlesBuilder(
IExtraGhostParticlesBuilder
* builder);
59
void
removeExtraGhostParticlesBuilder(
IExtraGhostParticlesBuilder
* builder);
60
bool
hasBuilder()
const
;
61
62
private
:
63
64
DynamicMesh
* m_mesh =
nullptr
;
65
UniqueArray<IExtraGhostParticlesBuilder*>
m_builders;
66
67
private
:
68
69
void
_computeForFamily(
ParticleFamily
* particle_family);
70
};
71
72
/*---------------------------------------------------------------------------*/
73
/*---------------------------------------------------------------------------*/
74
75
}
// End namespace Arcane::mesh
76
77
/*---------------------------------------------------------------------------*/
78
/*---------------------------------------------------------------------------*/
79
80
#endif
Arcane::IExtraGhostParticlesBuilder
Interface of a builder for "extraordinary" ghost cells.
Definition
IExtraGhostParticlesBuilder.h:41
Arcane::TraceAccessor::TraceAccessor
TraceAccessor(ITraceMng *m)
Constructs an accessor via the trace manager m.
Definition
TraceAccessor.cc:27
Arcane::UniqueArray
1D data vector with value semantics (STL style).
Definition
arccore/src/common/arccore/common/Array.h:890
Arcane::mesh::DynamicMesh
Implementation of a mesh.
Definition
DynamicMesh.h:98
Arcane::mesh::ParticleFamily
Particle family.
Definition
ParticleFamily.h:42
Arcane::mesh
AMR.
Definition
ArcaneTypes.h:664
Arcane
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Definition
arcane/src/arcane/accelerator/AcceleratorGlobal.h:37
arcane
mesh
ExtraGhostParticlesBuilder.h
Generated on
for Arcane by
1.16.1