Skip to content
Snippets Groups Projects
Commit 8d30d93d authored by Martin Nolte's avatar Martin Nolte
Browse files

Merge branch 'uggrid-dont-use-size-in-scatter' into 'master'

Scatter method shall not call dataHandle.size

See merge request !225

(cherry picked from commit 56b86683)

ab930ba4 Scatter method shall not call dataHandle.size
parent 53e8929e
No related branches found
No related tags found
1 merge request!226Merge branch 'uggrid-dont-use-size-in-scatter' into 'master'
Pipeline #
......@@ -96,20 +96,21 @@ namespace Dune {
// the macro index and scatter it
for (const auto entity : entities(gridView, Codim<codim>()))
{
int numberOfParams = dataHandle.size(entity);
// get data from UG message buffer and write to DUNE message buffer
auto ugEntity = gridView.grid().getRealImplementation(entity).getTarget();
typedef typename DataHandle::DataType DataType;
auto numberOfParams = ugEntity->message_buffer_size() / sizeof(DataType);
if (!numberOfParams)
continue;
// get data from UG message buffer and write to DUNE message buffer
auto ugEntity = gridView.grid().getRealImplementation(entity).getTarget();
auto buffer = ugEntity->message_buffer();
assert(buffer);
LBMessageBuffer lbMessageBuffer;
for(int paramIdx = 0; paramIdx < numberOfParams; paramIdx++)
for (std::size_t paramIdx = 0; paramIdx < numberOfParams; paramIdx++)
{
typedef typename DataHandle::DataType DataType;
DataType *dataPointer = (DataType*)(buffer + paramIdx*sizeof(DataType));
lbMessageBuffer.write(*dataPointer);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment