| b7f03f12 | 10-May-2022 |
Jed Brown <jed@jedbrown.org> |
examples/fluids: make setup contexts independent
These are now private to each example and can be developed independently. |
| 15a3537e | 09-May-2022 |
Jed Brown <jed@jedbrown.org> |
examples/fluids: consolidate two-step setup
Contexts are created in one place now and we have removed duplicate struct definitions for physics. |
| af8870a9 | 05-May-2022 |
Timothy Aiken <55306867+tt-aiken@users.noreply.github.com> |
Shock Tube + YZB Discontinuity Capturing (#851)
* Implemented the Sod Shock Tube problem with YZB discontinuity capturing. for the explicit formulation. SU stabilization is also implemented for the
Shock Tube + YZB Discontinuity Capturing (#851)
* Implemented the Sod Shock Tube problem with YZB discontinuity capturing. for the explicit formulation. SU stabilization is also implemented for the explicit formulation.
* Changed variable name midpt to mid_point, removed redundant slip BC declarations.
* Fixed style error, made variable names clearer, and removed dead code.
* Missed a style fix
* Rebased with main
* Implemented the Sod Shock Tube problem with YZB discontinuity capturing. for the explicit formulation. SU stabilization is also implemented for the explicit formulation.
* Fixed style error, made variable names clearer, and removed dead code.
* Missed a style fix
* Implemented fixes to the flux jacobians
* Updated documentation, tau definition in SU, and recommended fixes to the flux Jacobian.
* Implemented the Sod Shock Tube problem with YZB discontinuity capturing. for the explicit formulation. SU stabilization is also implemented for the explicit formulation.
* Missed a style fix
* Implemented the Sod Shock Tube problem with YZB discontinuity capturing. for the explicit formulation. SU stabilization is also implemented for the explicit formulation.
* Fixes to style and documentation.
* Fixing unnecessary problem->dim declaration and missing field in comment describing initial condition density.
* Added warnings for incompatible user input combinations.
* Added comments on beta to documentation, fixed j_gradn style issues.
* Compilation errors on my end. Committing to see if it's local or not.
* Style fixes
* Implemented the Sod Shock Tube problem with YZB discontinuity capturing. for the explicit formulation. SU stabilization is also implemented for the explicit formulation.
* Changed variable name midpt to mid_point, removed redundant slip BC declarations.
* Fixed style error, made variable names clearer, and removed dead code.
* Missed a style fix
* Rebased with main
* Implemented the Sod Shock Tube problem with YZB discontinuity capturing. for the explicit formulation. SU stabilization is also implemented for the explicit formulation.
* Fixed style error, made variable names clearer, and removed dead code.
* Missed a style fix
* Implemented fixes to the flux jacobians
* Updated documentation, tau definition in SU, and recommended fixes to the flux Jacobian.
* Implemented the Sod Shock Tube problem with YZB discontinuity capturing. for the explicit formulation. SU stabilization is also implemented for the explicit formulation.
* Missed a style fix
* Implemented the Sod Shock Tube problem with YZB discontinuity capturing. for the explicit formulation. SU stabilization is also implemented for the explicit formulation.
* Fixes to style and documentation.
* Fixing unnecessary problem->dim declaration and missing field in comment describing initial condition density.
* Added warnings for incompatible user input combinations.
* Added comments on beta to documentation, fixed j_gradn style issues.
* Compilation errors on my end. Committing to see if it's local or not.
* Fluids: SETERRQ1 -> SETERRQ to be compatible with PETSc 3.17
* Fluids - Update shock-tube with #881
* Small fix to mid_point definition and removed repeat entries for Shock Tube problem in README.md.
* Including test output.
* Implemented the Sod Shock Tube problem with YZB discontinuity capturing. for the explicit formulation. SU stabilization is also implemented for the explicit formulation.
* Changed variable name midpt to mid_point, removed redundant slip BC declarations.
* Fixed style error, made variable names clearer, and removed dead code.
* Missed a style fix
* Rebased with main
* Implemented the Sod Shock Tube problem with YZB discontinuity capturing. for the explicit formulation. SU stabilization is also implemented for the explicit formulation.
* Fixed style error, made variable names clearer, and removed dead code.
* Missed a style fix
* Implemented fixes to the flux jacobians
* Updated documentation, tau definition in SU, and recommended fixes to the flux Jacobian.
* Implemented the Sod Shock Tube problem with YZB discontinuity capturing. for the explicit formulation. SU stabilization is also implemented for the explicit formulation.
* Missed a style fix
* Implemented the Sod Shock Tube problem with YZB discontinuity capturing. for the explicit formulation. SU stabilization is also implemented for the explicit formulation.
* Fixes to style and documentation.
* Fixing unnecessary problem->dim declaration and missing field in comment describing initial condition density.
* Added warnings for incompatible user input combinations.
* Added comments on beta to documentation, fixed j_gradn style issues.
* Compilation errors on my end. Committing to see if it's local or not.
* Fluids: SETERRQ1 -> SETERRQ to be compatible with PETSc 3.17
* Fluids - Update shock-tube with #881
* Fluids - added test output file for shocktube
* Small fix to mid_point definition and removed repeat entries for Shock Tube problem in README.md.
* Including test output.
* Update doc/sphinx/source/references.bib
Co-authored-by: Jed Brown <jed@jedbrown.org>
* Update examples/fluids/README.md
Co-authored-by: Jed Brown <jed@jedbrown.org>
* Update examples/fluids/index.md
Co-authored-by: Jed Brown <jed@jedbrown.org>
* Update examples/fluids/navierstokes.h
Co-authored-by: Jed Brown <jed@jedbrown.org>
* Update examples/fluids/problems/shocktube.c
Co-authored-by: Jed Brown <jed@jedbrown.org>
* Update examples/fluids/qfunctions/shocktube.h
Co-authored-by: Jed Brown <jed@jedbrown.org>
* Removed unused IFunction
* Added shocktube variables to SetupContext in advection.h, advection2d.h, and densitycurrent.h
* Missed some merge conflicts that have now been cleared up.
* Added helper function for covariant element length along a given vector.
* Added SetupContext to shocktube.h
* Fix to regression test path
* remove variable transpose of the Jacobian
* Fix index swap in implicit SUPG
* examples/fluids shocktube: fix stab summation and transpose
* delete IFunction
* example/fluids- updates reference solution
Co-authored-by: Timothy Aiken <timothyaiken@Timothys-MacBook-Pro.local>
Co-authored-by: Timothy Aiken <timothyaiken@cu-biot-10-10.203.167.69.int.colorado.edu>
Co-authored-by: Leila Ghaffari <Leila.Ghaffari@colorado.edu>
Co-authored-by: Jed Brown <jed@jedbrown.org>
Co-authored-by: Timothy Aiken <timothyaiken@cu-genvpn-tcom-10.180.164.177.int.colorado.edu>
Co-authored-by: AdelekeBankole <adeleke.bankole@colorado.edu>
show more ...
|
| 2acc7cbc | 03-May-2022 |
Kenneth E. Jansen <Kenneth.Jansen@colorado.edu> |
Cleaner density inflow (#953)
* density weakly set on the inflow....also seems to have a commit intended for ken/primitiveSUPGterm OOOP
Merged onto main this density ONLY inflow step...fixed E_k
Cleaner density inflow (#953)
* density weakly set on the inflow....also seems to have a commit intended for ken/primitiveSUPGterm OOOP
Merged onto main this density ONLY inflow step...fixed E_kinitec bug along the way which used interior velocity.
* first cut at choose your weak inflow rho or T
* cleanup and a missing gamma
* dropped time step to 2e-6, added time limit of 0.001, added suggested parameters for tau constants for linear vs. quadratic. Note this is far from certain, expecially quadratic. Also left commented the required settings to forces SNES to do a fixed number of NL iterations. The current settings do 2 NL iterations for a while then drop to 1 which is ok for steady state but might not be good for SRS.
* potentially better Ctau_{C,M,E} that have much lower oscillations in the free stream even at large time steps like 3.2e-5
* examples/fluids: fix output_freq
* examples/fluids: use bool for weakT
Suggested-by: James Wright <james@jameswright.xyz>
Co-authored-by: Jed Brown <jed@jedbrown.org>
show more ...
|
| bb8a0c61 | 30-Apr-2022 |
James Wright <james@jameswright.xyz> |
feat: Add blasius boundary layer and channel flow examples to examples/fluids (#942)
* examples/fluids: Upload current case for collaboration
* examples/fluids: Replace developing BL with duct
feat: Add blasius boundary layer and channel flow examples to examples/fluids (#942)
* examples/fluids: Upload current case for collaboration
* examples/fluids: Replace developing BL with duct
* examples/fluids: Allow density to "float" at inflow
* fix: Add u_normal
* examples/fluids: bug fix in density flux
* examples/fluids: implement "floating" pressure; prescribed u, T
* examples/fluids: fixing initialization
We need has_neumann=true to get the weak boundary integrals called. It
is initialized in problem->setup_ctx and used in SetupLibceed(). This is
a hack to always apply.
* examples/fluids: include kinetic energy in Blasius IC
* examples/fluids: Blasius quasi-2D (slip in z planes)
* feat: Add Exact_Channel function
* feat: Use Exact_Channel for IC and Inflow
* examples/fluids: Add channel example
* examples/fluids: Define mu in blasius.c, cleanup
* examples/fluid: Add Blasius solution calculator
* examples/fluids: Add blasius IC and BCs
* Convert to implicit TS
* examples/fluids: Update blasius.yaml
* Move to ChannelContext, refactor DC and newtonian
- Added a dedicated ChannelContext, which allows for user setting of
flow parameters and consistent sharing of parameters between
QFunctions (instead of hardcoding)
- Moved density current (DC) specific settings from newtonian.c
densitycurrent.c
* Make gravity into vector quantity
* Add in body force for channel
* examples/fluids: remove explicitly setting coordinate field
This is created automatically now by DMPlex and DMProjectCoordinates
breaks (localized) periodicity, resulting in a tangled mesh.
* examples/fluids: transpose flux Jacobian in SUPG stabilization
* examples/fluids: update docs commensurate with flux Jacobian transpose fix
* examples/fluids: work on docs for tau
* examples/fluids: Increase blasius Re, implement Xi to SUPG
- Increased the Uinf and mu by 4x for the blasius problem
- Implemented the calculation of Xi for the SUPG term in newtonian.h
* examples/fluids: Remove flux jacobian transpose
- Removed for both eulervortex.h and newtonian.h
* examples/fluids: Reset Newtonian unit scaling to neutral
- Note that this resets the scaling for the densitycurrent problem,
thus the examples (and possibly tests) will probably need to be
changed
* examples/fluids: fix PetscOptionsBegin for new PETSc
* feat: Add slanted domain top surface
* feat: Add graded mesh option for blasius
* fix: Correct inflow boundary condition handling
* feat: Move to blasius_context, add CLI options
* feat: Move Blasius to physical air properties
* fix: Blasius profile and mesh generation
- Add the correct float->int rounding
- Fix eta to a value after exceeding the table's bounds
fix: Add fix eta after exceeding table
* examples/fluids: Move to physical mu default, fix tests
* doc: Add minimum documentation for channel and blasius
* examples/fluids: Add primitive jacobian and tau
- Also add misc comments
* examples/fluids: propose alternative flux Jacobian via prim-to-conservative
* examples/fluids: Add PHASTA diagonal tau
* fix: Add back in timestep obtaining
* examples/fluids: Add analytic tractions to inflow and outflow
- This is a stop-gap until viscous flux can be computed properly on the
boundary from current solution.
- Tau constants in a state of flux still but this produced a decent v at
inflow and outflow, removing the steep dive caused by forcing
dv/dx=-du/dy from a zero traction of omission.
* examples/fluids: CLI options for diagonal c_tau's
* examples/fluids: Update dt via context labels
* feat: Add more blasius table points
* examples/fluids: Cleanup stab and adjust Ctau_E
* examples/fluids: Replace spatial tau with diagonal
* examples/fluids: Fix stab in Euler
- Initialize `stab` to zero, add sum over loop
* examples/fluids: Document diagonal tau formulation
* examples/fluids: Fix compiler warnings
* examples/fluids: check error codes and elide unused header
* examples/fluids: Correct blasius example CLI
- Also add mention of the `blasius.yaml` file
* examples/fluids: Add supg to default blasius.yaml
* examples/fluids: Use yaml for channel and blasius
- Instead of long CLI options
- Also cleaned up the yaml formatting
- Added Cartesian directions to the faceMarker names
* examples/fluids: Show example yamls in README
Co-authored-by: Jed Brown <jed@jedbrown.org>
Co-authored-by: Kenneth E. Jansen <Kenneth.Jansen@colorado.edu>
show more ...
|
| 727da7e7 | 17-Mar-2022 |
Jeremy L Thompson <jeremy@jeremylt.org> |
minor - update copyright headers |
| 3a8779fb | 05-Mar-2022 |
James Wright <james@jameswright.xyz> |
Extract generic Navier-Stokes code into 'newtonian.h' (#903)
* feat(fluids): Extract newtownian.h from DC problem
- Also trade out `int` for `StabilizationType` enum
* style: Fix parameter sp
Extract generic Navier-Stokes code into 'newtonian.h' (#903)
* feat(fluids): Extract newtownian.h from DC problem
- Also trade out `int` for `StabilizationType` enum
* style: Fix parameter spacing
* feat: Move generic setup from DC -> newtonian
- Includes moving from `DCContext` to `NewtonianIdealGasContext` at
appropriate locations
* feat: Add "still" IC for generic Newtonian IG problems
* feat: Move SetupContext from DC -> newtonian.c
* fix: Remove unused variables, general cleanup
* examples/fluids: remove unnecessary includes
* examples/fluids: copy declarations to make newtonian.h self-contained
* examples/fluids: full name for context
Co-authored-by: Jed Brown <jed@jedbrown.org>
show more ...
|
| 68ef3d20 | 02-Feb-2022 |
Leila Ghaffari <Leila.Ghaffari@colorado.edu> |
Move euler_outflow to eulervortex.h to make HIP happy. |
| 002797a3 | 11-Jan-2022 |
Leila Ghaffari <Leila.Ghaffari@colorado.edu> |
Set BCs in CL options
Factor out euler_outflow QFunction to be used in different problem cases |
| 05a512bd | 30-Dec-2021 |
Leila Ghaffari <Leila.Ghaffari@colorado.edu> |
Use DMCreate() to create mesh instead of DMPlexCreateBoxMesh() |
| 0df2634d | 11-Jan-2022 |
Leila Ghaffari <Leila.Ghaffari@colorado.edu> |
eulervortex: add test_5 - non-smooth cylinder |
| d8a22b9e | 01-Jan-2022 |
Jed Brown <jed@jedbrown.org> |
examples/fluids: tau as spatial criterion 2 of hughesetal2010
Testing traveling vortex with
$ build/fluids-navierstokes -problem euler_vortex -ts_adapt_monitor -lx 1000 -ly 1000 -lz 50 -dm_plex_box
examples/fluids: tau as spatial criterion 2 of hughesetal2010
Testing traveling vortex with
$ build/fluids-navierstokes -problem euler_vortex -ts_adapt_monitor -lx 1000 -ly 1000 -lz 50 -dm_plex_box_faces 20,20,1 -ts_adapt_safety 0.8 -implicit -snes_atol 1e-3 -ksp_atol 1e-4 -ksp_rtol 1e-3 -ts_type alpha -ts_dt 0.1 -ksp_type bcgs -pc_type lu -log_view -snes_monitor -ksp_monitor -snes_converged_reason -output_freq 1 -degree 1 -ts_max_time 5. -stab supg -snes_lag_jacobian 30 -snes_lag_jacobian_persists -snes_mf_operator
show more ...
|
| 139613f2 | 20-Dec-2021 |
Leila Ghaffari <Leila.Ghaffari@colorado.edu> |
fluids - fix flux Jacobian and add su/supg to euler_vortex |
| ae79e0ce | 10-Nov-2021 |
Jeremy L Thompson <jeremy@jeremylt.org> |
qf - drop unneeded guards on math.h |
| a515125b | 27-May-2021 |
Leila Ghaffari <49916147+LeilaGhaffari@users.noreply.github.com> |
Fluids - Refactor and add GPU support (#754)
* Initial commit for using PetscFunctionList in fluids example
* WIP: debugging
* Debug: initialize PetscFunctionList with NULL
* allocate memor
Fluids - Refactor and add GPU support (#754)
* Initial commit for using PetscFunctionList in fluids example
* WIP: debugging
* Debug: initialize PetscFunctionList with NULL
* allocate memory for context problem
* freed allocated memory
* WIP: fluids: split density current into new compilation unit
I have dropped last changes before this commit so there might be some
bugs
* Fixed bugs after dropping the commit containing unnecessary changes
* NS: dropped unused variable from User struct
* WIP: factored out DMAddBoundary() for density_current
* split advection and advection2d into separate compilation units as well
* fluids: added *.o to make clean
* removed bc from problemData
* style
* commented the error handlers and moved petsc options regarding the boundary conditions to each compilation unit
* call bc functions inside SetUpDM()
* Moved all bc related statements from SetUpDM() to each compilation unit
* examples/fluids/advection.h: style
* WIP: modified CeedQFunctionContexts
* FFR: By creating a struct for DC context, one of the last test crushed so I had to reverse it. This should be investigated later.
* style
* examples/navierstokes: Use heap memory for ctxSetup
* examples/fluids: WIP - reading arrays through cl options for DC is enabled by using double pointers but there is still a problem with unit conversions and also need to fix other structs
* style
* WIP: Trying to assign values to context data in each problem function
* bug: there is a problem in pointer to struct
* WIP: Everything seems to be working but it breaks and I haven't figured out the reason ...
* fixed typo
* comment out stuff that have been moved to densitycurrent.c
* WIP: The first two regression test pass. There is a problem with stabilization.
* style
* Fluids: QFContext -> Physics
* WIP: passing StabilizationType to Physics (but PETSc is not happy and it diverges for SU and SUPG)
* Initial commit for refactoring advection(2d)
* WIP: Advection is set up except for wind_type
* WIP: refactored advection2d; need to fix the BCs for translation and also passing implicit to advection correctly
* WIP: pass wind_type to all functions correctly but there is still a problem with BCs in the case of translation (changes are not applied to advection yet)
* Apply the same fixes for BCs in advection
* Fluids - Refactor: Moved warnings to advection(2d)
* Fluids - Refactor: remove dead code
* Fluids - Refactor: Move *.h to /qfunctions and *.c to /src
* style
* Fluids - Refactor: drop the supg regression test for now
We need to debug SU/SUPG for density_current. The test does not work.
* Fluids - Refactor: Fixed the double-pointer issue
* Fluids - Refactor: Assign ctxSetup->time = 0 inside each problem's *.c
* Fluids - Refactor: make implicit a member of Physics
* Fluids - Refactor: Add warning for the usage of explicit and supg
* Some comments and naming
* Merge main after v0.8 (#723)
* Fluids - Five regression tests added for euler_vortex
* Fluids - Drop some of the regression tests for now (Needs to get fixed)
* Fluids - Moved all functions to their corresponding source files
* Fluids - move problem source files to /problems
* Fluids - drop dead regression test reference files
* Fluids - more consistent file names
* Fluids - drop dead code and comments
* Fluids - removed CreateVectorFromPetscVec() since it was only used once
* Fluids - created AppCtx for cl option variables and moved cl options to a cloption.c
* Fluids: change style of AppCtx
* style
* Fluids: /src -> /utils
* Created CreateDistributedDM() and some style
* Fluids - create RegisterProblem()
* style - minor
* style - minor
* Fluids - some more C style
* Fluids - /utils -> /src
* Fluids - create VizRefineDM() for viz_refine
* Fluids: some style and name change
* Fluids - style
* Fluids - remove the second ceed initialization
* Fluids - Created CeedData and SetupLibCEED()
* Fluids - create SetupContextForProblems()
* Fluids - Assign structs after they are created
* Fluids - style, minor
* Fluids - created RegressionTests_NS
* Fluids - created GetError_NS()
* Fluids - created PrintOutput_NS()
This processes bash output except for the problem summary which will be
included after mem_type is managed properly.
* Fluids - remove unused variables
* Fluids - created TSSolve_NS() which creates, sets up, and solves ts
* Fluids: Fixed a bug caused by merging#714
* Fluids - style
* Fluids - created SetupICsFromBinary() for case of -continue
* Fluids - create SetBCsFromICs_NS()
* Fluids - default degree had is 1 not 2
* Fluids: clean-up
* Fluids: style - minor
* Fluids - drop redundant operation
* Fluids: clean-up SetupLibCEED()
* Fluids: style - minor
* Fluids: WIP - C style
* Fluids: style - minor
* Fluids: move ceed vector creation to SetupLibCEED()
* Fluids: WIP - clean-up CreateOperatorForDomain()
* Fluids: major clean-up in CreateOperatorForDomain()
* Fluids: style - minor
* Fluids: drop VectorPlacePetscVec()
* Fluids: move ICs_FixMultiplicity() to misc.c
* Fluids: WIP - C style
* Fluids: fix merge conflict after 7b616370c27647626988b5d34b0f4eaa81450ad4
* Fluids: drop unused function call DMLocalizeCoordinates()
* Fluids: replace user requested memType with MemTypeP2C()
* Fluids: C style
* Fluids: Q->num_Q (Q (# qpts) and Q (global state vector) were confusing my fresh petsc config)
* Fluids: WIP - add GPU vectors
* Fluids: Fixed the memory leak caused by Physics struct
* Fluids: style -minor
* Fluids: no need for casting
* Fluids: Fix mem leak (q0_ceed had to be destroyed at the end of navierstokes.c)
* Fluids: Fixed all mem leaks
* Fluids: Set VecType for dm_hierarchy
* Fluids/doc: fix style
* Fluids: fix missing VecRestoreArray()
* Fluids: clean-up ComputeLumpedMassMatrix()
* Fluids: Cleanup ICs_FixMultiplicity()
* Fluids: WIP - cleanup setupts.c
* Fluids: style - minor
* Fluids: Create element coord ceed vector locally and drop it from CeedData
* Fluids: fix some todos
* Fluids: drop unused code for EULER BCs
* Fluids: PetscMalloc1 -> PetscCalloc1
* Fluids - Define BCs for ADVECTION(2D) for all cases without having the user specify them and change the regressions accordingly
ToDo: For some reason I can't create new regression tests for explicit scheme.
* Fluids - Define problem->print_info() for each problem
* Fluids: Shorten some problem specific command line variables & style
* Fluids - Cleanup BCs in the translation mode
* Fluids - cleanup
* Fluids - more cleanup in BCs
* Fluids - Updated doc, README, and cleanup in the code and cl options
* Fluids - add more regression tests
* Fluids - Define tolerance for the convergence test
* Fluids: include x_coord in CeedData
* wip - gpu
Revert "Fluids: include x_coord in CeedData"
I had to revert this commit since it crashes DC
* style
* Fluids - remove unused variables
* Fluids - fix unused function warnings
* Fluids - fix the remaining warnings
* Fluids - style
* Fluids - add missing licence
* Fluids - bring back contexts to the QFunction header files
* Fluids - transfer QFunctions for boundary integral to their corresponding setupgeo(2d).h header files and add description for Setup2d
* fluids - fix context data sizes
* GPU - add helper function macro
* ex - use consistent MPI info output
* GPU - improve CEED_QFUNCTION_HELPER macro, more flexible
* Fluids - turn on some gpu tests
* Fluids - bring back element coordinate to CeedData
* Fluids - cleanup
* qfunction - clean up helper function macro
* Fixed the remaining conflicts from #769 (helped-by: @rezgarshakeri)
Co-authored-by: Jed Brown <jed@jedbrown.org>
Co-authored-by: jeremylt <thompson.jeremy.luke@gmail.com>
show more ...
|