summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-06-24Add OpenMP pragmas to independently processable coupling loopsAdrian 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-24Add refined N=20 cylinder2d example for referenceAdrian Kummerlaender
2019-06-24Improve Knudsen refinement criterion functorAdrian Kummerlaender
i.e. output cell-local quality information by default
2019-06-24Move NamedType template into separate headerAdrian Kummerlaender
2019-06-24Document visualization of grid refinement hierarchiesAdrian Kummerlaender
2019-06-24Initial extraction of common cylinder2d model setup functionsAdrian 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-24Automatically disable refined area in parent geometryAdrian Kummerlaender
2019-06-24Continue cylinder2d refinement setup encapsulationAdrian Kummerlaender
2019-06-24Export and plot cylinder2d measurementsAdrian Kummerlaender
2019-06-24Automatically apply prepareLattice for all gridsAdrian Kummerlaender
2019-06-24Add support for calling a function for each subgrid of Grid2DAdrian Kummerlaender
2019-06-24Restructure refined cylinder2d example foldersAdrian Kummerlaender
2019-06-24Add cylinder2d resolution redistribution exampleAdrian 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-24Extract cylinder2d setup with refined outflowAdrian Kummerlaender
Reproducing past results for new plots is otherwise getting quite annoying.
2019-06-24Replicate SchaeferTurek 2D-2 setup in refined cylinder2dAdrian 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-24Revamp parametrization of refined cylinder2d geometryAdrian 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-24Add ceil function for our Vector classAdrian Kummerlaender
2019-06-24Allow customization of Grid2D's physical dimensionalizationAdrian Kummerlaender
2019-06-24Add domain-restricted material number reset to SuperGeometry2DAdrian Kummerlaender
Makes it easier to exclude refined areas
2019-06-24Report pressure drop and lift of refined cylinderAdrian Kummerlaender
2019-06-24Adjust cylinder2d refinement structureAdrian Kummerlaender
Required to both increase cylinder discretization detail and fix cell count to a uniform N=9 grid.
2019-06-24Report total number of active cells in refinement hierarchyAdrian Kummerlaender
2019-06-24Move geometry print to prepareLatticeAdrian Kummerlaender
This way statistics reflect the cells disabled by refinement.
2019-06-24Manage dynamics, boundary condition memory in Grid2DAdrian Kummerlaender
Mainly to further declutter simulation and refinement setup
2019-06-24Refine cylinder2d to stay stable even at very low resolutionsAdrian 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-24Note pressure, velocity error norms in refined poiseuille2dAdrian Kummerlaender
2019-06-24Tidy up refined cylinder2dAdrian Kummerlaender
2019-06-24Add Knudsen functor to locate refinement areasAdrian Kummerlaender
2019-06-24Setup geometry relative to cylinder diameterAdrian Kummerlaender
2019-06-24Use velocity walls in refined Poiseuille2dAdrian Kummerlaender
2019-06-24Attenuate cylinder2d inflow velocity increaseAdrian Kummerlaender
2019-06-24Verify mass loss when using linear interpolation for C2FAdrian Kummerlaender
2019-06-24Add named types to Grid2D constructorAdrian Kummerlaender
This allows for readable differentiation between constructor overloads.
2019-06-24Increase refined cylinder2d Reynolds number to 1000Adrian Kummerlaender
2019-06-24Fix non-equilibrium scaling factorAdrian Kummerlaender
2019-06-24Restore original bisected poiseuille flow refinement test caseAdrian Kummerlaender
2019-06-24Rename example to match its content, extract poiseuille2dAdrian Kummerlaender
2019-06-24Interpolate vectors instead of scalarsAdrian Kummerlaender
Same result, nicer code
2019-06-24Use available method to align Coupler2D origin to gridAdrian Kummerlaender
2019-06-24Tidy up function parameters by accepting Grid2DAdrian Kummerlaender
2019-06-24Remove unnecessary managed pointersAdrian Kummerlaender
2019-06-24Improve grid refinement interfaceAdrian Kummerlaender
By deriving RefiningGrid2D from Grid2D to provide methods specific to refining subgrids.
2019-06-24Move distribution scaling factor to Coupler2DAdrian Kummerlaender
Scaling factor is specific to the refinement method implemented by the coupler.
2019-06-24Fix grid alignment of refinement areaAdrian Kummerlaender
2019-06-24Cache lattice positions for grid couplingAdrian Kummerlaender
2019-06-24Add hacky MPI support for grid refinementAdrian 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-24Fix, test recursive grid refinementAdrian Kummerlaender
2019-06-24Modifiy params to promote vortex street formationAdrian Kummerlaender
2019-06-24Unify lattice preparation for both gridsAdrian Kummerlaender
2019-06-24Further indicatorize geometry setupAdrian Kummerlaender
Grid refinement is at its easiest when discrete materials are set using analytical - i.e. resolution independent - indicators.