Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
e62b275
Initial implementations of deepCopyToConduit, with tests.
gunney1 Feb 28, 2025
3b9339a
Move ConduitMemCallbacks to core so the rest of Axom can use it.
gunney1 Mar 5, 2025
fc7424d
Improve ConduitMemCallbacks interface.
gunney1 Mar 6, 2025
130d749
Temporary fix to have non-Umpire allocations co-exist with Umpire.
gunney1 Mar 6, 2025
9a0a207
Autoformat.
gunney1 Mar 6, 2025
2787f92
Add some missing allocator id cases in ConduitMemCallbacks.
gunney1 Mar 6, 2025
eb472b2
Add and remove #includes.
gunney1 Mar 7, 2025
91decc8
Add test for inter-allocator Group-to-Group copy.
gunney1 Mar 7, 2025
c8f1249
Fix bugs in deep copy to another allocator id.
gunney1 Mar 11, 2025
11ad96c
Make scalar copy-to-conduit test use scalar instead of array of 1.
gunney1 Mar 11, 2025
2e9f945
Implement Group::deepCopyGroupToSelf.
gunney1 Mar 11, 2025
07f8adb
Implement transfer_allocator to move sidre subtrees to a new allocator.
gunney1 Mar 11, 2025
ff3b890
Implement Group::transfer_allocator and its various required changes.
gunney1 Mar 12, 2025
0e57515
Unfinished attempt to work with transfering some sidre nodes to host.
gunney1 Mar 18, 2025
c20b363
ConduitMemCallbacks supports looking up converter by Conduit alloator.
gunney1 Mar 25, 2025
5654a85
Allow external data to be reallocated to internal and
gunney1 Mar 26, 2025
119a308
Use reallocateTo to reallocate View data to where we need it.
gunney1 Mar 26, 2025
069c51f
Remove debug code.
gunney1 Mar 26, 2025
896e812
Rename ConduitMemCallbacks to ConduitMemory.
gunney1 Mar 27, 2025
a124342
Fix errors in non-Umpire build.
gunney1 Mar 27, 2025
41c15d7
Autoformat.
gunney1 Mar 28, 2025
46bb8a7
Merge remote-tracking branch 'gh/develop' into feature/gunney/copy-si…
gunney1 Apr 1, 2025
c468b8d
Implement a hierarchy printer that doesn't crash for device data.
gunney1 Apr 1, 2025
19b3868
Fix doxygen comments.
gunney1 Apr 15, 2025
4b74983
Remove redundant reallocateTo methods.
gunney1 Apr 17, 2025
4ef35d7
Manually specify host allocator for some hierarchy data.
gunney1 Apr 18, 2025
d1da881
Merge remote-tracking branch 'gh/develop' into feature/gunney/copy-si…
gunney1 Apr 18, 2025
e6692c1
Minor typedef change.
gunney1 Apr 21, 2025
0a8bc96
Prepare for conduit-0.9.4, std::function is supported for allocation.
gunney1 Apr 21, 2025
8f3dfa5
Fix non-Umpire build.
gunney1 Apr 21, 2025
fb9a269
Autoformat.
gunney1 Apr 21, 2025
1bc31d9
Merge remote-tracking branch 'gh/develop' into feature/gunney/copy-si…
gunney1 Apr 22, 2025
3f2a0ce
Remove some debug code and comments.
gunney1 Apr 22, 2025
d677260
Clean up development crud.
gunney1 Apr 22, 2025
7be4e64
Remove more development crud.
gunney1 Apr 22, 2025
733a98e
Autoformat.
gunney1 Apr 22, 2025
09232b5
Loosen the timer check tolerance.
gunney1 Apr 22, 2025
9b272a1
Fix bug in runtime check on supported memory space.
gunney1 Apr 22, 2025
2a1e61d
Merge remote-tracking branch 'gh/develop' into feature/gunney/copy-si…
gunney1 Apr 23, 2025
e696eb0
Clean-ups caught by code reviewers.
gunney1 Apr 24, 2025
52853ff
Remove unused code.
gunney1 Apr 24, 2025
310d6b9
Merge remote-tracking branch 'gh/develop' into feature/gunney/copy-si…
gunney1 Apr 24, 2025
f93746f
Remove isDeviceData and make isHostAccessible private.
gunney1 Apr 24, 2025
8c54178
Minor comment and variable name change.
gunney1 Jun 6, 2025
afc55fe
Merge remote-tracking branch 'gh/develop' into feature/gunney/copy-si…
gunney1 Jun 9, 2025
734eb03
Remove obsolete TODO comment.
gunney1 Jun 30, 2025
cb67b72
Merge remote-tracking branch 'gh/develop' into feature/gunney/copy-si…
gunney1 Jun 30, 2025
a2eae59
Add instance for INVALID_ALLOCATOR_ID and move stuff out of header file.
gunney1 Jul 29, 2025
7b02567
Ust static_cast. Add a small comment.
gunney1 Jul 29, 2025
6c7c105
Clarify the meaning of a numeric value.
gunney1 Jul 29, 2025
5c4c60c
Fix typo.
gunney1 Jul 29, 2025
b2dd61c
Remove obsolete data.
gunney1 Jul 30, 2025
7b8601e
Move ConduitMemory to sidre.
gunney1 Jul 30, 2025
1b4a2c9
Rewrite a couple of loops using iterator interface.
gunney1 Jul 30, 2025
6d5912a
Minor comment changes and clarifications.
gunney1 Jul 30, 2025
bb78a7d
Differentiate View types by array vs tuple semantics.
gunney1 Jul 30, 2025
49923c6
Remove manual specification of allocators for strings and scalars.
gunney1 Jul 31, 2025
7784136
Remove reallocateTo methods.
gunney1 Jul 31, 2025
cf0a058
Merge remote-tracking branch 'gh/develop' into feature/gunney/copy-si…
gunney1 Jul 31, 2025
369ef0b
Remove DataSemantic, which is not needed after all.
gunney1 Jul 31, 2025
cbe43aa
Backport changes from shaping refactor branch.
gunney1 Aug 1, 2025
174c2ac
Remove more vestiges of manually specifying allocator for Views.
gunney1 Aug 1, 2025
32e4fd8
Remove test for obsolete reallocateTo function.
gunney1 Aug 1, 2025
634cbaf
Fix memory leak in test code.
gunney1 Aug 1, 2025
c90f42e
Implement code review comments.
gunney1 Aug 5, 2025
932a15b
Add asterisks to comment blocks.
gunney1 Aug 6, 2025
08532ce
Autoformat.
gunney1 Aug 6, 2025
80626bc
Merge remote-tracking branch 'gh/develop' into feature/gunney/copy-si…
gunney1 Aug 25, 2025
cacc810
Merge branch 'develop' into feature/gunney/copy-sidre-to-conduit
gunney1 Aug 25, 2025
9c29357
Update View and Group interfaces for nanobind.
gunney1 Aug 25, 2025
431152a
Update some sidre function calls for nanobind.
gunney1 Aug 27, 2025
8b72c85
Fix a build error caused by Array.hpp included View.hpp.
gunney1 Aug 27, 2025
11ecf25
Merge remote-tracking branch 'gh/feature/gunney/copy-sidre-to-conduit…
gunney1 Aug 27, 2025
bf4c46d
Comment and documentation changes.
gunney1 Aug 29, 2025
8c3a25d
Merge branch 'develop' into feature/gunney/copy-sidre-to-conduit
rhornung67 Sep 8, 2025
37efbbf
Merge remote-tracking branch 'gh/develop' into feature/gunney/copy-si…
gunney1 Sep 17, 2025
afcad44
Fix typo.
gunney1 Sep 19, 2025
192a36c
Remove unrelated changes (Cone primal geometry).
gunney1 Sep 19, 2025
1335909
Remove unrelated changes (shaping stuff).
gunney1 Sep 19, 2025
9832eb7
Fix a preconditon check for getScalar.
gunney1 Sep 21, 2025
5b3f823
Update test code's version of View's private enum.
gunney1 Sep 21, 2025
c56fca5
Update View docs for tuple concept.
gunney1 Sep 21, 2025
0515b19
Remove a partial comment that had been copied many times.
gunney1 Sep 21, 2025
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
2 changes: 1 addition & 1 deletion src/axom/core/execution/internal/omp_exec.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ struct execution_space<OMP_EXEC>
}
static bool usesMemorySpace(axom::MemorySpace m) noexcept
{
return m == MemorySpace::Dynamic
return m == MemorySpace::Dynamic || m == MemorySpace::Malloc
#ifdef AXOM_USE_UMPIRE
|| m == MemorySpace::Host || m == MemorySpace::Unified
#endif
Expand Down
3 changes: 2 additions & 1 deletion src/axom/quest/IntersectionShaper.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2799,7 +2799,8 @@ class IntersectionShaper : public Shaper
// m_bpGrp->createNativeLayout(m_bpNodeInt);

const conduit::Node& topoNode = m_bpNodeInt.fetch_existing("topologies").fetch_existing(m_bpTopo);
const std::string coordsetName = topoNode.fetch_existing("coordset").as_string();
const conduit::Node& topoCoordsetNode = topoNode.fetch_existing("coordset");
const std::string coordsetName = topoCoordsetNode.as_string();

// Assume unstructured and hexahedral
SLIC_ERROR_IF(topoNode["type"].as_string() != "unstructured",
Expand Down
15 changes: 1 addition & 14 deletions src/axom/quest/Shaper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,6 @@ Shaper::Shaper(RuntimePolicy execPolicy,
// This may take too long if there are repeated construction.
m_bpGrp->createNativeLayout(m_bpNodeInt);

#if defined(AXOM_DEBUG)
std::string whyBad;
bool goodMesh = verifyInputMesh(whyBad);
SLIC_ASSERT_MSG(goodMesh, whyBad);
#endif

m_cellCount = conduit::blueprint::mesh::topology::length(
m_bpNodeInt.fetch_existing("topologies").fetch_existing(m_bpTopo));

Expand Down Expand Up @@ -113,8 +107,7 @@ Shaper::Shaper(RuntimePolicy execPolicy,
{
AXOM_ANNOTATE_SCOPE("Shaper::Shaper_Node");
m_bpGrp = m_dataStore.getRoot()->createGroup("internalGrp");
m_bpGrp->setDefaultAllocator(m_allocatorId);

m_bpGrp->setDefaultArrayAllocator(m_allocatorId);
m_bpGrp->importConduitTreeExternal(bpNode);

// We want unstructured topo but can accomodate structured.
Expand Down Expand Up @@ -146,12 +139,6 @@ Shaper::Shaper(RuntimePolicy execPolicy,

m_bpGrp->createNativeLayout(m_bpNodeInt);

#if defined(AXOM_DEBUG)
std::string whyBad;
bool goodMesh = verifyInputMesh(whyBad);
SLIC_ASSERT_MSG(goodMesh, whyBad);
#endif

m_cellCount = conduit::blueprint::mesh::topology::length(
bpNode.fetch_existing("topologies").fetch_existing(m_bpTopo));

Expand Down
34 changes: 20 additions & 14 deletions src/axom/quest/examples/quest_shape_in_memory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -442,10 +442,17 @@ void printMfemMeshInfo(mfem::Mesh* mesh, const std::string& prefixMessage = "")
}
#endif

/************************************************************
* Shared variables.
************************************************************/

const std::string topoName = "mesh";
const std::string coordsetName = "coords";
int cellCount = -1;

const auto hostAllocId = axom::execution_space<axom::SEQ_EXEC>::allocatorID();
int arrayAllocId = axom::INVALID_ALLOCATOR_ID;

// Computational mesh in different forms, initialized in main
#if defined(AXOM_USE_MFEM)
std::shared_ptr<sidre::MFEMSidreDataCollection> shapingDC;
Expand Down Expand Up @@ -498,15 +505,13 @@ axom::sidre::Group* createBoxMesh(axom::sidre::Group* meshGrp)
break;
}

#if defined(AXOM_DEBUG)
conduit::Node meshNode, info;
meshGrp->createNativeLayout(meshNode);
SLIC_ASSERT(conduit::blueprint::mesh::verify(meshNode, info));
#endif

// State group is optional to blueprint, and we don't use it, but mint checks for it.
meshGrp->createGroup("state");

auto hostAllocForScalarAndStringViews = [](const axom::sidre::View& v) {
return (v.isScalar() || v.isString()) ? hostAllocId : axom::INVALID_ALLOCATOR_ID;
};

return meshGrp;
}

Expand Down Expand Up @@ -1111,9 +1116,9 @@ axom::sidre::View* getElementVolumes(
constexpr int NUM_COMPS_PER_VERT = 2;

/*
Get vertex coordinates. We use UnstructuredMesh for this,
so get it on host first then transfer to device if needed.
*/
Get vertex coordinates. We use UnstructuredMesh for this,
so get it on host first then transfer to device if needed.
*/
auto* connData = meshGrp->getGroup("topologies")
->getGroup(topoName)
->getGroup("elements")
Expand Down Expand Up @@ -1539,7 +1544,7 @@ int main(int argc, char** argv)

axom::utilities::raii::AnnotationsWrapper annotations_raii_wrapper(params.annotationMode);

const int allocatorId = axom::policyToDefaultAllocatorID(params.policy);
const int arrayAllocId = axom::policyToDefaultAllocatorID(params.policy);

AXOM_ANNOTATE_SCOPE("quest shaping example");
AXOM_ANNOTATE_BEGIN("init");
Expand Down Expand Up @@ -1669,10 +1674,11 @@ int main(int argc, char** argv)
"-DAXOM_ENABLE_MFEM_SIDRE_DATACOLLECTION.");
#endif

conduit::Node* topoCoordsetNode = nullptr;
if(params.useBlueprintSidre() || params.useBlueprintConduit())
{
compMeshGrp = ds.getRoot()->createGroup("compMesh");
compMeshGrp->setDefaultAllocator(allocatorId);
compMeshGrp->setDefaultArrayAllocator(arrayAllocId);

createBoxMesh(compMeshGrp);

Expand Down Expand Up @@ -1721,18 +1727,18 @@ int main(int argc, char** argv)
if(params.useBlueprintSidre())
{
shaper =
std::make_shared<quest::IntersectionShaper>(params.policy, allocatorId, shapeSet, compMeshGrp);
std::make_shared<quest::IntersectionShaper>(params.policy, arrayAllocId, shapeSet, compMeshGrp);
}
if(params.useBlueprintConduit())
{
shaper =
std::make_shared<quest::IntersectionShaper>(params.policy, allocatorId, shapeSet, *compMeshNode);
std::make_shared<quest::IntersectionShaper>(params.policy, arrayAllocId, shapeSet, *compMeshNode);
}
#if defined(AXOM_USE_MFEM)
if(params.useMfem())
{
shaper = std::make_shared<quest::IntersectionShaper>(params.policy,
allocatorId,
arrayAllocId,
shapeSet,
shapingDC.get());
}
Expand Down
8 changes: 0 additions & 8 deletions src/axom/quest/util/mesh_helpers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -530,14 +530,6 @@ void convert_blueprint_structured_explicit_to_unstructured_impl_2d(axom::sidre::
meshGrp->createGroup("fields");
}

#if defined(AXOM_DEBUG) && defined(AXOM_USE_CONDUIT)
AXOM_ANNOTATE_BEGIN("validate_post");
conduit::Node info;
bool isValid = verifyBlueprintMesh(meshGrp, info);
SLIC_ASSERT_MSG(isValid, "Internal error: Generated mesh is invalid.");
AXOM_ANNOTATE_END("validate_post");
#endif

return;
}

Expand Down
Loading
Loading