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]>

Reply via email to