Skip to content
Snippets Groups Projects

Feature parallel

Merged Mattijs Janssens requested to merge feature-parallel into develop

All low-level parallel bits:

  • support for surfaceFields
  • low-level distributed Field mapping
  • complete rewrite of redistributePar

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Andrew Heather Status changed to merged

    Status changed to merged

  • Andrew Heather mentioned in commit 96728846

    mentioned in commit 96728846

  • Mark OLESEN
    Mark OLESEN @mark started a thread on commit 6e28b7fa
    Last updated by Mattijs Janssens
    264 if (hasLevel0Edge)
    265 {
    266 // Get master length
    267 scalar masterLen = level0EdgePtr_().value();
    268 Pstream::scatter(masterLen);
    269 if (!level0EdgePtr_.valid())
    270 {
    271 IOobject rio(io);
    272 rio.rename("level0Edge");
    273 rio.readOpt() = IOobject::NO_READ;
    274 level0EdgePtr_.reset
    275 (
    276 new uniformDimensionedScalarField
    277 (
    278 rio,
    279 dimensionedScalar("zero", dimLength, masterLen)
    • Maintainer

      @Mattijs

      Just stumbled over this. Unfortunately with UniformDimensioned the name gets taken from the dimensioned type instead of the object.

      Might need to have this instead:

      new uniformDimensionedScalarField
      (
          io,
          dimensionedScalar(rio.name(), dimLength, masterLen)
      )
    • Maintainer

      With GeometricField only the dimensions and value of the dimensioned type are relevant (which is a good thing).

    • Author Maintainer

      Agree:

      dimensionedScalar(rio.name(), dimLength, masterLen)
    • Maintainer

      Another option would be to make it all consistent with other DimensionedFields by favouring the regIOObject name. Eg, in UniformDimensionedField itself

      virtual const word& name() const
      {
          return regIOObject::name();
      }
      
      virtual void rename(const word& newName)
      {
          regIOObject::rename();
          dimensioned<Type>::name() = regIOObject::name();
      }

      And in the constructor:

      template<class Type>
      Foam::UniformDimensionedField<Type>::UniformDimensionedField
      (
          const IOobject& io,
          const dimensioned<Type>& dt
      )
      :
          regIOobject(io),
          dimensioned<Type>(io.name(), dt.dimensions(), dt.value())
      {
          // Read value
          readHeaderOk(IOstream::BINARY, typeName);
      }
      
      
      template<class Type>
      Foam::UniformDimensionedField<Type>::UniformDimensionedField
      (
          const UniformDimensionedField<Type>& rdt
      )
      :
          regIOobject(rdt),
          dimensioned<Type>(rdt)
      {
          dimensioned<Type>::name() = rdt.name();  // safety
      }
    • Author Maintainer

      No, quite happy with it being a wrapper around a dimensioned type.

    • Please register or sign in to reply
Please register or sign in to reply