Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
MeshPartitionConstraintMng.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/* MeshPartitionConstraintMng.h (C) 2000-2009 */
9/* */
10/* Mesh partitioning constraint manager. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MESH_MESHPARTITIONCONSTRAINTMNG_H
13#define ARCANE_MESH_MESHPARTITIONCONSTRAINTMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/List.h"
19
20#include "arcane/mesh/MeshGlobal.h"
21
22#include "arcane/core/IMeshPartitionConstraintMng.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane::mesh
28{
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
36class MeshPartitionConstraintMng
37: public TraceAccessor
39{
40 private:
41
42 class Helper;
43
44 public:
45
46 MeshPartitionConstraintMng(IMesh* mesh);
47 virtual ~MeshPartitionConstraintMng();
48
49 public:
50
51 virtual void addConstraint(IMeshPartitionConstraint* constraint);
52 virtual void removeConstraint(IMeshPartitionConstraint* constraint);
53 virtual void computeAndApplyConstraints();
54 virtual void computeConstraintList(Int64MultiArray2& tied_uids);
55
56 virtual void addWeakConstraint(IMeshPartitionConstraint* constraint);
57 virtual void removeWeakConstraint(IMeshPartitionConstraint* constraint);
58 virtual void computeAndApplyWeakConstraints();
59 virtual void computeWeakConstraintList(Int64MultiArray2& tied_uids);
60
61 private:
62
63 IMesh* m_mesh;
64 bool m_is_debug;
66 List<IMeshPartitionConstraint*> m_weak_constraints;
67
68 private:
69
70 void _computeAndApplyConstraints(Helper& h);
71 void _computeAndApplyWeakConstraints(Helper& h);
72};
73
74/*---------------------------------------------------------------------------*/
75/*---------------------------------------------------------------------------*/
76
77} // namespace Arcane::mesh
78
79/*---------------------------------------------------------------------------*/
80
81#endif
Interface of a mesh partitioning constraint manager.
Interface of a mesh partitioning constraint.
Implementation of a collection of elements in vector form.
TraceAccessor(ITraceMng *m)
Constructs an accessor via the trace manager m.
virtual void computeConstraintList(Int64MultiArray2 &tied_uids)
Computes constraints and returns a list of linked entities.
virtual void removeConstraint(IMeshPartitionConstraint *constraint)
Removes a constraint.
virtual void computeAndApplyWeakConstraints()
Computes and applies constraints.
virtual void addConstraint(IMeshPartitionConstraint *constraint)
Adds a constraint.
virtual void addWeakConstraint(IMeshPartitionConstraint *constraint)
Adds a weak constraint.
virtual void computeWeakConstraintList(Int64MultiArray2 &tied_uids)
Computes constraints and returns a list of linked entities.
virtual void computeAndApplyConstraints()
Computes and applies constraints.
virtual void removeWeakConstraint(IMeshPartitionConstraint *constraint)
Removes a constraint.
MultiArray2< Int64 > Int64MultiArray2
2D variable size array of 64-bit integers
Definition UtilsTypes.h:419