Skip to content
Snippets Groups Projects
  1. Dec 20, 2021
  2. Dec 16, 2021
  3. Dec 15, 2021
  4. Dec 14, 2021
    • sergio's avatar
      ee36fe8c
    • Andrew Heather's avatar
      ENH: Added new propellerInfo function object · 734a3143
      Andrew Heather authored and Andrew Heather's avatar Andrew Heather committed
      Calculates propeller performance and wake field properties.
      
      Controlled by executeControl:
      - Propeller performance
        - Thrust coefficient, Kt
        - Torque coefficient, 10*Kq
        - Advance coefficient, J
        - Open water efficiency, etaO
        - Written to postProcessing/<name>/<time>/propellerPerformance.dat
      
      Controlled by writeControl:
      - Wake field text file
        - Wake: 1 - UzMean/URef
        - Velocity in cylindrical coordinates at xyz locations
        - Written to postProcessing/<name>/<time>/wake.dat
      - Axial wake field text file
        - 1 - Uz/URef at r/R and angle
        - Written to postProcessing/<name>/<time>/axialWake.dat
      - Velocity surface
        - Written to postProcessing/<name>/surfaces/time>/disk.<fileType>
      
      Usage
      
          Example of function object specification:
          \verbatim
          propellerInfo1
          {
              type            propellerInfo;
              libs            (forces);
              writeControl    writeTime;
      
              patches         ("propeller.*");
      
              URef            5; // Functi...
      734a3143
  5. Dec 13, 2021
  6. Dec 10, 2021
    • Mark OLESEN's avatar
      ENH: add exprField function object · 8d4ad043
      Mark OLESEN authored and Andrew Heather's avatar Andrew Heather committed
      - provides a simple means of defining/modifying fields. For example,
      
        ```
        <name1>
        {
            type    exprField;
            libs    (fieldFunctionObjects);
            field   pTotal;
      
            expression  "p + 0.5*(rho*magSqr(U))";
            dimensions  [ Pa ];
        }
        ```
        It is is also possible to modify an existing field.
        For example, to modify the previous one.
        ```
        <name2>
        {
            type    exprField;
            libs    (fieldFunctionObjects);
            field   pTotal;
            action  modify;
      
            // Static pressure only in these regions
            fieldMask
            #{
                (mag(pos()) < 0.05) && (pos().y() > 0)
             || cellZone(inlet)
            #};
            expression  "p";
        }
        ```
      
        To use as a simple post-process calculator, simply avoid storing the
        result and only generate on write:
        ```
        <name2>
        {
            store            false;
            executionControl none;
            writeControl     writeTime;
            ...
        }
        ```
      8d4ad043
    • Mark OLESEN's avatar
      STYLE: qualify expression debug flags · a6cbfcb9
      Mark OLESEN authored and Andrew Heather's avatar Andrew Heather committed
      - for debug/tracing handle the following keywords:
      
         * debug.driver   (was "debugBaseDriver")
         * debug.scanner  (was "debugScanner")
         * debug.parser   (was "debugParser")
      a6cbfcb9
    • Mark OLESEN's avatar
      ENH: code reduction, improvements for expressions · 510ffb33
      Mark OLESEN authored and Andrew Heather's avatar Andrew Heather committed
      - literal lookups only for expression strings
      
      - code reduction for setExprFields.
      
      - changed keyword "condition" to "fieldMask" (option -field-mask).
        This is a better description of its purpose and avoids possible
        naming ambiguities with functionObject triggers (for example)
        if we apply similar syntax elsewhere.
      
      BUG: erroneous check in volumeExpr::parseDriver::isResultType()
      
      - not triggered since this method is not used anywhere
        (may remove in future version)
      510ffb33
  7. Dec 09, 2021