<feed xmlns='http://www.w3.org/2005/Atom'>
<title>grid_refinement_openlb/src/refinement, branch master</title>
<subtitle>OpenLB 1.3 with 2D grid refinement</subtitle>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/'/>
<entry>
<title>Move refinement to contrib</title>
<updated>2019-06-24T13:42:19+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-05-01T19:06:52+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=8ba42a9a9dd2630a651d2cfa2e0ebc7fb1843100'/>
<id>8ba42a9a9dd2630a651d2cfa2e0ebc7fb1843100</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Adapt refinement to meta-descriptor</title>
<updated>2019-06-24T13:39:36+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-06-24T13:39:36+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=d12f3f9eb04a686e97d4625500a6f834ca7bde4b'/>
<id>d12f3f9eb04a686e97d4625500a6f834ca7bde4b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add OpenMP pragmas to independently processable coupling loops</title>
<updated>2019-06-24T13:18:01+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-02-28T12:05:03+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=c0148c928ff827ee00b6266a4f41649a621698cf'/>
<id>c0148c928ff827ee00b6266a4f41649a621698cf</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move NamedType template into separate header</title>
<updated>2019-06-24T13:17:42+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-02-15T10:18:16+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=babe2dc2b72fad674be8aa48d6ec232a50d020df'/>
<id>babe2dc2b72fad674be8aa48d6ec232a50d020df</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Automatically disable refined area in parent geometry</title>
<updated>2019-06-24T13:17:42+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-02-06T20:08:12+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=1c3a43c713e67446f0b5bc9dbbc6d04b5e2a61a6'/>
<id>1c3a43c713e67446f0b5bc9dbbc6d04b5e2a61a6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Continue cylinder2d refinement setup encapsulation</title>
<updated>2019-06-24T13:17:42+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-02-06T20:02:21+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=77869487e437b4050f98c28a24db82e1e83a872c'/>
<id>77869487e437b4050f98c28a24db82e1e83a872c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Automatically apply prepareLattice for all grids</title>
<updated>2019-06-24T13:17:42+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-02-04T21:56:00+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=9d547d2dc7d2e96c16ee5cbf9ebf2f73a7a5233e'/>
<id>9d547d2dc7d2e96c16ee5cbf9ebf2f73a7a5233e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for calling a function for each subgrid of Grid2D</title>
<updated>2019-06-24T13:17:42+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-02-04T21:50:53+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=27b0c949eda95d0fc97615acee899dd9b67bf781'/>
<id>27b0c949eda95d0fc97615acee899dd9b67bf781</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow customization of Grid2D's physical dimensionalization</title>
<updated>2019-06-24T13:17:28+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-02-03T18:45:36+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=5a0e359141b214faf15f5057e64e8529f535c5c1'/>
<id>5a0e359141b214faf15f5057e64e8529f535c5c1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Report total number of active cells in refinement hierarchy</title>
<updated>2019-06-24T13:17:09+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-31T14:14:03+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=3bc4210c9a3c10ffe61f0237bba101f9700b7668'/>
<id>3bc4210c9a3c10ffe61f0237bba101f9700b7668</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Manage dynamics, boundary condition memory in Grid2D</title>
<updated>2019-06-24T13:17:09+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-30T19:12:31+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=5e888fc13f38c94777963d72fc9e391cd4fa477a'/>
<id>5e888fc13f38c94777963d72fc9e391cd4fa477a</id>
<content type='text'>
Mainly to further declutter simulation and refinement setup
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mainly to further declutter simulation and refinement setup
</pre>
</div>
</content>
</entry>
<entry>
<title>Note pressure, velocity error norms in refined poiseuille2d</title>
<updated>2019-06-24T13:17:09+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-24T12:42:57+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=5aeafca5883f7af387363ede78596ff665b36d0c'/>
<id>5aeafca5883f7af387363ede78596ff665b36d0c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Attenuate cylinder2d inflow velocity increase</title>
<updated>2019-06-24T13:17:09+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-17T15:21:42+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=f234abc7b3474a4ea3d2a1544108a151f1189fd5'/>
<id>f234abc7b3474a4ea3d2a1544108a151f1189fd5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Verify mass loss when using linear interpolation for C2F</title>
<updated>2019-06-24T13:17:09+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-17T14:20:12+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=c00169276bee14e0d5418ac79fc00e3531e185ca'/>
<id>c00169276bee14e0d5418ac79fc00e3531e185ca</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add named types to Grid2D constructor</title>
<updated>2019-06-24T13:17:09+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-17T12:37:26+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=d900d8c794bb9d50f528bc8e72ceb594fbc292c8'/>
<id>d900d8c794bb9d50f528bc8e72ceb594fbc292c8</id>
<content type='text'>
This allows for readable differentiation between constructor overloads.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows for readable differentiation between constructor overloads.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix non-equilibrium scaling factor</title>
<updated>2019-06-24T13:17:09+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-17T11:45:25+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=5b8bad24546c0c01b11113fcd9b212bc633b6757'/>
<id>5b8bad24546c0c01b11113fcd9b212bc633b6757</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Interpolate vectors instead of scalars</title>
<updated>2019-06-24T13:17:09+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-15T10:24:40+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=08e0d597bbf9c6f4c43df071410b69812ac9a8e2'/>
<id>08e0d597bbf9c6f4c43df071410b69812ac9a8e2</id>
<content type='text'>
Same result, nicer code
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Same result, nicer code
</pre>
</div>
</content>
</entry>
<entry>
<title>Use available method to align Coupler2D origin to grid</title>
<updated>2019-06-24T13:17:09+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-14T15:40:28+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=d493a9507efb3100cdf2a354c75879bfb6341f62'/>
<id>d493a9507efb3100cdf2a354c75879bfb6341f62</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove unnecessary managed pointers</title>
<updated>2019-06-24T13:17:09+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-14T14:42:21+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=9546a228faa725df3a1956995f5c247ac8c79f51'/>
<id>9546a228faa725df3a1956995f5c247ac8c79f51</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve grid refinement interface</title>
<updated>2019-06-24T13:17:09+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-11T10:20:10+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=dd658eec1f3d716fa18ceb990b924b38721ecdeb'/>
<id>dd658eec1f3d716fa18ceb990b924b38721ecdeb</id>
<content type='text'>
By deriving RefiningGrid2D from Grid2D to provide methods specific to refining subgrids.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
By deriving RefiningGrid2D from Grid2D to provide methods specific to refining subgrids.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move distribution scaling factor to Coupler2D</title>
<updated>2019-06-24T13:17:09+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-11T09:26:17+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=5a6c48a6d8ac139dbed3088e0e397cbb42a1f480'/>
<id>5a6c48a6d8ac139dbed3088e0e397cbb42a1f480</id>
<content type='text'>
Scaling factor is specific to the refinement method implemented by the coupler.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Scaling factor is specific to the refinement method implemented by the coupler.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix grid alignment of refinement area</title>
<updated>2019-06-24T13:17:09+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-10T20:55:43+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=946cb3702e6baacec1faaeab9ad66dfd99320b55'/>
<id>946cb3702e6baacec1faaeab9ad66dfd99320b55</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache lattice positions for grid coupling</title>
<updated>2019-06-24T13:16:31+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-10T19:23:30+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=e415cc0cc2baedaade019693f69b6e1ed0dd4c2b'/>
<id>e415cc0cc2baedaade019693f69b6e1ed0dd4c2b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add hacky MPI support for grid refinement</title>
<updated>2019-06-24T13:16:31+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-10T14:13:23+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=68f2384f79bff6553d1db21ac0b3173d57e4e2bf'/>
<id>68f2384f79bff6553d1db21ac0b3173d57e4e2bf</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix, test recursive grid refinement</title>
<updated>2019-06-24T13:16:01+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-08T19:58:26+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=55d840574e71dc4a56a406a71d00b19698ad2791'/>
<id>55d840574e71dc4a56a406a71d00b19698ad2791</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Further indicatorize geometry setup</title>
<updated>2019-06-24T13:16:01+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-08T13:44:44+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=e1626f2eb19215482aa6f17966f5e54e3a0c4faa'/>
<id>e1626f2eb19215482aa6f17966f5e54e3a0c4faa</id>
<content type='text'>
Grid refinement is at its easiest when discrete materials are set using
analytical - i.e. resolution independent - indicators.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Grid refinement is at its easiest when discrete materials are set using
analytical - i.e. resolution independent - indicators.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move distribution decomposition methods to cell</title>
<updated>2019-06-24T13:16:01+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-08T10:08:20+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=ae4f808b51329a236dcbd7671ceb8c85c3906b6f'/>
<id>ae4f808b51329a236dcbd7671ceb8c85c3906b6f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Extract refinement scaffolding into separate units</title>
<updated>2019-06-24T13:15:37+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-01-08T09:43:28+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/grid_refinement_openlb/commit/?id=78d8d5206b0986e81690d2cee6b7202abef5a1f2'/>
<id>78d8d5206b0986e81690d2cee6b7202abef5a1f2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
