Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-06-24 | Add OpenMP pragmas to independently processable coupling loops | Adrian Kummerlaender | |
The rudimentary and highly inefficicient OpenMPI "support" of the current grid refinement implementation is not something you want to actually use. Making this performant requires at least: * Refinement-aware load balancing * Load-balancing aware coupler communication (i.e. not dumbly communicating coupling information to processors that process neither the relevant coarse not the fine grid) Until this issue is solved OpenMP delivers acceptable results on shared-memory platforms. e.g. processing 13500 refined grid points in `apps/adrian/cylinder2d/optimized_grid` takes about 1.3 times as long as processing the same cell count in a uniform grid. | |||
2019-06-24 | Add refined N=20 cylinder2d example for reference | Adrian Kummerlaender | |
2019-06-24 | Improve Knudsen refinement criterion functor | Adrian Kummerlaender | |
i.e. output cell-local quality information by default | |||
2019-06-24 | Move NamedType template into separate header | Adrian Kummerlaender | |
2019-06-24 | Document visualization of grid refinement hierarchies | Adrian Kummerlaender | |
2019-06-24 | Initial extraction of common cylinder2d model setup functions | Adrian Kummerlaender | |
I am not quite happy with how this looks right now but at least both validation examples are for the most part condensed to only differ in their refinement setup. Perhaps a SchaeferTurek-specific "Solver" would further improve reproducibility? | |||
2019-06-24 | Automatically disable refined area in parent geometry | Adrian Kummerlaender | |
2019-06-24 | Continue cylinder2d refinement setup encapsulation | Adrian Kummerlaender | |
2019-06-24 | Export and plot cylinder2d measurements | Adrian Kummerlaender | |
2019-06-24 | Automatically apply prepareLattice for all grids | Adrian Kummerlaender | |
2019-06-24 | Add support for calling a function for each subgrid of Grid2D | Adrian Kummerlaender | |
2019-06-24 | Restructure refined cylinder2d example folders | Adrian Kummerlaender | |
2019-06-24 | Add cylinder2d resolution redistribution example | Adrian Kummerlaender | |
i.e. cylinder2d_optimized_grid contains roughly as many grid cells as a uniformly resolved N=12 lattice but models the cylinder in more detail and is more stable. | |||
2019-06-24 | Extract cylinder2d setup with refined outflow | Adrian Kummerlaender | |
Reproducing past results for new plots is otherwise getting quite annoying. | |||
2019-06-24 | Replicate SchaeferTurek 2D-2 setup in refined cylinder2d | Adrian Kummerlaender | |
Weirdly it seems easier to get reasonably close values for the unsteady flow. Results for the steady flow seem to get worse when increasing grid resolution even in uniform grids. | |||
2019-06-24 | Revamp parametrization of refined cylinder2d geometry | Adrian Kummerlaender | |
Finally seems to stop mixing up material numbers for every other resolution I try it out with. Cylinder diameter is now actually set to 0.1m as called for by [SchaeferTurek96]. | |||
2019-06-24 | Add ceil function for our Vector class | Adrian Kummerlaender | |
2019-06-24 | Allow customization of Grid2D's physical dimensionalization | Adrian Kummerlaender | |
2019-06-24 | Add domain-restricted material number reset to SuperGeometry2D | Adrian Kummerlaender | |
Makes it easier to exclude refined areas | |||
2019-06-24 | Report pressure drop and lift of refined cylinder | Adrian Kummerlaender | |
2019-06-24 | Adjust cylinder2d refinement structure | Adrian Kummerlaender | |
Required to both increase cylinder discretization detail and fix cell count to a uniform N=9 grid. | |||
2019-06-24 | Report total number of active cells in refinement hierarchy | Adrian Kummerlaender | |
2019-06-24 | Move geometry print to prepareLattice | Adrian Kummerlaender | |
This way statistics reflect the cells disabled by refinement. | |||
2019-06-24 | Manage dynamics, boundary condition memory in Grid2D | Adrian Kummerlaender | |
Mainly to further declutter simulation and refinement setup | |||
2019-06-24 | Refine cylinder2d to stay stable even at very low resolutions | Adrian Kummerlaender | |
Somewhat fiddled together but works as expected. Refinement areas are informed by Knudsen metric results. The key is to refine the outflow. Sadly this requires refinement-overlap-crossing boundary conditions. Interface for detailed (i.e. cell-relative) grid refinement control still has room for improvement. Mixing physical indicators and cell alignment requirements is problematic. | |||
2019-06-24 | Note pressure, velocity error norms in refined poiseuille2d | Adrian Kummerlaender | |
2019-06-24 | Tidy up refined cylinder2d | Adrian Kummerlaender | |
2019-06-24 | Add Knudsen functor to locate refinement areas | Adrian Kummerlaender | |
2019-06-24 | Setup geometry relative to cylinder diameter | Adrian Kummerlaender | |
2019-06-24 | Use velocity walls in refined Poiseuille2d | Adrian Kummerlaender | |
2019-06-24 | Attenuate cylinder2d inflow velocity increase | Adrian Kummerlaender | |
2019-06-24 | Verify mass loss when using linear interpolation for C2F | Adrian Kummerlaender | |
2019-06-24 | Add named types to Grid2D constructor | Adrian Kummerlaender | |
This allows for readable differentiation between constructor overloads. | |||
2019-06-24 | Increase refined cylinder2d Reynolds number to 1000 | Adrian Kummerlaender | |
2019-06-24 | Fix non-equilibrium scaling factor | Adrian Kummerlaender | |
2019-06-24 | Restore original bisected poiseuille flow refinement test case | Adrian Kummerlaender | |
2019-06-24 | Rename example to match its content, extract poiseuille2d | Adrian Kummerlaender | |
2019-06-24 | Interpolate vectors instead of scalars | Adrian Kummerlaender | |
Same result, nicer code | |||
2019-06-24 | Use available method to align Coupler2D origin to grid | Adrian Kummerlaender | |
2019-06-24 | Tidy up function parameters by accepting Grid2D | Adrian Kummerlaender | |
2019-06-24 | Remove unnecessary managed pointers | Adrian Kummerlaender | |
2019-06-24 | Improve grid refinement interface | Adrian Kummerlaender | |
By deriving RefiningGrid2D from Grid2D to provide methods specific to refining subgrids. | |||
2019-06-24 | Move distribution scaling factor to Coupler2D | Adrian Kummerlaender | |
Scaling factor is specific to the refinement method implemented by the coupler. | |||
2019-06-24 | Fix grid alignment of refinement area | Adrian Kummerlaender | |
2019-06-24 | Cache lattice positions for grid coupling | Adrian Kummerlaender | |
2019-06-24 | Add hacky MPI support for grid refinement | Adrian Kummerlaender | |
Works but is nowhere near anything one could consider good. Obvious issues: * More than one cuboid per grid makes it harder to determine the next lattice cell to be coupled * i.e. currently lattice positions are determined ad hoc by resolving their physical position * Coupling is not actually parallelized * All coupling lines are traversed by all processes, way to much communication * Load balancing and cuboid decomposition doesn't care about refinement * ideally refined cuboids should be computationally near their coarse _parent_ cuboids The first two isses should be fixable with a reasonable amount of work. This sadly doesn't apply in any form to the last issue. | |||
2019-06-24 | Fix, test recursive grid refinement | Adrian Kummerlaender | |
2019-06-24 | Modifiy params to promote vortex street formation | Adrian Kummerlaender | |
2019-06-24 | Unify lattice preparation for both grids | Adrian Kummerlaender | |
2019-06-24 | Further indicatorize geometry setup | Adrian Kummerlaender | |
Grid refinement is at its easiest when discrete materials are set using analytical - i.e. resolution independent - indicators. |