GithubHelp home page GithubHelp logo

swegbloo / nemoh Goto Github PK

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

boundary element solver

License: GNU General Public License v3.0

Dockerfile 0.05% CMake 2.52% Fortran 59.60% Makefile 1.57% Gnuplot 7.78% MATLAB 28.49%

nemoh's Introduction

NEMOH is a Boundary Element Methods (BEM) code dedicated to the computation of first order wave loads on offshore structures (added mass, radiation damping, diffraction forces). It has been developed by researchers at Ecole Centrale de Nantes for more than 30 years. It is still used in many of our research projects. Typical uses include the estimation of dynamic response of floating structures or the performance assessment of wave energy converters.

Copyright © 2022 Ecole Centrale de Nantes

This program has been developed at Ecole Centrale de Nantes by G. Delhommeau, A. Babarit, J. Singh, P. Guével, J.C. Daubisse, R. Kurnia.

Pre-built binaries and documentation

The full documentation is available here. Please do not hesitate to report any errors or suggest improvements!

Pre-built binaries (executables) of all the Nemoh programs for Linux and Windows (x64) can be found in the Releases section of the project for each version (starting from v3.0.0).

Alternatively, you can compile Nemoh by yourself using the following instructions (of by following the documentation).

Compilation

Compile all Nemoh executables using CMake (from the root of the repository):

cmake -S. -Bbuild
cmake --build build

The resulting executables are in the bin directory.

To compile only one of the executables, use the --target option of CMake. The available targets for Nemoh are:

  • preProc
  • solver
  • postProc
  • mesh
  • hydrosCal

The available targets (executables) for Nemoh QTF are:

  • QTFpreProc
  • QTFsolver
  • QTFpostProc

The choice of the compiler is left to CMake, but can be overridden by setting the CMAKE_Fortran_COMPILER at the configuration step, e.g.:

cmake -S. -Bbuild -DCMAKE_Fortran_COMPILER=gfortran

Compilation was tested with GNU's gfortran and Intel's ifort.

Testing

After building, the fast tests can be run from the build directory:

ctest -V -j <N_concurrent>

Where <N_concurrent> is the number of simultaneous workers (processes).

The tests can be restricted using their labels and the -L option of ctest:

ctest -V -j <N_concurrent> -L <label>

Where label is one of the following:

  • NEMOH1: only the non-QTF test cases
  • PREPROC: only the pre-processing operations
  • SOLVER: only the solving operations (depend on the pre-processing tests)
  • POSTPROC: only the post-processing operations (depend on the pre-processing and solving tests)
  • NEMOH2: only the QTF test cases
  • QTF: only the computation of the QTF (depend on the prior non-QTF Nemoh computation)

Tests with unsatisfied requirements will fail.

In order to run the full test cases (matching reference data), Makefiles are provided in the TestCases directory and in each of the test cases' directories.

Bugs, improvements and questions

Please use the GitLab Issues to report any bugs you might have encountered, to suggests improvements to the code and documentation and to ask questions.

External contributions are welcome, but we suggest that you contact us beforehand to avoid conflicts with ongoing developments.

nemoh's People

Contributors

ababaritecn avatar gducrozet avatar swegbloo avatar gjacquenot avatar ldouteau avatar

Watchers

 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.