kelvinHelmholtzAMR = {
var kh_amr = await d3.json("https://gist.githubusercontent.com/matthewturk/660402b5a92aea58b3fc1ea0b59df06b/raw/e18376232b4dbdcec91fc29c7986d9d47115a75e/kh_amr.json");
var complexConfig = defaultConfig([32, 32], [ [ [0, 512.0], [ 20.0 + width/2, 200.0 ] ],
[ [0, 512.0], [ 0.0, Math.PI ] ] ] );
var cellData0 = createCells(complexConfig, 0, [32, 32], [0, 0], 0);
var cellData1 = createCells(complexConfig, 1, [64, 32], [0, 32], 0);
var cellData2 = createCells(complexConfig, 2, [64, 50], [32, 64], 0);
cellData0.forEach( d => { d.density = kh[d.j][d.i];
d.level = 0; } );
cellData1.forEach( d => { d.density = kh_amr[0]["density"][d.i][d.j + 32];
d.velocity_x = kh_amr[0]["velocity_x"][d.i][d.j + 32];
d.velocity_y = kh_amr[0]["velocity_y"][d.i][d.j + 32];
d.level = 1;
});
cellData2.forEach( d => { d.density = kh_amr[1]["density"][d.i + 32][d.j + 50];
d.velocity_x = kh_amr[1]["velocity_x"][d.i + 32][d.j + 50];
d.velocity_y = kh_amr[1]["velocity_y"][d.i + 32][d.j + 50];
d.level = 2;
});
cellData0 = cellData0.filter( c => {
var ind = [c.i * 2, c.j * 2];
var overlaps = ((ind[0] >= 0) && (ind[0] < 64) && (ind[1] >= 32) && (ind[1] < 64));
return !overlaps;
});
cellData1 = cellData1.filter( c => {
var ind = [c.i * 2, c.j * 2];
var overlaps = ((ind[0] >= 32) && (ind[0] < 96) && (ind[1] >= 64) && (ind[1] < 114));
return !overlaps;
});
var cellData = cellData0.concat(cellData1).concat(cellData2);
var cellPaths = createPaths(complexConfig, cellData, 10);
var tree = d3.quadtree().x(d=>d.x[0] + d.width[0]/2).y(d=>d.y[0] + d.height[0]/2).addAll(cellData);
return {'kh_amr': kh_amr, 'cellData': cellData, 'cellPaths': cellPaths, 'tree': tree};
}