| a6e8f989 | 20-Jun-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Add STGInflow Jacobian QFunction |
| 2be05fbd | 14-Jun-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Protect against divide-by-0
- When running with strong enforced stg, the spectrum calc can try and divide by 0 (distance to the wall) - This behavior doesn't break anything per
examples/fluids: Protect against divide-by-0
- When running with strong enforced stg, the spectrum calc can try and divide by 0 (distance to the wall) - This behavior doesn't break anything persay, but this commit makes it much easier to debug floating point exceptions.
show more ...
|
| 43bff553 | 11-Jun-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: ICs from STG Profile |
| 68ae065a | 07-Jun-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Viscous flux for BoundaryIntegral jacobian |
| b01ba163 | 10-Jun-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Add viscous flux to POutflow Jacobian |
| e6b47afb | 07-Jun-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Move POutflow_Jac to State variables
- Verified to be exactly the same as before, just using the State structs and methods |
| d3b25f3a | 06-Jun-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Add viscous flux to StrongInflowBI |
| 25bfcc41 | 06-Jun-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Add viscous flux to POutflow BC |
| 04b9037b | 06-Jun-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Move blasius outflow to newtonian.h |
| 8085925c | 06-Jun-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Move StrongSTGbcFunc to newtonian.h
- Requires significant changes to how the stg_context is passed to the the strong bc |
| 475b2820 | 05-Jun-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Abstract State and helper funcs |
| dd64951c | 03-Jun-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Pass solution gradient to boundary QFs |
| f5d61e2f | 04-Jun-2022 |
Jed Brown <jed@jedbrown.org> |
Merge branch 'main' into jed/fluids-jacobian
* main: (24 commits) op - more data in view examples/fluids: Test for strong STG examples/fluids: Add strong STG to documentation examples/fluids
Merge branch 'main' into jed/fluids-jacobian
* main: (24 commits) op - more data in view examples/fluids: Test for strong STG examples/fluids: Add strong STG to documentation examples/fluids: Add option for BC from ICs examples/fluids: Correct for non-origin domains examples/fluids: Implement Strong STG BC examples/fluids: Minor stg improvements/style examples/fluids: Add Strong STG functions examples/fluids: Fix memory leak in STG GPU assembly: fix potential basis loading offset error tests - more complex source include testing pc - fix qf fallback cloning restr - relax comp_stride check for num_comp == 1 make style pc - avoid direct access of basis data in multigrid creation ceed - refactor fallback Ceed creation into separate fn minor - homogonize int vs CeedInt basis - add input checks restr - add input checks on element restrictions examples/fluids: Update STG test for new mesh feats ...
show more ...
|
| ef2c71fd | 02-Jun-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Correct for non-origin domains
- Add correction for if domain is not set at the origin |
| 0a8dc919 | 24-May-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Minor stg improvements/style |
| e6098bcd | 24-May-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Add Strong STG functions |
| 2556a851 | 24-May-2022 |
Jed Brown <jed@jedbrown.org> |
examples/fluids: fix zero-size Jacobian data and STG
Use -snes_fd_color for now because STG inflow Jacobian isn't implemented. |
| eef2387d | 23-May-2022 |
Jed Brown <jed@jedbrown.org> |
Merge branch 'main' into jed/fluids-jacobian
* main: Fluids - Add STG inflow (#868) ci - fix Nek5000 testing |
| 493642f1 | 22-May-2022 |
James Wright <james@jameswright.xyz> |
Fluids - Add STG inflow (#868)
* doc(fluids): Add STG equations
* doc(fluids): Add basic data flow for STG
* doc(fluids): Add Shur et al. 2014 STG paper to bib
* doc(fluids): Specify STG in
Fluids - Add STG inflow (#868)
* doc(fluids): Add STG equations
* doc(fluids): Add basic data flow for STG
* doc(fluids): Add Shur et al. 2014 STG paper to bib
* doc(fluids): Specify STG inputs files, misc additions
* doc(fluids): Add intro for STG section
* fix(fluids): Add #include ceed.h for qfunctions
- In the spirit of "include what you use"
* feat(fluids): Start work on stg_shur14.h
* doc-fix: Correct kappa_min definition
* Move STG setup functions to problems/stg_shur14
* feat: Add cholesky decomposition function
* fix: Correct stg_ctx malloc, reorganize creation
Co-authored-by: Jed Brown <jed@jedbrown.org>
* fix(fluids): Correct return values of functions
* style: Fix up style
* feat(fluids): Get file paths from PetscOptions
- Also convert SetupSTGContext to return PetscErrorCode
* fix(fluids): Correct stg_ctx dereferencing
- Also move to size_t for type of the offsets
* feat(fluids): Add funcs for processing STG*.dat files
* feat(fluids): Move to PetscOptions* for STG flags
* feat: Use `PetscMax` instead of macro
* fix(fluids): Correct/Refactor file reading functions
- Move to `PetscSynchronizedFGets`
- Remove `inline`
- Pass `comm` between functions
- Add `OpenPHASTADatFile` to DRY
* docs(fluids): Fix equation typo
* fix(fluids): Correct calculation of kappa
* feat(fluids): Complete STGShur14_Calc
* feat(fluids): Add InterpolateProfile helper func
* feat(fluids): Add CalcSpectrum helper func
* feat(fluids): Add to STGShur14_Calc qfunction
* fix: Add M_PI, Update SETERRQ functions
- Also update style
* fix: Correct interpolation outside of datarange
* fix: Add missing definition for ke in CalcSpectrum
* feat: Migrate context and func signatures, Misc
- Create SetupSTGContext to be run in another Setup_____Context
function
- Migrate STGShur14Context, CreateSTGContext, and SetupSTGContext
signatures to navierstokes.h
- Add STG contexts to Physics and CeedData
- Add missing CHKERRQ to PetscFClose
- Move to SPDX license headers
* examples/fluids: Pass solution time via context label
* feat: Implement STG boundary integral
- Add theta0 and implicit members to STGShur14Context
- Tested via implementation to the blasius BL problem (though this will
probably go against the code history)
* feat: Fix STG Stuff
* feat: Implement STG inflow for blasius BL
- Note that fluctuations are turned off in this case
* examples/fluids: Add stg_mean_only flag
* examples/fluids: Check cholesky decomp for nans
- Also correct locaiton of cholesky decomposition in ReadSTGInflow()
* examples/fluids: Correct STG documentation
- Missing a 2 sqrt(3/2) factor and didn't take square root of q
* examples/fluids: Fix STGShur14_Calc
- Given the calculated spectrum, calculation of v' and u' verified
against python implementation (which was validated previously against
PHASTA)
* examples/fluids: Calc dXdx for boundary QFunctions
- Also calculate h from the dXdx in STGShur14_Inflow
- Replace h[0] result with constant dx spacing
* examples/fluids: Fix STG Spectra calcualtion
* examples/fluids: Fix build errors
- Ran into an include cycle collision that resulted in over-defining
SetupContext in advection.c
- newtonian_types.h (which has SetupContext defined) ->
stg_shur14_type.h -> navierstokes.h -> advection.c
* examples/fluids: Update and fix documentation
* examples/fluids: Correct dXdx comment, leave TODO
Co-authored-by: Jed Brown <jed@jedbrown.org>
* examples/fluids: Minor bib citation edits
Co-authored-by: Jed Brown <jed@jedbrown.org>
* examples/fluids: Add STGInflow.dat, fix blasius.yaml
* examples/fluids: int -> PetscInt | CeedInt
* examples/fluids: Style
* examples/fluids: Make Boolean names verb_noun format
- Also changes the stg flag to `-stg_use`
* examples/fluids: Add STG test
* examples/fluids: Style fix up
* examples/fluids: Update docs
* examples/fluids: Implement weakT option for STG
* examples/fluids: Fix casting for ROCm
* examples/fluids: avoid PETSc dependency in qfunctions
* examples/fluids: header cleanup
* backends/hip: avoid redundant inline
* examples/fluids: avoid VLA in qfunctions
GPUs don't like VLA and some compilers reject it when targeting GPUs.
* examples/fluids: Create STG_NMODES_MAX
* examples/fluids: Refactor stg setup out of blasius.c
* examples/fluids: Fix misc GPU bugs
Co-authored-by: Jed Brown <jed@jedbrown.org>
show more ...
|
| 9abe94a0 | 16-May-2022 |
Jed Brown <jed@jedbrown.org> |
examples/fluids: update Blasius inflow/outflow viscous for arbitrary normal |
| f0b65372 | 13-May-2022 |
Jed Brown <jed@jedbrown.org> |
examples/fluids: add IJacobian for SUPG
I think this is exact for Galerkin on channel.yaml and blasius.yaml. Specifically, SNES converges almost perfectly in this test than when -snes_mf_operator is
examples/fluids: add IJacobian for SUPG
I think this is exact for Galerkin on channel.yaml and blasius.yaml. Specifically, SNES converges almost perfectly in this test than when -snes_mf_operator is added.
-options_file examples/fluids/channel.yaml -snes_monitor -ksp_converged_reason -stab none -ts_max_steps 3 -newtonian_unit_tests -ksp_rtol 1e-10 -order 2 -ts_dt 3e-6 -pc_type lu
I say "think" because something is fishy with the viscous energy term velocity*stress. If I disable that term, then convergence is clearly better with the analytic Jacobian (makes sense because it's accuracy is machine epsilon) than with -snes_mf_operator. This is unexpected, but the difference is near the limit of numerical stability so I'm not confident it's wrong. Also, the term itself is so simple.
The Jacobian is inexact for SUPG in that Tau_d is frozen.
WIP: examples/fluids: support MatShell and Blasius_Inflow_Jacobian
show more ...
|
| 752f40e3 | 12-May-2022 |
Jed Brown <jed@jedbrown.org> |
examples/fluids: record state and tau in preparation for Jacobian
Change notation from dq to Grad_q so that dq can be used consistently as variations. |
| 2f7ce6c1 | 11-May-2022 |
Jed Brown <jed@jedbrown.org> |
examples/fluids: small consolidation |
| c1a52365 | 11-May-2022 |
Jed Brown <jed@jedbrown.org> |
examples/fluids: factor Newtonian with better helpers |
| c58dce4f | 11-May-2022 |
Jed Brown <jed@jedbrown.org> |
examples/fluids: avoid pow(double, int) due to CUDA_ERROR_INVALID_PTX
NVRTC with various CUDA versions 11.2 to 11.6 return CUDA_ERROR_INVALID_PTX when calling pow(double, int) from kernels. Typicial
examples/fluids: avoid pow(double, int) due to CUDA_ERROR_INVALID_PTX
NVRTC with various CUDA versions 11.2 to 11.6 return CUDA_ERROR_INVALID_PTX when calling pow(double, int) from kernels. Typicially pow(x, 2.) is optimized to x*x at -O1 and above with gcc, but pow(x, 4.) is not optimized.
show more ...
|