Index: ../trunk-jpl/src/c/Container/Elements.cpp =================================================================== --- ../trunk-jpl/src/c/Container/Elements.cpp (revision 13886) +++ ../trunk-jpl/src/c/Container/Elements.cpp (revision 13887) @@ -293,6 +293,30 @@ delete patch; } /*}}}*/ +/*FUNCTION Elements::MaxNumNodes{{{*/ +int Elements::MaxNumNodes(void){ + + int max=0; + int allmax; + int numnodes=0; + + /*Now go through all elements, and get how many nodes they own, unless they are clone nodes: */ + for(int i=0;iSize();i++){ + + Element* element=dynamic_cast(this->GetObjectByOffset(i)); + numnodes=element->GetNumberOfNodes(); + if(numnodes>max)max=numnodes; + } + + /*Grab max of all cpus: */ + #ifdef _HAVE_MPI_ + MPI_Allreduce((void*)&max,(void*)&allmax,1,MPI_INT,MPI_MAX,IssmComm::GetComm()); + max=allmax; + #endif + + return max; +} +/*}}}*/ /*FUNCTION Elements::NumberOfElements{{{*/ int Elements::NumberOfElements(void){ Index: ../trunk-jpl/src/c/Container/Elements.h =================================================================== --- ../trunk-jpl/src/c/Container/Elements.h (revision 13886) +++ ../trunk-jpl/src/c/Container/Elements.h (revision 13887) @@ -26,6 +26,7 @@ /*numerics*/ void Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters); void DeleteResults(void); + int MaxNumNodes(void); void ProcessResultsUnits(void); void SetCurrentConfiguration(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters); void ToResults(Results* results,Parameters* parameters);