Giter Site home page Giter Site logo

equinor / aps-facies Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 14.24 MB

Adaptive PlurGaussian Simulation plugin for facies modelling in RMS

License: Apache License 2.0

Dockerfile 0.20% Shell 0.62% Makefile 0.70% Python 70.88% JavaScript 0.26% HTML 0.02% Vue 10.65% TypeScript 16.58% SCSS 0.10%

aps-facies's Introduction

License

Adaptive Pluri-Gaussian Simulation

The current implementation of Adaptive PluriGaussian Simulation of facies in reservoir modeling is based on code developed by Equinor. It is implemented as a plugin module to RMS 3D reservoir modeling software from Aspentech and can only be used together with this software. It is based on the method published by B. Sebacher et.al. (Journal of Petroleum Science and Engineering, Vol. 158, September 2017, p. 494-508) and is extended to handle trends in Gaussian Random Fields and multiple overlay facies. The implementation is adapted also to the FMU workflow and use of ERT (Ensemble Reservoir Tool) system for orchestration of reservoir simulations and assisted history matching.

Getting started

Pre-built plugins are available in releases. If you want to build from source, some prerequisites are necessary;

The repo is also set up to use asdf to manage the necessary tools

asdf install

Then, execute

make build-gui

This should create a new .plugin file at the root of the repository.

Update truncation rule templates

Change examples/truncation_settings.dat as desired.

Then, run make generate-truncation-rules to update. The GUI will automatically get these rules, when it is built.

Releasing a new version

  1. Create a new branch (e.g. git switch -c release/v<new version>)

  2. Update the "version" field in gui/package.json

  3. Add a new entry in gui/public/CHANGELOG.md for this particular version

    • To get a list of all commits since last, execute

      last_version="$(git describe --abbrev=0 --tags)"
      git log "$last_version"..HEAD --pretty=format:'* %s' > commits.log
    • From these, copy relevant (user-facing) changes into gui/public/CHANGELOG.md under appropriate headings

      ## <version>
      <Optionally some description or extra notes that the user should be aware of>
      
      ### What's new
      * <list of relevant new features, or breaking changes>
      
      ### Deprecations
      * <list of removals of user facing things>
      * <dropping support of RMS versions should go here, and (probably) in the general description>
      
      ### Fixes
      * <list of fixes that are included in this release>
      
      ### Performance
      * <list of changes that are improve the performance of the plugin>
      
      ### Technical debt
      * <list of changes that "pays down" techincal dept>
      
      ### Restructure
      * <list of things that have been moved, refactored, and otherwise changed / improved without affecting the usability or features>
      
      ### Miscellaneous
      * <list of various changes that don't fit neatly anywhere else>
      * <this can include updates to libraries that are used>    
  4. Add the changes in CHANGELOG.md and gui/package.json to the commit and make new commit The commit message can be something like "feat: New release ($(make print-APS_VERSION))"

  5. Tag the new commit (preferably also sign it by using -s)

    git tag -a -s -m '<A small summary of the changes in this release>' "v$(make print-APS_VERSION)"
  6. Push the commit and tag (git push origin "$(git branch --show-current)" and git push --tags)

    This will trigger the workflow in .github/workflows/release.yml, which will make a new release in GitHub, and build a production version of the plugin

Footnotes

  1. Version 3.8 or greater

  2. Version 20.11 or greater

aps-facies's People

Contributors

dependabot[bot] avatar ingvald avatar oddvarlia avatar olia63 avatar oyvves avatar sebastianvitterso avatar sindre-nistad avatar snyk-bot avatar

Stargazers

 avatar

Watchers

 avatar

aps-facies's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.