Post date: 2017/12/23 10:39:36
[進行中]
int[int] arrayIntersection; // ranks of neighboring subdomains
int[int][int] restrictionIntersection(0); // local-to-neighbors renumbering
real[int] D; // partition of unity
{
meshN ThGlobal = cube(10 * getARGV("-global", 5), getARGV("-global", 5), getARGV("-global", 5), [10 * x, y, z], label = LL); // global mesh の作成
build(Th, ThBorder, ThGlobal, fakeInterface, s, overlap, D, arrayIntersection, restrictionIntersection, Wh, Pk, comm, excluded);
}
/////////// Th : local submesh ThBorder : ThGlobal : global mesh (mpsize の submesh に分割される) fakeInterface : split : > 1, each local edge is splitted into s subedges, resulting in each element being split into s2 element in 2D and s3 elements in 3D) so that the collection of these submeshes is an overlapping domain decomposition of a refined mesh. (option -split) overlap : the number of extra layers added to the initial partition (option -overlap) // the constructor of the distributed matrix [one-level additive Schwarz method : ASM/RAS] D : the diagonal of the local partition of unity arrayIntersection : the list of neighbors of the current subdomain restrictionIntersection[j] : the list of the degrees of freedom that belong to the intersection of the current subdomain with its neighbor j