From: Wilfred v. R. <wva...@ya...> - 2017-05-31 11:48:01
|
I have not looked into the problem in detail, but my "sources" in the transport community assure me that the calculation proceeds "element-by-element". I think that the problem is not quite so complicated as it sounds: - suppose there are two neighbor patches, P1 and P2, and the boundary, B12. Suppose 2D geometry. - On P1, the quadrature nodes are given as uq1, vq1, and the weights, uw1 and vw1; in physical space, the quadrature nodes are indicated as p1(x, y) - On P2, the quadrature nodes are given as uq2, vq2, and the weights, uw2 and vw2; in physical space, the quadrature nodes are indicated as p2(x, y)- Suppose that B12 corresponds to the boundary (u1 = 1, v1 = v) and (u2 = 0, v2 = v) - the solution proceeds, and suppose that the solution for P1 has been determined; thus the solution can be "reconstructed" on any point (x, y), including the boundary B12 - the only thing you need to know is the physical location of the quadrature nodes for P2, as applied to the "incoming" boundary B12.- I think that the "incoming" flux can be created with an interpolation of the "outgoing" flux - but again, I have not yet written down the equations. Later,Wilfred On Wednesday, May 31, 2017 12:33 AM, Rafael Vazquez <va...@im...> wrote: Hello Wilfred, yes, I know a bit about DG. But as far as I know you don't compute things element by element. What you do is to add in the variational formulation some terms containing the jumps and the averages at the edges, but at the end you need to solve a global system. In any case, I know that the group of Ulrich Langer has been applying DG techniques between patches in IGA. In GeoPDEs there is something for the div-conforming splines in Stokes problem, in the files "mp_solve_stokes_div_conforming" and "mp_dg_penalty". All the computations there assume that the mesh is the same in both sides. I don't know if that can be of any help. Best, Rafa On 30. 05. 17 14:20, Wilfred van Rooijen wrote: Hello Rafael, Thank you for your reply, even if it came a bit later than expected :-)) Yes, the method is well known, and it is commonly called "Discontinuous Galerkin Finite Element Method" (DGFEM) - at least in the universe of the people working with neutron transport theory. I can send you some references later, I don't have my notes at hand. In the mean time, I programmed most of the DGFEM in FORTRAN, and I have GeoPDEs extensively, to create the NURBS domains, and also to check my matrix calculations. Without GeoPDEs it would have been impossible :-)) So, onward I go, into the Great Unknown. Wilfred On Tuesday, May 30, 2017 7:05 PM, Rafael Vazquez <va...@im...> wrote: Hi Wilfred, sorry for the late response, your message finished in the spam folder, and I only saw it very recently. :-( To be honest, I would not call the method you describe a "finite element method". In FEM, you solve your problem in the global domain at once, and not element by element. Do you have a reference for that method? To me it resembles more the "finite volume method" (although I'm not an expert on that). About your question, as you said, if the two patches match conformingly (same knot vector, same control points), then the basis functions from each side coincide exactly, and the coefficients for both sides are the same. Instead, if the two meshes do not match, you have to use some kind of projector. In the IGA literature probably the most common way to do that is to use mortar methods or Lagrange multipliers. Both of them will require to compute your fields on an intermediate mesh. This is not difficult in 2D, but may become more complicated in 3D. There is also the possibility to pass your solution from one side to the next one using quasi-interpolants, but in any case, you need to compute the functions from one side in the next one, and they use different meshes. The SP_DRCHLT_L2_PROJ is a particular implementation, where we impose boundary conditions using the L^2 projection. There are two important things to note. First, the function works for an input function "h" that evaluates the function you want to project. In your case, you would need to change this function. Second, the L^2 projection is not a good choice for the transport equation, because it is not local. I can't recommend that. I hope that helps. Best, Rafa |