Skip to content

Releases: nasa/cape

CAPE 2.0.3

04 Apr 21:06
Compare
Choose a tag to compare

New Features

  • CAPE now includes PreShellCmds to go alongise PostShellCmds. This is an
    option in the "RunControl" section that allows the user to run one or
    more BASH (or whatever your shell of choice is) commands prior to running
    the primary CFD solver executables.

  • There is an exciting new feature called WorkerShellCmds in the
    "RunControl" section. It allows you to specify 0 or more BASH commands
    that you run every WorkerSleepTime seconds (default=10.0) while your
    case is running. It has working clean-up after the main executable is
    finished, allowing up to "WorkerTimeout" (default=600.0) seconds
    for the last instance of the worker to complete.

  • These run hooks also have Python function versions, in the form of options
    PrePythonFuncs, PostPythonFuncs, and WorkerPythonFuncs. If these are
    defined as a simple string, CAPE will import any modules implied by the
    function name and then call that function with no arguments. However, users
    may also specify more details for Python functions by defining the function
    in a dict.

    "RunControl": {
        "WorkerPythonFuncs": [
            "mymod.mufunc",
            {
                "name": "clean",
                "type": "runner"
            },
            {
                "name": "mymod.otherfunc",
                "args": [
                    "$runner",
                    "$mach"
                ]
            }
        ]
    }
  • Users of FUN3D and Kestrel can now link the mesh file into folders instead
    of copying it. Set "LinkMesh" to true in the "Mesh" section.

  • cape.pyfun in particular changes how it uses XML or JSON configuration
    files (which is specified in the "Config" > "File" setting). In
    previous versions of CAPE, the face labels or component ID numbers in that
    file had to match your actual grid, which had to match your .mapbc
    file. Now CAPE only uses the text names in the ConfigFile, and it's ok to
    include components that aren't actually present in your grid. If your case
    worked as expected before, it will still work now, but for new cases it
    might be much easier to set up. The (new) recommended process is to use a
    ConfigJSON file and only specify a "Tree" section.

Behavior Changes

  • Binary files storing iterative histories are no longer saved automatically
  • Calculation of job status, especially for FUN3D, is much faster. This
    change should not cause any functional changes for users.
  • Python modules used to define hooks are no longer universally imported
    during Cntl instantiation. Modules are imported dynamically if needed
    to execute a hook. The "Modules" setting is still present in the JSON
    file but has no effect.

Bugs Fixed

  • Fix bug in area-weighted node normal calculation,
    cape.trifile.TriBase.GetNodeNormals().
  • The refine/three capability with FUN3D now works more reliably.

CAPE 2.0.2

22 Feb 06:09
Compare
Choose a tag to compare

New Features

  • New capabilities in nProc, the number of MPI processes to use. Instead of
    requiring a positive integer, there are now four ways to interpret this
    setting:

    • positive integer: "nProc": 128 will continue to work in the
      obvious way that it always has
    • negative integer: "nProc": -2 on a node with 128 cores will mean
      using 126 cores
    • fraction: "nProc": 0.5 will mean using 50% (rounded down), so
      mpiexec -np 64 on a 128-core node
    • blank: "nProc": null (or leaving out entirely) means use all the
      MPI procs available

Behavior Changes

  • Don't write Archive settings to each case folder

Bugs Fixed

All of the tutorials at

https://github.com/nasa-ddalle/

now work properly with this version. Most of the updates were to the tutorials
themselves, but some CAPE bugs were fixed, too.

CAPE 2.0.1

23 Jan 18:41
Compare
Choose a tag to compare

New Features

  • GPU options in RunControl section of options
  • CaseRunner system calls now allow piping lines of a file to STDIN

Behavior Changes

  • Archiving uses tar -u if using the standard .tar archive format
  • Fix -e option to execute commands in case folders, and allow it to run
    regular system commands (not just local scripts)

Bugs Fixed

  • Add several missing options to RunMatrix definitions
  • Fix zone type when reading Cart3D .triq files into Tecplot format
  • Improve handling of different-sized iterative histories in CaseFM
  • Add PyYAML and colorama to install requirements

CAPE 2.0.0

06 Jan 21:20
Compare
Choose a tag to compare

New Features

  • Added a command cape --1to2 to help update Python files written against
    the CAPE 1.2 API to the newer module names mentioned below.

  • The main input file can now be a YAML file in addition to the standard
    JSON. However, there is no "include" statement like the JSONFile()
    directive supported in CAPE JSON files.

  • New command-line interface. The CLI supports the commands that would have
    worked for CAPE 1 but also support a new method that allows the user to be
    more explicit about the primary purpose of the command. For example

        $ pyfun --re "m1.2" --report

    is the same as

        $ pyfun report --re "m1.2"

    The new CLI also implements checks so that misspelled or unrecognized
    options will result in an error instead of just ignoring those options.

  • Created a new executable cape-tec that takes a Tecplot(R) layout file
    as input and exports a PNG from that layout.

  • Rewritten interface to RunControl > Archive. Users may now prescribe
    "only keep the most recent file of this set" of multiple patterns in a
    single line. For example ...

        "Archive": {
            "SearchMethod": "regex",
            "clean": {
                "PreDeleteFiles": {
                    "pyfun[0-9]+_([a-z][a-z0-9_-]+)_timestep[0-9]+\\.plt": 1
                }
            }
        }

    This will delete most Tecplot .plt files but keep the most recent 1
    matches. The new feature is that it will collect all the files that match
    this regular expression but divide them into separate lists for all the
    unique values of the regular expression group (the part inside
    parentheses). So if you have the following files

    • pyfun00_plane-y0_timestep1000.plt
    • pyfun00_tec_boundary_timestep1000.plt
    • pyfun01_plane-y0_timestep2000.plt
    • pyfun01_tec_boundary_timestep2000.plt
    • pyfun02_plane-y0_timestep3000.plt
    • pyfun02_plane-y0_timestep4000.plt
    • pyfun02_tec_boundary_timestep3000.plt
    • pyfun02_tec_boundary_timestep4000.plt

    Then it would delete most of these files but only keep

    • pyfun02_plane-y0_timestep4000.plt
    • pyfun02_tec_boundary_timestep4000.plt

    This would not have been possible in CAPE 1; users would need to provide
    two separate instructions.

  • A RunMatrix key with the type "translation" can now use two named
    points as the "Vector". This means that the direction that a component
    is translated can be affected by prior RunMatrix keys

Behavior Changes

  • Many modules have been renamed, including renaming the case modules to
    the less-confusing name casecntl. In addition, the main cntl module
    has been moved into the cape.cfdx folder.

Bugs Fixed

  • Determination of number of available MPI ranks on Slurm jobs

CAPE 1.2.2

09 Oct 20:34
Compare
Choose a tag to compare

New Features

  • A RunMatrix key with the type "translation" can now use two named
    points as the "Vector". This means that the direction that a component
    is translated can be affected by prior RunMatrix keys

Bugs Fixed

  • Determination of number of available MPI ranks on Slurm jobs

v1.2.1

05 Sep 14:20
Compare
Choose a tag to compare

CAPE 1.2.1

New Features

  • Each case now generates logs, which are helpful for debugging or just
    understanding the sequence of actions CAPE takes. The two log files within
    each case are cape/cape-main.log and cape/cape-verbose.log).
  • PBS/Slurm job names are now longer (32 chars instead of 15), and the length
    is configurable (RunMatrix > MaxJobNameLength).

Behavior Changes

  • PBS/Slurm job IDs are now saved as the full string instead of just the
    job number (often something like 123456.pbspl1)

Bugs Fixed

  • Better support of newer aero.csh script for Cart3D

CAPE 1.2.0

12 Jun 06:29
Compare
Choose a tag to compare

CAPE 1.2 is a smaller change than CAPE 1.1 and focuses on improving the quality
of CAPE's underlying code. Many modules have been de-linted, and some of the
older modules have been rewritten. Test coverage is also significantly
improved.

New Features

Behavior Changes

  • The iterative history modules, CaseFM and CaseResid, are now
    subclasses of DataKit. Among other things, this means that what used to
    be fm.CN is now fm["CN"]. This is a major improvement to making
    those classes extensible for histories of things other than forces &
    moments.

  • The cape.filecntl.filecntl module, which is critical to how CAPE
    reads and modifies CFD input files, was rewritten and tested to 100%
    coverage.

  • Rename some RunControl options to more understandable

    • ResubmitResubmitNextPhase
    • Continue ➝ opposite of ResubmitSamePhase

    (See https://nasa.github.io/cape-doc/1.2/common/json/RunControl.html)

CAPE 1.1.1.post2

26 Jan 07:21
Compare
Choose a tag to compare

Release 1.1.1.post2

Bugs Fixed

  • Add (back) default "MuFormat" for coefficient table subfigures, which
    was causing tables full of the text "None" in some cases
  • Fix nmlfile when saving a long string in an existing array
  • Fix default formatting of user and tag run matrix keys in
    conditions table subfigures

CAPE 1.1.1.post1

25 Jan 18:29
Compare
Choose a tag to compare

Release 1.1.1.post1

That's a weird-looking version number...

This post-release fixes some issues that the testing suite did not catch
regarding the previous CAPE 1.1 releases.

Bugs Fixed

  • The TriRotate and TriTranslate run matrix keys now work properly
    again; they were not getting noticed as the correct key type in previous
    1.1 releases.
  • Using a list inside a @map dict now works with phase numbers in
    cape.optdict
  • Fixes to flow initializations for FUN3D for new nmlfile Fortran
    namelist manipulation module
  • The cape.nmlfile namelist module now supports N-dimensional arrays,
    whereas the set_opt() method didn't support this before.

CAPE 1.2.0-alpha1

19 Jan 23:31
Compare
Choose a tag to compare
CAPE 1.2.0-alpha1 Pre-release
Pre-release

Release 1.2.0 (preliminary)

CAPE 1.2 is a smaller change than CAPE 1.1 and focuses on improving the quality
of CAPE's underlying code. Many modules have been de-linted, and some of the
older modules have been rewritten. Test coverage is also signiticantly
improved.

Behavior Changes

  • The iterative history modules, CaseFM and CaseResid, are now
    subclasses of DataKit. Among other things, this means that what used to
    be fm.CN is now fm["CN"]. This is a major improvement to making
    those classes extensible for histories of things other than forces &
    moments.
  • The cape.filecntl.filecntl module, which is critical to how CAPE
    reads and modifies CFD input files, was rewritten and tested to 100%
    coverage.

Bugs Fixed

  • The documentation now builds without warnings.