From ef5e5297f77e6e3d01b60878b875a5452dc4975e Mon Sep 17 00:00:00 2001 From: Savithru Jayasinghe <43912545+savithru-j@users.noreply.github.com> Date: Sun, 29 Oct 2023 18:19:05 -0400 Subject: [PATCH] Updated readme, added copyright headers and linux workflow --- .github/workflows/linux.yml | 41 ++++++++++++++++++++++++++++++++++++ README.md | 17 ++++++++++++++- examples/fibre_2mode.cpp | 5 +++++ examples/fibre_2mode_gpu.cu | 5 +++++ src/ode/GPUMultimodeNLSE.hpp | 5 +++++ src/ode/MultimodeNLSE.hpp | 5 +++++ 6 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/linux.yml diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 0000000..ae7a031 --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,41 @@ +name: Linux + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + strategy: + matrix: + os: [ubuntu-latest] + + # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. + # You can convert this to a matrix build if you need cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v3 + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + - name: Test + working-directory: ${{github.workspace}}/build + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: ctest -C ${{env.BUILD_TYPE}} + diff --git a/README.md b/README.md index 093e62a..0cdb8da 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,17 @@ # NLSE++ -C++ library for solving nonlinear Schrödinger's equation +C++ library for solving the nonlinear Schrödinger equation + +[![Linux](https://github.com/savithru-j/nlse-cpp/actions/workflows/linux.yml/badge.svg?branch=main)](https://github.com/savithru-j/nlse-cpp/actions/workflows/linux.yml) + +### Building with CMake + +``` +git clone https://github.com/savithru-j/nlse-cpp.git +cd nlse-cpp #Main project directory +mkdir build #Create directory for build files: build/release +cd build +mkdir release +cd release +cmake ../../ #Configure build +make -j 4 #Build in parallel with 4 threads +``` \ No newline at end of file diff --git a/examples/fibre_2mode.cpp b/examples/fibre_2mode.cpp index c181b20..6efa9f7 100644 --- a/examples/fibre_2mode.cpp +++ b/examples/fibre_2mode.cpp @@ -1,3 +1,8 @@ +// nlse++ +// C++ library for solving the nonlinear Schrödinger equation +// Licensed under the MIT License (http://opensource.org/licenses/MIT) +// Copyright (c) 2023, Savithru Jayasinghe + #include #include #include diff --git a/examples/fibre_2mode_gpu.cu b/examples/fibre_2mode_gpu.cu index 95c26be..d763e1b 100644 --- a/examples/fibre_2mode_gpu.cu +++ b/examples/fibre_2mode_gpu.cu @@ -1,3 +1,8 @@ +// nlse++ +// C++ library for solving the nonlinear Schrödinger equation +// Licensed under the MIT License (http://opensource.org/licenses/MIT) +// Copyright (c) 2023, Savithru Jayasinghe + #include #include #include diff --git a/src/ode/GPUMultimodeNLSE.hpp b/src/ode/GPUMultimodeNLSE.hpp index f00ea54..d3e9c6f 100644 --- a/src/ode/GPUMultimodeNLSE.hpp +++ b/src/ode/GPUMultimodeNLSE.hpp @@ -1,3 +1,8 @@ +// nlse++ +// C++ library for solving the nonlinear Schrödinger equation +// Licensed under the MIT License (http://opensource.org/licenses/MIT) +// Copyright (c) 2023, Savithru Jayasinghe + #include #include #include diff --git a/src/ode/MultimodeNLSE.hpp b/src/ode/MultimodeNLSE.hpp index 8595f6c..e26449d 100644 --- a/src/ode/MultimodeNLSE.hpp +++ b/src/ode/MultimodeNLSE.hpp @@ -1,3 +1,8 @@ +// nlse++ +// C++ library for solving the nonlinear Schrödinger equation +// Licensed under the MIT License (http://opensource.org/licenses/MIT) +// Copyright (c) 2023, Savithru Jayasinghe + #include #include #include