| #
c766f598
|
| 22-Jun-2022 |
James Wright <james@jameswright.xyz> |
Merge pull request #980 from CEED/jrwrigh/fluids_tractionbc
|
| #
e8b03fee
|
| 03-Jun-2022 |
James Wright <james@jameswright.xyz> |
examples/fluids: Pass solution gradient to boundary QFs
|
| #
3c4b7af6
|
| 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
|
| #
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 ...
|
| #
0228c988
|
| 10-May-2022 |
Jed Brown <jed@jedbrown.org> |
Merge pull request #958 from CEED/jed/fluids-cleaning
examples/fluids cleaning
|
| #
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.
|
| #
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 ...
|
| #
ce18bed9
|
| 17-Mar-2022 |
Jeremy L Thompson <jeremy@jeremylt.org> |
Merge pull request #858 from CEED/jeremy/dump-copy-stuff
Strip redundant/outdated license info duplication
|
| #
3d8e8822
|
| 17-Mar-2022 |
Jeremy L Thompson <jeremy@jeremylt.org> |
minor - update copyright headers
|
| #
88b783a1
|
| 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 ...
|
| #
5efe7942
|
| 02-Feb-2022 |
Leila Ghaffari <49916147+LeilaGhaffari@users.noreply.github.com> |
Merge pull request #881 from CEED/leila/fluids-mesh
Fluids - Update mesh creating and remove problem-specific BCs
|
| #
55e76554
|
| 02-Feb-2022 |
Leila Ghaffari <Leila.Ghaffari@colorado.edu> |
Move euler_outflow to eulervortex.h to make HIP happy.
|
| #
2fe7aee7
|
| 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
|
| #
73bb2039
|
| 14-Jan-2022 |
Jed Brown <jed@jedbrown.org> |
Merge pull request #865 from CEED/leila/fluid-stab
Fluids - Fix bug in Stabilization (SU/SUPG)
|
| #
32f166c6
|
| 11-Jan-2022 |
Leila Ghaffari <Leila.Ghaffari@colorado.edu> |
eulervortex: add test_5 - non-smooth cylinder
|
| #
932417b3
|
| 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 ...
|
| #
e6225c47
|
| 20-Dec-2021 |
Leila Ghaffari <Leila.Ghaffari@colorado.edu> |
fluids - fix flux Jacobian and add su/supg to euler_vortex
|
| #
098b6781
|
| 18-Nov-2021 |
Jeremy L Thompson <jeremy@jeremylt.org> |
Merge pull request #841 from CEED/jeremy/qf-multi-source
QFunction multi source support
|
| #
08849eac
|
| 10-Nov-2021 |
Jeremy L Thompson <jeremy@jeremylt.org> |
qf - drop unneeded guards on math.h
|
| #
77841947
|
| 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 d63eecaab22a26d3072677a1b66c0cf77aa9009d
* 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 ...
|