Skip to content

Introducing mixed PLIC/PPIC capabilities in nga2#62

Open
fabienevrard wants to merge 92 commits intodesjardi:developfrom
cmfr-ae-illinois:variant
Open

Introducing mixed PLIC/PPIC capabilities in nga2#62
fabienevrard wants to merge 92 commits intodesjardi:developfrom
cmfr-ae-illinois:variant

Conversation

@fabienevrard
Copy link
Collaborator

$\textbf{\color{#000000}{Content of the pull request}}$

  • In the vfs_class:
    • Replacement of all references to PlanarSep_type (the Fortran version of the IRL PlanarSeparator class) by the new SeparatorVariant_type (the Fortran version of the IRL SeparatorVariant class). This enables VOF advection using a mixed PLIC/PPIC reconstruction.
    • New interface reconstruction function called build_jibben, which uses Jibben's parabolic reconstruction algorithm to reconstruct a PPIC interface.
  • A new I/O class that uses the VTK XML file formats:
    • The grid data is written as a list of .vtr files (i.e., VTK's RectilinearGrid format).
    • The surface data is written as a list of .vtu files (i.e., VTK's UnstructuredGrid format). This supports the new VTK_BEZIER_TRIANGLE cell type, enabling the cheap approximation of PPIC surfaces. The surface can be refined directly within Paraview by increasing the Nonlinear Subdivision Level of the PLIC object.
    • The particle data is written as a list of .vtp files (i.e., VTK's PolyData format).
    • These data files are collected into .pvd header files, a Paraview-specific file format that enables their time collection/synchronization.
  • A new example called drop_translation that uses Jibben's algorithm to reconstruct a PPIC interface, as well as the new vtk_class to output all data.

$\textbf{\color{#f5750e}{Important compilation information}}$

In order to compile, the code needs to be linked to this new version of IRL: https://github.com/cmfr-ae-illinois/interface-reconstruction-library/tree/variant

Note that this version of IRL requires GNU's QuadMath library. On MacOS, this requires compiling IRL using the GCC C/C++ compilers (clang will fail).

fabienevrard and others added 15 commits May 10, 2024 10:32
…torVariant". This new variant type can contain a PlanarSeparator (thus the current code works seemlessly), but will also enable new types such as Paraboloid or Cylinder. More on this in future commits.
…re not supported by default by clang so it might be needed to link to libstdc++
… but somehow paraview struggles to synchronize times between the .case and the .pvd files, which is annoying
…data is written into the binary .vtr format using the parallel MPI routines. The surface and particle data is written in binary .vtu and .vtp files, with each proc writing its own data sequentially. All timesteps are grouped in single .pvd files (paraview wrapper).
Pulling Olivier's develop branch into last version of the variant branch
…lass. The only remaining difference lies in the array polyConn being 0-indexed instead of 1-indexed previously
…e polygonal surface output to the new indexing of polyConn
desjardi and others added 30 commits September 10, 2025 11:40
…ing flotsams

Testing Chase's new implicit Prelax code - should be more stable and is certainly simpler
Fixed a coupling bug in shock_droplet
Implemented more dynamic remeshing in shock_droplet
Coupler now uses a tolerance to avoid missing a layer of cells
Higher granularity for interface reconstruction tools
* Use 2D FFTW and DDADI instead of Hypre

* Updates to LPT class

Use DDADI when filtering. Remove unused vorticity input. Added a PTKE subroutine.

* CIT example cases

* Helmholtz decomposition of a velocity field.

* Riser case (particle-laden pipe flow)

* Updated inverse_matrix to not rely on LAPACK

* Basic SPH implementation, can be improved (if you want to run SPH...)

* Classic wavy wall channel case

* Two new particle cases: turbidity current and subaqueous channel. Added uGradU routine to low Mach.

* Added stair-step option in ibconfig (I used to use this for ghost-point IBM)

* Ghost point IBM for staggered grid

* Added pressure and density to tracer class

* Fixed but in inverse_matrix

* A inverse was transposed

* Optimized and tested inverse_matrix function

* Shock/cylinder case using ghost-point IBM

* Small changes to ib shock case

* Shock-particle case that combines LPT with new compressible solver

* Some clean up and bug fixes

* Scalable approach for initializing particles

* Monitor max Rep, Ma, and Kn

* fixed minor bug

* Fixed proc boundary bug

* Compute IBM force and fixed bug when computing stress

* Update internal energy to include volume fraction and pDV work

* This form is only 1st order in time but conservative

* take visc to be dynamic viscosity and update visc based on Sutherland's law

* Fixed bug in thermal conductivity

* Added heat flux

* Compute cell-centered IBM force

* Un needed heaviside

* Removed wall clock timers to clean up cases

* fixed typo

* Added some timers to ib_shock

* We now have temperature-dependent viscosity, heat flux, and proper energy coupling

* Created RK4 integration for particles, we now have 4th-order coupling!

* Make VF optional in solver RHS

* Removed unused variable

---------

Co-authored-by: jessecaps <jcaps@umich.edu>
Added lpt and associated stuff to shock_drop
Remeshing is now done at the very end of the time step to avoid empty visualization fields
Added coupling in +x direction, improves the wake quite a bit
Added Zonghao's more aggressive CCL sameness test
Increased volume for LPT transfer to 64*dx^3
- removed clipping of neumann for shockdrop (improves wake significantly)
- removed application of bconds for shockdrop (improves wake a little more)
- modified transfer parameters (still large drops, but no super-tiny drop)
- we probably should limit ourselves to 3x refinement ratio: input reflects that
- finally, attempted to put lad in visc as well - that seems to improve things a lot. We may want to consider that.
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.

2 participants