Skip to content
Snippets Groups Projects
Commit b3e9cf6a authored by Boris Martin's avatar Boris Martin
Browse files

Dumping some data in case of error

parent 4143ebf9
Branches
Tags
No related merge requests found
Pipeline #12592 failed
...@@ -389,6 +389,7 @@ namespace gmshfem::field ...@@ -389,6 +389,7 @@ namespace gmshfem::field
return dof->numType() % GMSHFEM_DOF_FIELD_OFFSET == entry.type % GMSHFEM_DOF_FIELD_OFFSET && dof->entity() == entry.entity; return dof->numType() % GMSHFEM_DOF_FIELD_OFFSET == entry.type % GMSHFEM_DOF_FIELD_OFFSET && dof->entity() == entry.entity;
}); });
bool found = (it != _toSend.end()); bool found = (it != _toSend.end());
dumpOwnedKeys();
throw common::Exception("[" + std::to_string(rank) + "] Duplicate dof in allSharedDofs. Type: " + std::to_string(entry.type) + throw common::Exception("[" + std::to_string(rank) + "] Duplicate dof in allSharedDofs. Type: " + std::to_string(entry.type) +
" Entity: " + std::to_string(entry.entity) + " Found in my owned dofs: " + std::to_string(found)); " Entity: " + std::to_string(entry.entity) + " Found in my owned dofs: " + std::to_string(found));
} }
...@@ -418,6 +419,16 @@ namespace gmshfem::field ...@@ -418,6 +419,16 @@ namespace gmshfem::field
#endif #endif
} }
template< class T_Scalar, field::Form T_Form >
void DistributedField< T_Scalar, T_Form >::dumpOwnedKeys()
{
auto rank = gmshfem::common::GmshFem::getMPIRank();
gmshfem::common::CSVio ownedDofs("owned_" + std::to_string(rank));
for(auto dof : _ownedDofs) {
ownedDofs << dof->numType() << dof->entity() << csv::endl;
}
}
template< class T_Scalar, field::Form T_Form > template< class T_Scalar, field::Form T_Form >
DistributedField< T_Scalar, T_Form >::DistributedField() : DistributedField< T_Scalar, T_Form >::DistributedField() :
Field< T_Scalar, T_Form >() Field< T_Scalar, T_Form >()
... ...
......
...@@ -62,6 +62,7 @@ namespace gmshfem::field ...@@ -62,6 +62,7 @@ namespace gmshfem::field
virtual std::unordered_set<dofs::Dof*> getAllOwnedDofs() override; virtual std::unordered_set<dofs::Dof*> getAllOwnedDofs() override;
virtual std::unordered_set<dofs::Dof*> getNonOwnedDofs() override; virtual std::unordered_set<dofs::Dof*> getNonOwnedDofs() override;
virtual void syncGlobalDofs(std::vector<unsigned long long>& localToGlobal, std::vector<unsigned long long>& readIDs) override; virtual void syncGlobalDofs(std::vector<unsigned long long>& localToGlobal, std::vector<unsigned long long>& readIDs) override;
void dumpOwnedKeys();
public: public:
DistributedField(); DistributedField();
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment