| #
ba6664ae
|
| 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 ...
|
| #
e71202f6
|
| 13-May-2022 |
Jed Brown <jed@jedbrown.org> |
examples/fluids: fix sign and magnitude of channel flow body force
Add -body_force_scale, which can be -1 to test that a flow reversal builds to the same steady profile with opposite sign.
I also c
examples/fluids: fix sign and magnitude of channel flow body force
Add -body_force_scale, which can be -1 to test that a flow reversal builds to the same steady profile with opposite sign.
I also changed the domain size (reducing Reynolds number from 4500 to 45) so flow reversal can be observed reasonably quickly when desired.
show more ...
|
| #
0228c988
|
| 10-May-2022 |
Jed Brown <jed@jedbrown.org> |
Merge pull request #958 from CEED/jed/fluids-cleaning
examples/fluids cleaning
|
| #
a0add3c9
|
| 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.
|
| #
841e4c73
|
| 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.
|
| #
91e5af17
|
| 09-May-2022 |
Jed Brown <jed@jedbrown.org> |
examples/fluids: create struct in Problem for each qfunction + related
This is a cosmetic step toward better modularity.
|
| #
88626eed
|
| 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 ...
|