Thanks, that helps a lot!
On Fri, 2004-02-06 at 14:27, Gregory D Abram wrote: > "The cell used for the displacements and the composite cell contain > the same vertices. " > > ... does the vertex list contain more vertices than the displacements, > or do they contain the same number of vertices, of which some (many) > are not referenced by cells in the displacement field? Here's a 1-D > case. A, C and E are vertices of the coarse mesh and A, b, C, D and E > are vertices of the fine mesh: > > A----b----C----d----E > > You might have a single vertex list: > > Vertex list A,b,C,d,E > Coarse data d0,d1,d2,d3,d4 -- d1 and d3 are meaningless > Coarse cells (0,2),(2,4) -- b and d are not referenced > Fine data c0,c1,c2,c3,c4 > Fine cells (0,1),(1,2),(2,3),(3,4) > > Or you could have two vertex lists: > > Coarse vertex list: A,C,E > Coarse data d0,d1,d2 > Coarse cells (0,1),(1,2) > Fine vertex list: A,b,C,d,E > Fine data c0,c1,c2,c3,c4 > Fine cells (0,1),(1,2),(2,3),(3,4) > > In the first case you could simply use result = Compute(disp + comp). > Compute would be happy since there are the same number of elements in > the two vertex (and data) components. The results at b and d would > still be meaningless, but since the output would have the same grid as > the coarse mesh, those vertices wouldn't be referenced by the cells. > > In the second case, you need to put the two data onto the same grid - > which Map will do for you. You can interpolate either field onto the > other, depending on the result you want: coarseFine = Map(coarse, > Fine) to > map (eg. interpolate) the fine data onto the coarse mesh, followed by > coarseResult = Compute(coarseFine + coarse) to create a coarse result, > or fineCoarse = Map(fine, coarse) to interpolate the coarse data onto > the fine mesh, then > fineResult = Compute(fineCoarse + fine) to get a fine result. > > Hope this helps. > > > Greg > > > > > > Brent Bailey > <[EMAIL PROTECTED]> > Sent by: > [EMAIL PROTECTED] > > 02/06/2004 01:26 PM > Please respond to > opendx-users > > To: DX > <[email protected]> > cc: > Subject: > [opendx-users] > Overlapping grids > > > I have two sets of output from a finite element program that I want to > display, but as opendx doesn't handle non-linear interpolations in > cells, they are of different grids. The first output is > displacements, > which has the same cells in the finite element program and opendx. > The > second set of data is based on the division of the finite element cell > into a composite cell containing 12 different cells, as given below: > > _______ > |\__|__/| > | | | | | > --------- > | |_|_| | > |/__|__\| > > (sorry about the ascii art...) > > This gives me an approximation to the higher order interpolation, as > it > includes more points within the cell. The cell used for the > displacements and the composite cell contain the same vertices. I > want > to show how the grid is deformed. Is there a way to that allows me to > interpolate the displacement values of the composite cell inside dx? > > ie. I want the vertices used in the composite cell to be: > > vertex_undeformed + displacement (shows displacement > of grid) > > and the vertices for all the cells contained in the composite cell to > be > a linear interpolation of these displacements. > > Can I do this within dx? Or will I have to do this in my finite > element > code itself? > > Thanks, > > -- > Brent Bailey <[EMAIL PROTECTED]> -- Brent Bailey <[EMAIL PROTECTED]>
