Skip to content

Commit

Permalink
Merge pull request #50 from dengwirda/dev
Browse files Browse the repository at this point in the history
Update to jigsaw-1.0.0.x
  • Loading branch information
dengwirda authored Jan 31, 2023
2 parents 5c46d96 + d589b1b commit f99d8f4
Show file tree
Hide file tree
Showing 228 changed files with 11,764 additions and 6,321 deletions.
114 changes: 114 additions & 0 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
name: CMake Build Matrix

on:
workflow_dispatch:
pull_request:
push:

env:
BUILD_TYPE: Debug

jobs:
build:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- {
name: "Windows Latest MSVC", artifact: "Windows-MSVC.tar.xz",
os: windows-latest,
cc: "cl", cxx: "cl"
}
- {
name: "Ubuntu Latest GCC", artifact: "Linux.tar.xz",
os: ubuntu-latest,
cc: "gcc", cxx: "g++"
}
- {
name: "macOS Latest Clang", artifact: "macOS.tar.xz",
os: macos-latest,
cc: "clang", cxx: "clang++"
}

steps:
- uses: actions/checkout@v3

- name: Print environment
run: |
echo github.event.action: ${{ github.event.action }}
echo github.event_name: ${{ github.event_name }}
- name: Install dependencies on win
if: startsWith(matrix.config.os, 'windows')
run: |
choco install ninja cmake
ninja --version
cmake --version
- name: Install dependencies on unx
if: startsWith(matrix.config.name, 'ubuntu')
run: |
sudo apt-get update
sudo apt-get install ninja-build cmake
ninja --version
cmake --version
g++ --version
- name: Install dependencies on osx
if: startsWith(matrix.config.os, 'macos')
run: |
brew install ninja cmake llvm libomp
ninja --version
cmake --version
clang++ --version
- name: Configure jigsaw
run: |
mkdir ${{github.workspace}}/build
cd ${{github.workspace}}/build
cmake .. -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
- name: Build jigsaw
run: |
cd ${{github.workspace}}/build
cmake --build . --config ${{env.BUILD_TYPE}} --target install
- name: Clean jigsaw
run: rm -r ${{github.workspace}}/build

- name: Configure tests for jigsaw
run: |
mkdir ${{github.workspace}}/uni/build
cd ${{github.workspace}}/uni/build
cmake .. -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
- name: Build tests for jigsaw
run: |
cd ${{github.workspace}}/uni/build
cmake --build . --config ${{env.BUILD_TYPE}} --target install
- name: Prep. tests for jigsaw
if: startsWith(matrix.config.os, 'windows')
run: |
cd ${{github.workspace}}/uni
cp ../lib/jigsaw.dll .
- name: Eval. tests for jigsaw
run: |
cd ${{github.workspace}}/uni
./test_all
- name: Extra tests for jigsaw
run: |
cd ${{github.workspace}}
./bin/jigsaw example.jig
./bin/jigsaw geo/airfoil.jig
./bin/jigsaw geo/bunny.jig
./bin/jigsaw geo/parts.jig
./bin/jigsaw geo/earth.jig
./bin/jigsaw geo/lakes.jig
- name: Clean tests for jigsaw
run: rm -r ${{github.workspace}}/uni/build
172 changes: 0 additions & 172 deletions .travis.yml

This file was deleted.

9 changes: 8 additions & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,11 @@

This program may be freely redistributed under the condition that the copyright notices (including this entire header) are not removed, and no compensation is received through use of the software. Private, research, and institutional use is free. You may distribute modified versions of this code `UNDER THE CONDITION THAT THIS CODE AND ANY MODIFICATIONS MADE TO IT IN THE SAME FILE REMAIN UNDER COPYRIGHT OF THE ORIGINAL AUTHOR, BOTH SOURCE AND OBJECT CODE ARE MADE FREELY AVAILABLE WITHOUT CHARGE, AND CLEAR NOTICE IS GIVEN OF THE MODIFICATIONS`. Distribution of this code as part of a commercial system is permissible `ONLY BY DIRECT ARRANGEMENT WITH THE AUTHOR`. (If you are not directly supplying this code to a customer, and you are instead telling them how they can obtain it for free, then you are not required to make any arrangement with me.)

`DISCLAIMER`: Neither I nor: Columbia University, the Massachusetts Institute of Technology, the University of Sydney, nor the National Aeronautics and Space Administration warrant this code in any way whatsoever. This code is provided "as-is" to be used at your own risk.
`DISCLAIMER`: Neither I nor `THE CONTRIBUTORS` warrant this code in any way whatsoever. This code is provided "as-is" to be used at your own risk.

`THE CONTRIBUTORS` include:
(a) The University of Sydney
(b) The Massachusetts Institute of Technology
(c) Columbia University
(d) The National Aeronautics & Space Administration
(e) Los Alamos National Laboratory
25 changes: 19 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

This package provides the underlying `c++` source for `JIGSAW`; defining a basic command-line interface and a `c`-format `API`. Higher-level scripting interfaces, supporting a range of additional facilities for file I/O, mesh visualisation and post-processing operations are also available, including for <a href="http://www.mathworks.com">`MATLAB`</a> / <a href="http://www.gnu.org/software/octave">`OCTAVE`</a> <a href="https://github.com/dengwirda/jigsaw-matlab">here</a> and for <a href="https://www.python.org/">`PYTHON`</a> <a href="https://github.com/dengwirda/jigsaw-python">here</a>.

`JIGSAW` has been compiled and tested on various `64-bit` `Linux`, `Windows` and `MacOS` based platforms.
`JIGSAW` is compiled and tested on various `64-bit` `Linux`, `Windows` and `MacOS` platforms using the `g++`, `clang++` and `msvc` compilers.

### `Code Structure`

Expand Down Expand Up @@ -47,12 +47,12 @@ The full `JIGSAW` src can be found in <a href="../master/src/">`../jigsaw/src/`<
* Make a new temporary directory BUILD.
* cd build
* cmake .. -DCMAKE_BUILD_TYPE=BUILD_MODE
* cmake --build . --config BUILD_MODE --target install
* cmake --build . --config BUILD_MODE --target install EXTRAS
* Delete the temporary BUILD directory.

This process will build a series of executables and shared libraries: `jigsaw` itself - the main command-line meshing utility, `tripod` - `JIGSAW`'s tessellation infrastructure, `marche` - a fast-marching solver designed to optimise mesh-spacing configurations, as well as `libjigsaw` - `JIGSAW`'s shared `API`.

`BUILD_MODE` can be used to select different compiler configurations and should generally either be `Release` or `Debug`.
`BUILD_MODE` can be used to select different compiler configurations and should generally either be `Release` or `Debug`. `EXTRAS` can be used to pass additional compile-time arguments, for example `-- -j 4` will build in parallel on supported architectures.

See `example.jig` for documentation on calling the command-line executables, and the headers in <a href="../master/inc/">`../jigsaw/inc/`</a> for details on the `API`.

Expand Down Expand Up @@ -94,16 +94,29 @@ The unit-tests can be built using the <a href="https://cmake.org/">`cmake`</a> u
* Make a new temporary directory BUILD.
* cd build
* cmake .. -DCMAKE_BUILD_TYPE=BUILD_MODE
* cmake --build . --config BUILD_MODE --target install
* cmake --build . --config BUILD_MODE --target install EXTRAS
* Delete the temporary BUILD directory.

This process will build the unit-tests as a series of executables in <a href="../master/uni/">`../jigsaw/uni/`</a>. `BUILD_MODE` is a compiler configuration flag: either `Release` or `Debug`.
This process will build the unit-tests as a series of executables in <a href="../master/uni/">`../jigsaw/uni/`</a>. `BUILD_MODE` is a compiler configuration flag: either `Release` or `Debug`. `EXTRAS` can be used to pass additional compile-time arguments.

### `Contributors`

1. [@dengwirda](https://github.com/dengwirda) is `JIGSAW`'s developer and maintainer --- this work was originally the focus of my PhD at the University of Sydney.
2. [@xylar](https://github.com/xylar) contributed the `cmake` build system and `conda` environment.
3. [@tunnellm](https://github.com/tunnellm) extended the sequential optimisation algorithms to support thread-parallelism.

### `License`

This program may be freely redistributed under the condition that the copyright notices (including this entire header) are not removed, and no compensation is received through use of the software. Private, research, and institutional use is free. You may distribute modified versions of this code `UNDER THE CONDITION THAT THIS CODE AND ANY MODIFICATIONS MADE TO IT IN THE SAME FILE REMAIN UNDER COPYRIGHT OF THE ORIGINAL AUTHOR, BOTH SOURCE AND OBJECT CODE ARE MADE FREELY AVAILABLE WITHOUT CHARGE, AND CLEAR NOTICE IS GIVEN OF THE MODIFICATIONS`. Distribution of this code as part of a commercial system is permissible `ONLY BY DIRECT ARRANGEMENT WITH THE AUTHOR`. (If you are not directly supplying this code to a customer, and you are instead telling them how they can obtain it for free, then you are not required to make any arrangement with me.)

`DISCLAIMER`: Neither I nor: Columbia University, the Massachusetts Institute of Technology, the University of Sydney, nor the National Aeronautics and Space Administration warrant this code in any way whatsoever. This code is provided "as-is" to be used at your own risk.
`DISCLAIMER`: Neither I nor `THE CONTRIBUTORS` warrant this code in any way whatsoever. This code is provided "as-is" to be used at your own risk.

`THE CONTRIBUTORS` include:
(a) The University of Sydney
(b) The Massachusetts Institute of Technology
(c) Columbia University
(d) The National Aeronautics & Space Administration
(e) Los Alamos National Laboratory

### `References`

Expand Down
Loading

0 comments on commit f99d8f4

Please sign in to comment.