Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add interactive HQMTool and testing #15

Merged
merged 165 commits into from
Jun 24, 2022
Merged
Show file tree
Hide file tree
Changes from 144 commits
Commits
Show all changes
165 commits
Select commit Hold shift + click to select a range
77bd6ca
Add HQMtool folder
DavidAKopriva Sep 9, 2021
e3b5b5c
Integrate HQMTool into existing infrastructure (#11)
sloede Sep 11, 2021
47d0152
Add source and docs
DavidAKopriva Mar 1, 2022
16be727
add capability to set ABAQUS for the meshFileFormat
andrewwinters5000 Mar 11, 2022
8bbc47f
add ability to plot mesh from ISM format version
andrewwinters5000 Mar 11, 2022
164dda5
Merge branch 'main' into InteractiveTool
andrewwinters5000 Mar 12, 2022
0d25434
add capability to plot from the ABAQUS format as well
andrewwinters5000 Mar 12, 2022
3e0de6c
Add Curve tests
DavidAKopriva Mar 19, 2022
8ae2f29
Add API tests
DavidAKopriva Mar 20, 2022
4093443
Add Refinement Tests
DavidAKopriva Mar 21, 2022
0296c84
More refinement tests
DavidAKopriva Mar 22, 2022
8c50f6a
Update RefinementTests.jl
DavidAKopriva Mar 22, 2022
b83619d
BackgroundGridTests
DavidAKopriva Mar 22, 2022
fb169f5
Smoother tests
DavidAKopriva Mar 22, 2022
1c98f77
Finish Run Parameters
DavidAKopriva Mar 22, 2022
8f8c1d4
Update Spline tests
DavidAKopriva Mar 23, 2022
d849404
Create Model Tests
DavidAKopriva Mar 24, 2022
a7a8442
Update Tests.jl
DavidAKopriva Mar 24, 2022
fdc632b
Project Tests
DavidAKopriva Mar 24, 2022
1ad7a7b
Update Tests.jl
DavidAKopriva Mar 24, 2022
8b2cd90
fix image rendering in HQMTool docs
andrewwinters5000 Mar 25, 2022
b329830
update the docs for the new plotting capabilities
andrewwinters5000 Mar 25, 2022
1aff854
remove doc files in HQMTool folder from the repo
andrewwinters5000 Mar 25, 2022
c2e0382
remove duplicate HQMTool.jl from repo
andrewwinters5000 Mar 25, 2022
635b2ce
give capability to set ABAQUS format and remove duplicate RunParamete…
andrewwinters5000 Mar 25, 2022
86a836f
add capability to plot all three mesh file formats
andrewwinters5000 Mar 25, 2022
b989631
remove dulplicate Viz files from the HQMTool folder
andrewwinters5000 Mar 25, 2022
30c951b
debug plotting of all three mesh file formats
andrewwinters5000 Mar 25, 2022
3ba64ed
remove remaining duplicate source files and HQMTool folder. All files…
andrewwinters5000 Mar 25, 2022
8f83954
attempt to properly include HQMTool functionality such that simply us…
andrewwinters5000 Mar 25, 2022
b071946
for now make GLMakie a required dependency
andrewwinters5000 Mar 25, 2022
9eee284
perform tests on the background grid functions from HQMTool
andrewwinters5000 Mar 26, 2022
0d0739e
export all HQMTool functions, can cleanup later
andrewwinters5000 Mar 31, 2022
f8fdb2f
move all tests into exisitng test folder
andrewwinters5000 Mar 31, 2022
db980c7
typo fix in CheatSheet
andrewwinters5000 Mar 31, 2022
22db877
spacing adjustment and flag possible extra println
andrewwinters5000 Mar 31, 2022
0d1d4db
generalize file name creation. Tests should pass on Windows now
andrewwinters5000 Mar 31, 2022
01c65fd
rename testing files for consistency
andrewwinters5000 Mar 31, 2022
27d03c8
properly adjust the Makie reuqirements and exporting
andrewwinters5000 Mar 31, 2022
9ed90f8
add CairoMakie to the testing Project.toml
andrewwinters5000 Mar 31, 2022
dc110e9
change generic function from get => getCurve to avoid collision with …
andrewwinters5000 Mar 31, 2022
89dfb9c
Meshing.jl does not need to use HOHQMesh
andrewwinters5000 Mar 31, 2022
a254bfe
make the individual test files module and able to be included indepen…
andrewwinters5000 Mar 31, 2022
4f5a0a7
add testing for the visualization routines
andrewwinters5000 Mar 31, 2022
558d87d
rearrange Makie includes. shrink resolution
andrewwinters5000 Mar 31, 2022
b5c0c54
adjust function names in Meshing.jl, exporting is easier
andrewwinters5000 Mar 31, 2022
58e181f
make figure bigger
andrewwinters5000 Mar 31, 2022
7b586a9
demos now use generate_mesh
andrewwinters5000 Mar 31, 2022
8cd9046
update visualization tests to cover more code
andrewwinters5000 Mar 31, 2022
130a029
add keyword argument to demos such that testing can call them
andrewwinters5000 Mar 31, 2022
25c7c4d
add testing for the HQMTool demos
andrewwinters5000 Mar 31, 2022
add93ae
update docs to match changes to the HQMTool structure
andrewwinters5000 Mar 31, 2022
ab88d02
add a 3D smoke test for a simple extrusion
andrewwinters5000 Apr 1, 2022
0719c9c
remove TODO
andrewwinters5000 Apr 1, 2022
3fe0180
remove unnecessary test data files
andrewwinters5000 Apr 1, 2022
601eec0
add to tests that trigger some of the error statement printing
andrewwinters5000 Apr 1, 2022
f0833d7
add testing for spline read in from a file
andrewwinters5000 Apr 1, 2022
7775864
add attempt to generate mesh without background grid to trigger error…
andrewwinters5000 Apr 1, 2022
97732bb
add tests using the getCurve and getInnerBoundary functions
andrewwinters5000 Apr 1, 2022
f37439a
added a test for the generic spline creation
andrewwinters5000 Apr 1, 2022
0141839
add comment and blank line to control file
andrewwinters5000 Apr 1, 2022
6382105
export parametric equation evaluators
andrewwinters5000 Apr 1, 2022
629aa2d
move plotProject outside if statement. Should cover more routines
andrewwinters5000 Apr 1, 2022
bd8c989
exercise parametric eqn eval at a single point and the redoActionName
andrewwinters5000 Apr 1, 2022
36aea70
exercise more curve arc and spline routines
andrewwinters5000 Apr 1, 2022
657eff7
Fix two bugs
DavidAKopriva Apr 1, 2022
60082fa
added NACA0012 read in and some tests
andrewwinters5000 Apr 2, 2022
09d6ad1
add tests that purposly has curves that do not join
andrewwinters5000 Apr 2, 2022
749bfd5
add generic remove of the outer boundary
andrewwinters5000 Apr 2, 2022
fefa9e3
Update ModelAPI.jl
DavidAKopriva Apr 2, 2022
7d623af
fix bug in VizMesh and actually make the model test fail
andrewwinters5000 Apr 4, 2022
152d46f
fix bug in removeInnerBoundary. Add output if a requested curveName b…
andrewwinters5000 Apr 4, 2022
cacec95
bug fix in the chain index count of getInnerBoundaryChainWithName
andrewwinters5000 Apr 4, 2022
817e2ff
add calls to the generic remove for inner boundaries
andrewwinters5000 Apr 4, 2022
68376eb
query getCurve incorrectly to throw a warning
andrewwinters5000 Apr 4, 2022
7c85d92
trigger warning of mismatched chain and boundary names in removal
andrewwinters5000 Apr 4, 2022
dff4bc0
adjust logic in the removeInnerBoundaryCurve to be more robust and no…
andrewwinters5000 Apr 4, 2022
6698958
add tests for the error that is now thrown by remove for the inner bo…
andrewwinters5000 Apr 4, 2022
a4335b7
fix error message in the refinement regions API
andrewwinters5000 Apr 4, 2022
87d3ef5
fix error message bugs that used C style printing
andrewwinters5000 Apr 4, 2022
76e2f47
add additional tests to fire the progressive plotting of project
andrewwinters5000 Apr 4, 2022
d10da37
add explicit set radius in order to trigger curveDidChange in the new…
andrewwinters5000 Apr 4, 2022
87a86bb
add refinement region to trigger auto plotting when it is not in the …
andrewwinters5000 Apr 4, 2022
7ab1ba4
Add undo to removeInnerBoundary
DavidAKopriva Apr 5, 2022
e54bdeb
improve undo robustness and test it better
andrewwinters5000 Apr 5, 2022
6db101b
Add a true error when the control file SPLINE does not have the nKnot…
andrewwinters5000 Apr 5, 2022
c93c330
update action names for the outer boundary removal / insert
andrewwinters5000 Apr 5, 2022
738fcc5
bug fix in addOuterBoundary, now undo() works properly plus plots and…
andrewwinters5000 Apr 5, 2022
7b4536f
small typo change
andrewwinters5000 Apr 5, 2022
73cfc2c
move lines around in the printing
andrewwinters5000 Apr 5, 2022
2f460af
exercise empty undo/redo outputs
andrewwinters5000 Apr 5, 2022
3a6a4ed
remove extraneous logic in curve point(s) computation
andrewwinters5000 Apr 5, 2022
4fe6a5d
throw error is parametric equation does not have an equal sign
andrewwinters5000 Apr 5, 2022
72b3ef9
remove extraneous logic from refinementDidChange because the plot opt…
andrewwinters5000 Apr 5, 2022
b96977c
adjust visualization tests. Should cover special logic for automatic …
andrewwinters5000 Apr 5, 2022
c2efc16
add another test for the visualization logic
andrewwinters5000 Apr 5, 2022
a2e7c0b
added test for updating the background grid size
andrewwinters5000 Apr 5, 2022
89b79a5
add proper error throwing for the background grid queries
andrewwinters5000 Apr 5, 2022
bad6321
small cleanup of the test files
andrewwinters5000 Apr 5, 2022
8bb3249
Catch a typo
DavidAKopriva Apr 5, 2022
9c150b3
comment out docstring of duplicateCurve
andrewwinters5000 Apr 6, 2022
d3674fe
add the unRegisterForNotification function back in and test it
andrewwinters5000 Apr 6, 2022
8eea84f
Change Curve labeling
DavidAKopriva Apr 6, 2022
73f74a8
update comment in background tests
andrewwinters5000 Apr 6, 2022
330c95d
adjust how the project name is set in openProject from a control file…
andrewwinters5000 Apr 7, 2022
94b4c3e
update authors in the docs
andrewwinters5000 Apr 7, 2022
f636891
adjust spacing in the cheatsheet
andrewwinters5000 Apr 7, 2022
4019f3f
spacing in cheat sheet
andrewwinters5000 Apr 7, 2022
903f3f8
wrap commands in a code environment
andrewwinters5000 Apr 7, 2022
ac8b27c
remove any tabs from CheatSheet spacing
andrewwinters5000 Apr 7, 2022
5c90798
remove tabs, adjust spacing, introduce code environments, and adjust …
andrewwinters5000 Apr 7, 2022
bf04082
add cleanup of preview docs
andrewwinters5000 Apr 7, 2022
28d1699
switch to three spaces for indent. Renders better with githubs markdown
andrewwinters5000 Apr 7, 2022
132cf2d
add quotes to certain code pieces as suggested in review
andrewwinters5000 Apr 7, 2022
2dc2fe4
typo fixes float64 to Float64
andrewwinters5000 Apr 7, 2022
3af695a
make global arrayRegex type stable
andrewwinters5000 Apr 7, 2022
bf52aa7
change Int64 to Int
andrewwinters5000 Apr 7, 2022
cf173d6
use Perl style string concatenation for literals
andrewwinters5000 Apr 7, 2022
4c5e035
Remove dependency of Printf with Perl style concatenation
andrewwinters5000 Apr 7, 2022
38343ea
set constants for better type stability
andrewwinters5000 Apr 8, 2022
df2cb4e
export plotting constants for better user experience
andrewwinters5000 Apr 8, 2022
d83af6e
adjust includes. Now only the main module has them
andrewwinters5000 Apr 8, 2022
e3b8555
adjust spacing throughout between functions to make code easier to read
andrewwinters5000 Apr 8, 2022
652df2c
add proper warnings for undefined status types or unjoined curves
andrewwinters5000 Apr 8, 2022
a3b4943
int types change
andrewwinters5000 Apr 8, 2022
57f3c17
add compat for AbaqusReader to testing Project toml
andrewwinters5000 Apr 12, 2022
e640d8f
update the global license
andrewwinters5000 Apr 12, 2022
e57c590
remove license from the individual files
andrewwinters5000 Apr 12, 2022
08b0edb
Update src/Curves/CurveOperations.jl
DavidAKopriva Apr 12, 2022
3710c10
Edit documentation
DavidAKopriva Apr 12, 2022
96260d9
Update ControlFileOperations.jl
DavidAKopriva Apr 12, 2022
d9cfb63
Add routines to check integrity of boundary curves
DavidAKopriva Apr 13, 2022
7f52b2e
add some comments as suggested in review
andrewwinters5000 Apr 14, 2022
5ef8283
add tests for the internal modelCurvesAreOK function
andrewwinters5000 Apr 14, 2022
ea26a68
throw an error if one tries to remove an outer boundary curve that is…
andrewwinters5000 Apr 14, 2022
7d6b076
dummy commit testing GitHub for Andrew
ranocha Apr 14, 2022
4c753f9
switch off demo tests
andrewwinters5000 Apr 14, 2022
468e8fb
Changes to curve adding behavior
DavidAKopriva Apr 16, 2022
91c57ea
properly export the examples folder
andrewwinters5000 Apr 14, 2022
b48611e
move runDemo into an external example script
andrewwinters5000 Apr 14, 2022
8be0539
remove demo tests from test folder
andrewwinters5000 Apr 15, 2022
5eb27e6
small patch to throw an error in new chain creation
andrewwinters5000 Apr 16, 2022
839d7c7
fix new error to be more general
andrewwinters5000 Apr 16, 2022
0d6eafd
add a few tests for new interactive example files; replacing the func…
andrewwinters5000 Apr 16, 2022
b292b6d
adjust test for new strategy of adding curves in arbitrary order
andrewwinters5000 Apr 16, 2022
51dacf8
automatically update the file names if the mesh format changes
andrewwinters5000 Apr 20, 2022
b236f5c
bug fix in model curves check.
andrewwinters5000 Apr 22, 2022
c83e86d
improve comments in ice cream cone example file
andrewwinters5000 Apr 22, 2022
f6ef83f
move demos out of library and into example files
andrewwinters5000 Apr 22, 2022
b72a013
add new example file with staight-sided outer boundary
andrewwinters5000 Apr 22, 2022
79999ea
update header of new two circle example
andrewwinters5000 Apr 22, 2022
955dc20
add another example file with splines
andrewwinters5000 Apr 22, 2022
08968d9
better spacing
andrewwinters5000 Apr 22, 2022
96254d3
add proper plotting logic and output statements for the user
andrewwinters5000 Apr 29, 2022
1d2eb46
fix comment in two circles example
andrewwinters5000 Apr 29, 2022
d641654
remove unnecessary tests
andrewwinters5000 May 2, 2022
9442d40
Bump compat of CairoMakie in the testing Project.toml
andrewwinters5000 Jun 15, 2022
741fe41
update docstrings
andrewwinters5000 Jun 15, 2022
03834ae
update more docstrings
andrewwinters5000 Jun 16, 2022
2db2d2e
no longer export examples_dir to avoid warning / confusion
andrewwinters5000 Jun 16, 2022
111cb8a
Update documentation with HQMTool (#17)
andrewwinters5000 Jun 23, 2022
dd29e70
remove unnecessary part of github docs
andrewwinters5000 Jun 23, 2022
1675a08
further cleanup of exporting
andrewwinters5000 Jun 23, 2022
1907598
update tests
andrewwinters5000 Jun 23, 2022
dde3e22
add creation of output folder if not present
andrewwinters5000 Jun 23, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/workflows/DocPreviewCleanup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Doc Preview Cleanup

on:
pull_request:
types: [closed]

jobs:
doc-preview-cleanup:
# Do not run on forks to avoid authorization errors
# Source: https://github.community/t/have-github-action-only-run-on-master-repo-and-not-on-forks/140840/18
if: github.repository_owner == 'trixi-framework'
runs-on: ubuntu-latest
steps:
- name: Checkout gh-pages branch
uses: actions/checkout@v2
with:
ref: gh-pages

- name: Delete preview and history
shell: bash
run: |
git config user.name "Documenter.jl"
git config user.email "[email protected]"
git rm -rf --ignore-unmatch "previews/PR$PRNUM"
git commit -m "delete preview" --allow-empty
git branch gh-pages-new $(echo "delete history" | git commit-tree HEAD^{tree})
env:
PRNUM: ${{ github.event.number }}

- name: Push changes
run: |
git push --force origin gh-pages-new:gh-pages
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ coverage/
coverage_report/
**/*.jl.*.cov
.vscode/
examples/*.tec
examples/*.mesh
Comment on lines +10 to +11
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
examples/*.tec
examples/*.mesh
examples/**/*.tec
examples/**/*.mesh

To make it work for subfolders as well?

26 changes: 13 additions & 13 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
MIT License

Copyright (c) 2021-present Michael Schlottke-Lakemper
Copyright (c) 2021-present David Kopriva, Andrew Winters, and Michael Schlottke-Lakemper

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
2 changes: 2 additions & 0 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ version = "0.1.2-pre"

[deps]
HOHQMesh_jll = "1d5cbd98-5122-5a8a-bea1-c186d986ee7f"
Requires = "ae029012-a4dd-5104-9daa-d747884805df"

[compat]
HOHQMesh_jll = "1.0"
Requires = "1.1.3"
julia = "1.6"
4 changes: 3 additions & 1 deletion docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ makedocs(
# Explicitly specify documentation structure
pages = [
"Home" => "index.md",
"Interactive mesh generation" => "HQMTool.md",
"Cheat sheet" => "CheatSheet.md",
"Reference" => "reference.md",
"License" => "license.md"
],
Expand All @@ -32,5 +34,5 @@ makedocs(
deploydocs(
repo = "github.com/trixi-framework/HOHQMesh.jl",
devbranch = "main",
# push_preview = true
push_preview = true
sloede marked this conversation as resolved.
Show resolved Hide resolved
)
86 changes: 86 additions & 0 deletions docs/src/CheatSheet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# HQMTool CheatSheet

Workflow:

1. Create a project
2. Add boundary curves
4. Add a background grid
3. Add manual refinement (if desired)
5. Generate mesh

## Project

```
p = newProject(<projectName>, <folder>)
```

## [Plotting](@id cs-plotting)

```
plotProject!(p, options)
updatePlot!(p, options)
```

`options` are the sum of `GRID`, `MESH`, `MODEL`, `REFINEMENTS`
## Curves

```
c = new(name, startLocation [x,y,z],endLocation [x,y,z]) *Straight Line*
c = new(name,center [x,y,z],radius, startAngle, endAngle) *Circular Arc*
c = new(name, xEqn, yEqn, zEqn) *Parametric equation*
c = new(name, dataFile) *Spline with data from a file*
c = new(name, nKnots, knotsMatrix) *Spline with given knot values*
```

Shown here is the use of the function `new`, which is a shortcut to the full functions, e.g. `newCircularArcCurve`, etc. which have the same arguments.

## [Manual Refinement](@id cs-manual-refinement)

```
r = newRefinementCenter(name, center, gridSize, radius)
r = newRefinementLine(name, type, startPoint, endPoint, gridSize, width)
```

## Adding to a Project

```
add!(p, c) *Add outer boundary curve*
add!(p, c, <InnerBoundaryName>) *Add curve to an inner boundary*
add!(p, r) *Add refinement region*

addBackgroundGrid!(p, [top, left, bottom, right], [nX, nY, nZ]) *No outer boundary*
addBackgroundGrid!(p, [dx, dy, dz]) *If an outer boundary is present*
```
Shown here is the use of the function `add!`, which is a shortcut to the full functions, e.g. `addOuterBoundaryCurve`, etc. which have the same arguments.

## Accessing items

```
crv = getCurve(p, curveName) *Get a curve in the outer boundary*
crv = getCurve(p, curveName, boundaryName) *Get a curve in an inner boundary*
indx, chain = getChain(p, boundaryName) *Get a complete inner boundary curve*
r = getRefinementRegion(p, name)
```

## Removing from Project

```
removeOuterboundary!(p) *Entire outer boundary curve*
removeInnerBoundary!(p, innerBoundaryName) *Entire inner boundary curve*
remove!(p, name) *Curve in outer boundary*
remove!(p, name, innerBoundaryName) *Curve in inner boundary*
removeRefinementRegion!(p, name)
```

## Editing items

All items have set/get methods to edit them. Most actions have `undo()` and `redo()`.
To find out what the next undo/redo actions are, use `undoActionName()` and `redoActionName()`
to print them to the screen.

## Meshing

```
generate_mesh(p)
remove_mesh!(p)
```
Loading