I’m making a somewhat complex 3d geometry, with lots of meshS pieces glued together. I can’t seem to find a way to set the label for each surface (needed for some boundary conditions) in the same line that I create the meshS. For example, it seems I have to do this:
int[int] tt1 = [0,2];
meshS Th1 = square3(4, 5, [x, y, 0], orientation=-1);
Th1= change(Th1, reftri=tt1);
I would prefer something like this, if possible:
int[int] tt1 = [0,2];
meshS Th1 = square3(4, 5, [x, y, 0], orientation=-1, reftri=tt1);
to be more succinct, but I can’t figure out what if any other argument to use in the square3 function. As a workaround I tried creating my own function that would combine the two steps into one line, like:
func meshS sq3lab (int &n1, int &n2, func[int] &ff, int &orient, int &tlab) {
meshS Th = square3(n1, n2, [ff[0], ff[1], ff[2]], orientation=orient);
Th = change(Th, reftri=tlab);
return Th;
}
but “func[int]” is not the right syntax for the transformation vector.
Any ideas on a one-line solution with square3 OR with how to implement my user-defined function arguments? Thanks!