Hi I am trying to understand the following operation. void <http://doc.nektar.info/doxygen/latest/namespace_nektar.html#a48c0e3cfaa1c2e0e121380063f5e16f7> Nektar::MultiRegions::ExpList::ExtractElmtToBndPhys ( int i, Array <http://doc.nektar.info/doxygen/latest/singleton_nektar_1_1_array.html>< OneD <http://doc.nektar.info/doxygen/latest/struct_nektar_1_1_one_d.html>, NekDouble <http://doc.nektar.info/doxygen/latest/namespace_nektar.html#af86b4dd9cf77e941ce132ce4b3b2e449>
& elmt, Array <http://doc.nektar.info/doxygen/latest/singleton_nektar_1_1_array.html>< OneD <http://doc.nektar.info/doxygen/latest/struct_nektar_1_1_one_d.html>, NekDouble <http://doc.nektar.info/doxygen/latest/namespace_nektar.html#af86b4dd9cf77e941ce132ce4b3b2e449>
& boundary ) however the documentation doesn't give it a description. I am trying evaluate the flow rate through a boundary and there is something similar in the feature/flowrate branch that uses this operation, but it is unclear to me what it is doing. I believe it is extracting the physical values from a boundary and placing them in the boundary variable but I am not sure what the element array variable is for, can it be an empty array or does it need to be populated with something? I am trying to do something like this. MultiRegions::ExpListSharedPtr BndCondExp; BndCondExp = m_fields[fldid]->GetBndCondExpansions()[bndid]; Array<OneD, Array<OneD, NekDouble> > flux(m_spacedim); //m_fields[0]->GetBndElmtExpansion(n, BndElmtExp, false); // extract the boundary coefficients int i; for(i = 0; i < m_spacedim; i++) { flux[i] = m_fields[i]->GetBndCondExpansions()[boundaryID]->GetCoeffs(); } NekDouble flowrate = 0.0; Array<OneD, Array<OneD, NekDouble> > boundary(m_spacedim); for (i = 0; i < m_spacedim; ++i) { m_fields[i]->ExtractElmtToBndPhys( bndid, flux[i], boundary[i]); } flowrate = BndCondExp->VectorFlux(boundary); m_comm->AllReduce(flowrate, LibUtilities::ReduceSum); flowrate = flowrate / m_RCParams[fldid][bndid]->m_FlowRateArea; -- Kurt Sansom