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

Integrate HQMTool into existing infrastructure #11

Merged
merged 10 commits into from
Sep 11, 2021

Conversation

sloede
Copy link
Member

@sloede sloede commented Sep 10, 2021

No description provided.

@sloede
Copy link
Member Author

sloede commented Sep 10, 2021

For the docs:

iceCreamCone

@codecov
Copy link

codecov bot commented Sep 10, 2021

Codecov Report

Merging #11 (fb34793) into InteractiveTool (77bd6ca) will decrease coverage by 98.17%.
The diff coverage is 66.66%.

Impacted file tree graph

@@                 Coverage Diff                 @@
##           InteractiveTool     #11       +/-   ##
===================================================
- Coverage           100.00%   1.82%   -98.18%     
===================================================
  Files                    1      21       +20     
  Lines                   30    1752     +1722     
===================================================
+ Hits                    30      32        +2     
- Misses                   0    1720     +1720     
Flag Coverage Δ
unittests 1.82% <66.66%> (-98.18%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
src/ControlFile/ControlFileOperations.jl 0.00% <ø> (ø)
src/Curves/CurveOperations.jl 0.00% <ø> (ø)
src/Curves/Spline.jl 0.00% <ø> (ø)
src/HQMTool.jl 0.00% <0.00%> (ø)
src/Mesh/Meshing.jl 0.00% <ø> (ø)
src/Misc/DictionaryOperations.jl 0.00% <ø> (ø)
src/Misc/NotificationCenter.jl 0.00% <ø> (ø)
src/Model/Geometry.jl 0.00% <ø> (ø)
src/Project/BackgroundGridAPI.jl 0.00% <ø> (ø)
src/Project/ControlInputAPI.jl 0.00% <ø> (ø)
... and 31 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 77bd6ca...fb34793. Read the comment docs.

@sloede
Copy link
Member Author

sloede commented Sep 10, 2021

@DavidAKopriva I think this is ready to merge into your branch, if you agree. Afterwards, you can use the HQMTool functionality as follows:

Clone this repo, enter it, and switch to your branch:

git clone git@github.com:trixi-framework/HOHQMesh.jl.git
cd HOHQMesh.jl
git checkout InteractiveTool

Then, start Julia with

julia --project=.

Load the HOHQMesh package by executing

julia> using Revise, HOHQMesh

(omit Revise if you do not want to use it, it is nice for development but optional for usage)

Finally, you can access all newly added functions by prefixing their names with HOHQMesh., e.g.,

julia> HOHQMesh.runDemo()

I tried to leave everything else intact such that you can keep on developing. Specifically,

A quick look through the code told me that there might be some opportunities for cleanup/speedups/improvements, but features come first. Thus I'd focus on getting everything ready in terms of functionality first.

If you have questions, please let me know.

Copy link
Collaborator

@DavidAKopriva DavidAKopriva left a comment

Choose a reason for hiding this comment

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

OK. Merge OK.

@sloede sloede merged commit e3b5b5c into InteractiveTool Sep 11, 2021
@sloede sloede deleted the integrate-hoqmtool branch September 11, 2021 09:33
andrewwinters5000 added a commit that referenced this pull request Jun 24, 2022
* Add HQMtool folder

Add the code, documentation and examples to the repo for the HQMTool interactive front end.

* Integrate HQMTool into existing infrastructure (#11)

* Integrate docs

* Store png on GitHub

* Push documentation previews

* Fix docs; move sources

* Move AllFeatures.control to examples folder

* Add Printf dependency

* Rearrange files

* Fix path

* Fix docs

* Hopefully make tests pass again

* Add source and docs

* add capability to set ABAQUS for the meshFileFormat

* add ability to plot mesh from ISM format version

* add capability to plot from the ABAQUS format as well

* Add Curve tests

Start adding unit tests. First Batch is for curves. Need to figure out how to organize tests into multiple files and then one to rule them all.

* Add API tests

Add tests for background grid, run parameters, smoother.

* Add Refinement Tests

Add tests for refinement regions. fix exposed bugs.

* More refinement tests

Add more refinement tests and associated bug fixes.

* Update RefinementTests.jl

Cover all but two (plotting point) methods.

* BackgroundGridTests

Finish up background grid tests, and fix exposed bugs.

* Smoother tests

Finish up smoother tests.

* Finish Run Parameters

Finish up coverage.

* Update Spline tests

Add coverage and undo/redo.

* Create Model Tests

All but remove inner curve tested

* Update Tests.jl

Update to add model tests to main test file.

* Project Tests

Do tests on project, except for notification actions.

* Update Tests.jl

Add project tests to suite

* fix image rendering in HQMTool docs

* update the docs for the new plotting capabilities

* remove doc files in HQMTool folder from the repo

* remove duplicate HQMTool.jl from repo

* give capability to set ABAQUS format and remove duplicate RunParametersAPI

* add capability to plot all three mesh file formats

* remove dulplicate Viz files from the HQMTool folder

* debug plotting of all three mesh file formats

* remove remaining duplicate source files and HQMTool folder. All files now live in src

* attempt to properly include HQMTool functionality such that simply using HOHQMesh will give access to everything

* for now make GLMakie a required dependency

* perform tests on the background grid functions from HQMTool

* export all HQMTool functions, can cleanup later

* move all tests into exisitng test folder

* typo fix in CheatSheet

* spacing adjustment and flag possible extra println

* generalize file name creation. Tests should pass on Windows now

* rename testing files for consistency

* properly adjust the Makie reuqirements and exporting

* add CairoMakie to the testing Project.toml

* change generic function from get => getCurve to avoid collision with get function exported by Base

* Meshing.jl does not need to use HOHQMesh

* make the individual test files module and able to be included independently

* add testing for the visualization routines

* rearrange Makie includes. shrink resolution

* adjust function names in Meshing.jl, exporting is easier

* make figure bigger

* demos now use generate_mesh

* update visualization tests to cover more code

* add keyword argument to demos such that testing can call them

* add testing for the HQMTool demos

* update docs to match changes to the HQMTool structure

* add a 3D smoke test for a simple extrusion

* remove TODO

* remove unnecessary test data files

* add to tests that trigger some of the error statement printing

* add testing for spline read in from a file

* add attempt to generate mesh without background grid to trigger error in testing

* add tests using the getCurve and getInnerBoundary functions

* added a test for the generic spline creation

* add comment and blank line to control file

* export parametric equation evaluators

* move plotProject outside if statement. Should cover more routines

* exercise parametric eqn eval at a single point and the redoActionName

* exercise more curve arc and spline routines

* Fix two bugs

1. Strip trailing blanks for control file line so that the reader will consider lines with only blanks to be empty and skipped.

2. Add refinement region names to refinement regions in the NASCA0012.control file.

* added NACA0012 read in and some tests

* add tests that purposly has curves that do not join

* add generic remove of the outer boundary

* Update ModelAPI.jl

Delete innerBoundaryNames entry when all component curves are gone.

* fix bug in VizMesh and actually make the model test fail

* fix bug in removeInnerBoundary. Add output if a requested curveName boundaryName configuration does not exist

* bug fix in the chain index count of getInnerBoundaryChainWithName

* add calls to the generic remove for inner boundaries

* query getCurve incorrectly to throw a warning

* trigger warning of mismatched chain and boundary names in removal

* adjust logic in the removeInnerBoundaryCurve to be more robust and not mess with plotting

* add tests for the error that is now thrown by remove for the inner boundary curves

* fix error message in the refinement regions API

* fix error message bugs that used C style printing

* add additional tests to fire the progressive plotting of project

* add explicit set radius in order to trigger curveDidChange in the new test file

* add refinement region to trigger auto plotting when it is not in the options

* Add undo to removeInnerBoundary

Operation can now be undone.

* improve undo robustness and test it better

* Add a true error when the control file SPLINE does not have the nKnots value

* update action names for the outer boundary removal / insert

* bug fix in addOuterBoundary, now undo() works properly plus plots and posts notification

* small typo change

* move lines around in the printing

* exercise empty undo/redo outputs

* remove extraneous logic in curve point(s) computation

* throw error is parametric equation does not have an equal sign

* remove extraneous logic from refinementDidChange because the plot options are already updated in refinementWasAdded

* adjust visualization tests. Should cover special logic for automatic plot updates

* add another test for the visualization logic

* added test for updating the background grid size

* add proper error throwing for the background grid queries

* small cleanup of the test files

* Catch a typo

in the plotProject! function name.

* comment out docstring of duplicateCurve

* add the unRegisterForNotification function back in and test it

* Change Curve labeling

Curves are now labeled by number rather than name to make the plot look less busy.

* update comment in background tests

* adjust how the project name is set in openProject from a control file name

* update authors in the docs

* adjust spacing in the cheatsheet

* spacing in cheat sheet

* wrap commands in a code environment

* remove any tabs from CheatSheet spacing

* remove tabs, adjust spacing, introduce code environments, and adjust line breaks of HQMTool docs

* add cleanup of preview docs

* switch to three spaces for indent. Renders better with githubs markdown

* add quotes to certain code pieces as suggested in review

* typo fixes float64 to Float64

* make global arrayRegex type stable

* change Int64 to Int

* use Perl style string concatenation for literals

* Remove dependency of Printf with Perl style concatenation

* set constants for better type stability

* export plotting constants for better user experience

* adjust includes. Now only the main module has them

* adjust spacing throughout between functions to make code easier to read

* add proper warnings for undefined status types or unjoined curves

* int types change

* add compat for AbaqusReader to testing Project toml

* update the global license

* remove license from the individual files

* Update src/Curves/CurveOperations.jl

Co-authored-by: Jesse Chan <jchan985@gmail.com>

* Edit documentation

Edits to HQMTool.md

* Update ControlFileOperations.jl

Complete the description of the condtrol file dictionary.

* Add routines to check integrity of boundary curves

Two new routines. Called before a mesh is generated. Generates warnings if curves are not in order or chains are not closed.

* add some comments as suggested in review

* add tests for the internal modelCurvesAreOK function

* throw an error if one tries to remove an outer boundary curve that is not present

* dummy commit testing GitHub for Andrew

* switch off demo tests

* Changes to curve adding behavior

Allow curves to be inserted out of order, with a check before meshing to ensure that ultimately boundary curves are in order and closed.

* properly export the examples folder

* move runDemo into an external example script

* remove demo tests from test folder

* small patch to throw an error in new chain creation

* fix new error to be more general

* add a few tests for new interactive example files; replacing the functions

* adjust test for new strategy of adding curves in arbitrary order

* automatically update the file names if the mesh format changes

* bug fix in model curves check.

* improve comments in ice cream cone example file

* move demos out of library and into example files

* add new example file with staight-sided outer boundary

* update header of new two circle example

* add another example file with splines

* better spacing

* add proper plotting logic and output statements for the user

* fix comment in two circles example

* remove unnecessary tests

* Bump compat of CairoMakie in the testing Project.toml

* update docstrings

* update more docstrings

* no longer export examples_dir to avoid warning / confusion

* Update documentation with HQMTool (#17)

* add authors section to docs

* add contributing section to docs

* add development section to the docs

* typo fixes

* update main docs page. missing links

* ignore auto-generated authors file

* separate HQMTool docs for better clarity. Add to CheatSheet.md

* fix typo in filename

* change header names in HQMTool docs

* seperate workflow and HQMTool tour in docs

* fix docstrings in background grid API

* typo fix in workflow

* section out the tour

* point to the tour and tutorials

* remove broken reference links

* change name of section

* update description in the tour

* add information about HQMTool to the front page of docs

* fix broken image link

* small readibility edits

* clarify the API

* rearrange API docs section

* point to Trixi docs for mesh format explanation

* update comments in the tour

* add link to tutorials introduction

* fix typo in spline information

* add tutorials section

* add curved blob boundary tutorial

* typo fixes in new docs files

* typo fixes in interactive example scripts

* add straight-sided two circles tutorial

* add spline curves tutorial

* clarify output of new splines tutorial

* add description of the undo redo tutorial

* update tutorial link in API docs

* comment out unfinished doc file

* docs should build now

* typos fixes

* state explicitly Julia compatibility

* more typo fixes

* first draft of editing curves tutorial

* typos fixes and add synopsis of each tutorial to the main page

* typo fixes in edit curve tutorial

* typo fixes

* add synopsis also to the top of tutorials

* update section name of tutorials introduction

* quality of life improvement where adding curves display a one line message

* adjust wording to not call the project variable a dictionary

* clean up exporting to only be front facing functions. Tests still pass

* adjust tests with new exporting strategy

* adjust comments in Undo and Meshing

* change tutorial file name

* edit docs for clarity

* adjust file names in the docs

* remove unnecessary part of github docs

* further cleanup of exporting

* update tests

* add creation of output folder if not present

Co-authored-by: Michael Schlottke-Lakemper <michael@sloede.com>
Co-authored-by: Andrew Winters <andrew.ross.winters@liu.se>
Co-authored-by: Jesse Chan <jchan985@gmail.com>
Co-authored-by: Hendrik Ranocha <mail@ranocha.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants