Giter Site home page Giter Site logo

huangjiameng / opencaeporo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from faspdevteam/opencaeporo

0.0 0.0 0.0 362.95 MB

Open source simulator for porous media flow

Home Page: https://faspdevteam.github.io/OpenCAEPoro/

License: GNU Lesser General Public License v3.0

Shell 0.62% C++ 94.83% CMake 4.15% Batchfile 0.39%

opencaeporo's Introduction

OpenCAEPoro

Build and publish doc Github pages

Build Test
Linux GNU Build Linux GNU Test
Linux Intel Build Linux Intel Test
Win64 Intel Build Win64 Intel Test
Mac64 Intel Build Mac64 Intel Test

OpenCAEPoro or OCP is part of the OpenCAEPlus project. OCP, written in C++, focuses on simulating multicomponent multiphase flows in porous media. For more information, please refer to OCP repository.

Get Started

For user manual and API's (class references from Doxygen), see website.

For full documentation generated by Doxygen, see here.

Install

There is a top level cmake configuration file to build the OpenCAEPoro lib and the associate test program suite. You can use a cmake-style approach to compile the package; see the official webpage on how to use cmake for your own operating system and tool chain.

Before building OpenCAEPoro, you need to make sure that BLAS, LAPACK, and FASP are available. BLAS and LAPACK are ready on most systems. The FASP package (only the open-source part faspsolver is required) can be downloaded from its GitHub repository. More solver options are provided in fasp4blkoil.

The typical command for compiling OpenCAEPoro is:

Step 1. Config the environment for building with cmake:

  >>> mkdir Build; cd Build; cmake ..

Step 2a. To build the library as well as examples without installing it, run:

  >>> make

Step 2b. To make the library and then install it, run:

  >>> make install

Standard uninstall and clean targets are also provided in the generated Makefile. You may safely remove the Build directory as well.

Note: You can also use the provided scripts to build the whole project:

  >>> chmod 755 cli
  >>> ./cli build -c intel -t all -b Debug # Change the argument to Release for release build

Structure

The directory structure of OpenCAEPoro is designed as follows:

  • data/: Output files for comparison purposes
  • doc/: Documentation website
  • examples/: Input files for test examples
  • external/: external dependencies
  • include/: Header files
  • src/: Source files
  • stash/: Files that are no longer needed, keep for future references
  • main/: Main source code for executables
  • CMakeLists.txt: Main cmake script
  • CMakePresets.json: Preset setting for cmake
  • CONTRIBUTE.md: Guidance for open source contributors
  • LICENSE: License agreement
  • README.md: This document
  • .clang-format: For automatic source code formatting
  • cli, cli.bat: Command line interface for build, test, and doc

Test

There are three levels of tests:

  • Unit test: for testing individual code components
  • Integrate test: for testing interfaces between components
  • System test: for testing and benchmark of the whole program

Currently, only system tests are provided in the examples/ folder.

License

This software is free software distributed under the Lesser General Public License or LGPL, version 3.0 or any later versions. This software distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with OpenCAEPoro. If not, see http://www.gnu.org/licenses/.

opencaeporo's People

Contributors

bolderrookie avatar zhangcs avatar billcxx avatar zhaoli0321 avatar liuyang105 avatar

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.