Metadata-Version: 2.1
Name: snoopy-bv
Version: 2.0.0
Summary: DR C++/Python library
Home-page: https://gitlab.com/bv-dr/Snoopy
Author: Research Department BV M&O
Author-email: 
License: UNKNOWN
Platform: UNKNOWN
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Operating System :: Microsoft :: Windows
Description-Content-Type: text/x-rst
Requires-Dist: xarray
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: pandas
Requires-Dist: matplotlib
Requires-Dist: h5py
Requires-Dist: tqdm
Requires-Dist: Deprecated

.. image:: https://gitlab.com/bv-dr/Snoopy/badges/master/pipeline.svg?branch=master
   :target: https://gitlab.com/bv-dr/Snoopy/badges/master/pipeline.svg
   :alt: Build Status


Snoopy library
==============

Documentation and tutorials : `https://bv-dr.gitlab.io/Snoopy <https://bv-dr.gitlab.io/Snoopy>`_

Snoopy is an open source library for marine applications. Among other things, it contains the following sub-packages

* 
  Spectral : Routines for spectral analysis of sea-keeping results

  * Wave spectra (Jonswap, Ochihubble, spreading function...)
  * Manipulation of transfer function (RAOs)
  * Response spectrum
  * 2nd order response spectrum


* 
  TimeDomain

  * Reconstruction of seakeeping results in time domain (1st and 2nd order)
  * Convolution for wave radiation in time domain (from added-mass).

* 
  Fatigue

  * Rainflow counting
  * Spectral fatigue

* 
  Meshing

* 
   WaveKinematics : (Linear, wheeler stretching, 2nd order...)


Example of use
--------------

.. code-block:: python

   >>> from Snoopy import Spectral as sp
   >>> spec = sp.Jonswap( hs = 1.0 , tp = 10.0 , gamma = 1.0)
   >>> spec.plot()

.. image:: https://gitlab.com/bv-dr/Snoopy/-/raw/master/Doc/pictures/Jonswap.png
   :width: 400
   :alt: Jonswap picture



How to install from pre-compiled library
----------------------------------------

Pre-compiled wheel package can be installed with : 

.. code-block:: sh

   pip install snoopy_bv-1.3.0-cp39-cp39-win_amd64.whl --no-deps


or, to upgrade (as version number is not always changed) : 

.. code-block:: sh

   pip install snoopy-bv --force-reinstall --no-deps


In case conda is used, it is recommended to install dependencies using conda (hence the --no-deps in above command line):

.. code-block:: sh

   conda install --file requirements.txt


How to build from sources
-------------------------


* 
  Create a build folder, for instance "build"

* 
  Run cmake

go in "build" directory and run :

.. code-block:: sh

   cmake .. -G"CodeBlocks - MinGW Makefiles"



* Compile

.. code-block:: sh

   mingw32-make.exe -j10


How to use in develop mode
^^^^^^^^^^^^^^^^^^^^^^^^^^

To install in "developer mode" (uses current sources, does not copy in python environment) :

.. code-block:: sh

   pip install -e C:\path_to_snoopy_location


How to install
^^^^^^^^^^^^^^

to install in python environment :

.. code-block:: sh

   pip install pathToRootfolder


How to package
^^^^^^^^^^^^^^


* The folder containing the .pyd should be in the SNOOPY_PYD environement variable

.. code-block:: sh

   python setup.py bdist_wheel


How to install on Linux (tested with Ubuntu 20.04 with bash terminal)
---------------------------------------------------------------------


* clone in the folder snoopy_dev (using snoopy as name may cause problems)

.. code-block:: sh

   git clone https://mar-gitlab.bureauveritas.com/applications/dr/snoopy.git snoopy_dev



* compile the code in a build directory

.. code-block:: sh

   cd snoopy_dev/Snoopy
   mkdir build
   cd build
   cmake ..
   make -j 10  


* install the package

.. code-block:: sh

   cd ../..
   pip install .   


To install in develop mode:   

.. code-block:: sh

   pip install -e .


Dev notes:
----------

Commit message
^^^^^^^^^^^^^^


* [FUN] : New feature
* [ENH] : Enhancement of existing code
* [BUG] : Bug correction, [BBUG] for really BIG BUG (with consequences in case of use...)
* [QLT] : Quality (Comments, removal of dead code...)
* [FIX] : Correction of compiling issue
* [DAT] : Data added or modified
* [DOC] : Document added or modified
* [TEST] : Test added or modified
* [INI] : Initial commit.

The subpackage should be mentioned after this Flag. For instance : 

[ENH] TimeDomain : Performance optimization of ReconstructionRaoLocal


