Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use IDoFFamily instead of DoFFamily in GraphDofs. #2025

Merged
merged 1 commit into from
Mar 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 26 additions & 26 deletions arcane/src/arcane/mesh/GraphDoFs.cc
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
//-----------------------------------------------------------------------------
// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
// See the top-level COPYRIGHT file for details.
// SPDX-License-Identifier: Apache-2.0
//-----------------------------------------------------------------------------
/*---------------------------------------------------------------------------*/
/* GraphDoFs.cc (C) 2000-2024 */
/* GraphDoFs.cc (C) 2000-2025 */
/* */
/*---------------------------------------------------------------------------*/

Expand Down Expand Up @@ -49,8 +49,8 @@
, m_mesh(mesh)
, m_dof_mng(mesh)
, m_connectivity_mng(m_dof_mng.connectivityMng())
, m_dual_node_family(m_dof_mng.family(GraphDoFs::dualNodeFamilyName(), true))
, m_link_family(m_dof_mng.family(GraphDoFs::linkFamilyName(), true))
, m_dual_node_family(m_dof_mng.getFamily(GraphDoFs::dualNodeFamilyName(), true))
, m_link_family(m_dof_mng.getFamily(GraphDoFs::linkFamilyName(), true))
, m_update_sync_info(false)
, m_particle_family_name(particle_family_name)
{
Expand Down Expand Up @@ -140,8 +140,8 @@
if (!m_graph_allocated)
_allocateGraph();

mesh::DoFFamily& link_family = m_dof_mng.family(GraphDoFs::linkFamilyName());
mesh::DoFFamily& dual_node_family = m_dof_mng.family(GraphDoFs::dualNodeFamilyName());
IDoFFamily* link_family = m_dof_mng.getFamily(GraphDoFs::linkFamilyName());
IDoFFamily* dual_node_family = m_dof_mng.getFamily(GraphDoFs::dualNodeFamilyName());

// Extract link infos
Int64UniqueArray link_uids, connected_dual_node_uids;
Expand All @@ -156,17 +156,17 @@
}

Int32UniqueArray link_lids(link_uids.size());
link_family.addDoFs(link_uids, link_lids);
link_family.endUpdate();
link_family->addDoFs(link_uids, link_lids);
link_family->endUpdate();

// resize connectivity
// fill connectivity
Int32UniqueArray connected_dual_nodes_lids(nb_link * nb_dual_nodes_per_link);
dual_node_family.itemsUniqueIdToLocalId(
dual_node_family->itemFamily()->itemsUniqueIdToLocalId(
connected_dual_nodes_lids.view(), connected_dual_node_uids.constView(), true);

auto link_index = 0;
ENUMERATE_DOF (inewlink, link_family.view(link_lids)) {
ENUMERATE_DOF (inewlink, link_family->itemFamily()->view(link_lids)) {
m_links_incremental_connectivity->notifySourceItemAdded(ItemLocalId(*inewlink));
for (auto lid : connected_dual_nodes_lids.subConstView(link_index, nb_dual_nodes_per_link)) {
m_links_incremental_connectivity->addConnectedItem(ItemLocalId(*inewlink), ItemLocalId(lid));
Expand Down Expand Up @@ -204,9 +204,9 @@
}

Int32UniqueArray dual_node_lids(dual_node_uids.size());
auto& dual_node_family = m_dof_mng.family(GraphDoFs::dualNodeFamilyName());
dual_node_family.addDoFs(dual_node_uids, dual_node_lids);
dual_node_family.endUpdate();
auto* dual_node_family = m_dof_mng.getFamily(GraphDoFs::dualNodeFamilyName());
dual_node_family->addDoFs(dual_node_uids, dual_node_lids);
dual_node_family->endUpdate();

IItemFamily* dual_item_family = _dualItemFamily(dualItemKind(dual_node_kind));

Expand All @@ -225,7 +225,7 @@
Int32UniqueArray dual_item_lids(dual_item_uids.size());
dual_item_family->itemsUniqueIdToLocalId(dual_item_lids, dual_item_uids);

ENUMERATE_DOF (idual_node, dual_node_family.view(dual_node_lids)) {
ENUMERATE_DOF (idual_node, dual_node_family->itemFamily()->view(dual_node_lids)) {
incremental_dual_item_connectivity->notifySourceItemAdded(ItemLocalId(*idual_node));
incremental_dual_item_connectivity->addConnectedItem(ItemLocalId(*idual_node), ItemLocalId(dual_item_lids[idual_node.index()]));
}
Expand Down Expand Up @@ -268,7 +268,7 @@
auto& dual_node_uids = info.first;
auto& dual_item_uids = info.second;

auto& dual_node_family = m_dof_mng.family(GraphDoFs::dualNodeFamilyName());
auto* dual_node_family = m_dof_mng.getFamily(GraphDoFs::dualNodeFamilyName());

Check warning on line 271 in arcane/src/arcane/mesh/GraphDoFs.cc

View check run for this annotation

Codecov / codecov/patch

arcane/src/arcane/mesh/GraphDoFs.cc#L271

Added line #L271 was not covered by tests
Int32UniqueArray dual_node_lids(dual_node_uids.size());
if (is_parallel) {
IItemFamily* dual_item_family = _dualItemFamily(dualItemKind(dual_node_kind));
Expand Down Expand Up @@ -307,9 +307,9 @@
++icount;
}

dual_node_family.addDoFs(local_dual_node_uids, local_dual_node_lids);
dual_node_family.addGhostDoFs(ghost_dual_node_uids, ghost_dual_node_lids, ghost_dual_node_owner);
dual_node_family.endUpdate();
dual_node_family->addDoFs(local_dual_node_uids, local_dual_node_lids);
dual_node_family->addGhostDoFs(ghost_dual_node_uids, ghost_dual_node_lids, ghost_dual_node_owner);
dual_node_family->endUpdate();

Check warning on line 312 in arcane/src/arcane/mesh/GraphDoFs.cc

View check run for this annotation

Codecov / codecov/patch

arcane/src/arcane/mesh/GraphDoFs.cc#L310-L312

Added lines #L310 - L312 were not covered by tests

icount = 0;
Integer local_icount = 0;
Expand All @@ -324,8 +324,8 @@
}
}
else {
dual_node_family.addDoFs(dual_node_uids, dual_node_lids);
dual_node_family.endUpdate();
dual_node_family->addDoFs(dual_node_uids, dual_node_lids);
dual_node_family->endUpdate();

Check warning on line 328 in arcane/src/arcane/mesh/GraphDoFs.cc

View check run for this annotation

Codecov / codecov/patch

arcane/src/arcane/mesh/GraphDoFs.cc#L327-L328

Added lines #L327 - L328 were not covered by tests
}

IItemFamily* dual_item_family = _dualItemFamily(dualItemKind(dual_node_kind));
Expand All @@ -346,7 +346,7 @@
Int32UniqueArray dual_item_lids(dual_item_uids.size());
dual_item_family->itemsUniqueIdToLocalId(dual_item_lids, dual_item_uids);

ENUMERATE_DOF (idual_node, dual_node_family.view(dual_node_lids)) {
ENUMERATE_DOF (idual_node, dual_node_family->itemFamily()->view(dual_node_lids)) {

Check warning on line 349 in arcane/src/arcane/mesh/GraphDoFs.cc

View check run for this annotation

Codecov / codecov/patch

arcane/src/arcane/mesh/GraphDoFs.cc#L349

Added line #L349 was not covered by tests
incremental_dual_item_connectivity->notifySourceItemAdded(ItemLocalId(*idual_node));
incremental_dual_item_connectivity->addConnectedItem(ItemLocalId(*idual_node), ItemLocalId(dual_item_lids[idual_node.index()]));
}
Expand All @@ -368,7 +368,7 @@
{
Trace::Setter mci(traceMng(), _className());
//m_dual_node_family.removeItems(dual_node_local_ids);
m_dof_mng.family(GraphDoFs::dualNodeFamilyName()).removeDoFs(dual_node_local_ids);
m_dof_mng.getFamily(GraphDoFs::dualNodeFamilyName())->removeDoFs(dual_node_local_ids);

Check warning on line 371 in arcane/src/arcane/mesh/GraphDoFs.cc

View check run for this annotation

Codecov / codecov/patch

arcane/src/arcane/mesh/GraphDoFs.cc#L371

Added line #L371 was not covered by tests
if (dual_node_local_ids.size() > 0)
m_update_sync_info = false;
}
Expand All @@ -381,7 +381,7 @@
{
Trace::Setter mci(traceMng(), _className());
//m_link_family.removeItems(link_local_ids);
m_dof_mng.family(GraphDoFs::linkFamilyName()).removeDoFs(link_local_ids);
m_dof_mng.getFamily(GraphDoFs::linkFamilyName())->removeDoFs(link_local_ids);

Check warning on line 384 in arcane/src/arcane/mesh/GraphDoFs.cc

View check run for this annotation

Codecov / codecov/patch

arcane/src/arcane/mesh/GraphDoFs.cc#L384

Added line #L384 was not covered by tests
if (link_local_ids.size() > 0)
m_update_sync_info = false;
}
Expand Down Expand Up @@ -695,9 +695,9 @@
if (!m_graph_allocated)
return;

auto& dual_node_family = m_dof_mng.family(GraphDoFs::dualNodeFamilyName());
m_dual_node_to_connectivity_index.resize(&dual_node_family, -1);
ENUMERATE_DOF (idof, dual_node_family.allItems()) {
auto* dual_node_family = m_dof_mng.getFamily(GraphDoFs::dualNodeFamilyName());
m_dual_node_to_connectivity_index.resize(dual_node_family->itemFamily(), -1);
ENUMERATE_DOF (idof, dual_node_family->allItems()) {
for (Integer index = 0; index < m_incremental_connectivities.size(); ++index) {
auto connectivity = m_incremental_connectivities[index];
if (connectivity && (connectivity->maxNbConnectedItem() > 0)) {
Expand Down
16 changes: 8 additions & 8 deletions arcane/src/arcane/mesh/GraphDoFs.h
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
//-----------------------------------------------------------------------------
// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
// See the top-level COPYRIGHT file for details.
// SPDX-License-Identifier: Apache-2.0
//-----------------------------------------------------------------------------
/*---------------------------------------------------------------------------*/
/* GraphDoFs.h (C) 2000-2024 */
/* GraphDoFs.h (C) 2000-2025 */
/* */
/*---------------------------------------------------------------------------*/
#ifndef ARCANE_MESH_GRAPHDOFS_H
Expand Down Expand Up @@ -201,11 +201,11 @@ class ARCANE_MESH_EXPORT GraphDoFs
m_graph_observer[observer_id].reset();
}

IItemFamily* dualNodeFamily() override { return &m_dual_node_family; }
const IItemFamily* dualNodeFamily() const override { return &m_dual_node_family; }
IItemFamily* dualNodeFamily() override { return m_dual_node_family->itemFamily(); }
const IItemFamily* dualNodeFamily() const override { return m_dual_node_family->itemFamily(); }

IItemFamily* linkFamily() override { return &m_link_family; }
const IItemFamily* linkFamily() const override { return &m_link_family; }
IItemFamily* linkFamily() override { return m_link_family->itemFamily(); }
const IItemFamily* linkFamily() const override { return m_link_family->itemFamily(); }

inline Integer nbLink() const override { return linkFamily()->nbItem(); }
inline Integer nbDualNode() const override { return dualNodeFamily()->nbItem(); }
Expand Down Expand Up @@ -284,8 +284,8 @@ class ARCANE_MESH_EXPORT GraphDoFs

DoFManager m_dof_mng;
IItemConnectivityMng* m_connectivity_mng;
DoFFamily& m_dual_node_family;
DoFFamily& m_link_family;
IDoFFamily* m_dual_node_family = nullptr;
IDoFFamily* m_link_family = nullptr;

UniqueArray<Arcane::mesh::IncrementalItemConnectivity*> m_incremental_connectivities;
UniqueArray<Arcane::mesh::IncrementalItemConnectivity*> m_dual2dof_incremental_connectivities;
Expand Down
Loading