On 7/26/06, **Roy Stogner** <
roystgnr@ices.utexas.edu> wrote:

No, the ordering of the points is not important in matlab plotting, I think. Basically I loaded a matrix that contains x, y, z, eigenvectors as inividual columns and used surface/mesh/line plot. The only requirement is the each xyz physical location is correspondent to the eigenvector solution.

I do this after I load the eigenvector solutions back to libMesh, correct? If I reinit FE object with a grid quadrature rule, how can Imake sure the XYZ coordinates at each quadrature point are the ones correspondent to the loaded eigenvectors?

Can I just ouput the xyz at each quadrature point at the element matrices (Ke, Me) assembly step? Output them to a file and concatenate with the eigenvector solutions? Will that work?

Same question here, if I use a quadrature rule different from the one used to assemble Ke, Me, will the xyz coordinates at the each quadrature point be correctlycorrespondent to the eigenvector solutions with the size of global DOFs?

Thanks,

David

On Wed, 26 Jul 2006, David Xu wrote:

> On 7/26/06, Roy Stogner < roystgnr@ices.utexas.edu> wrote:

>

> I see. Do you any of the plotting software that can handle higher

> polynomials?

No. If I knew of any I'd be using it myself. ;-) As it is I usually

get good enough plots from the bisected piecewise linear plots that

libMesh's output functions produce by default.

> I remember you mentioned lagrange only support up to 2nd order. If that's

> correct,

That's correct.

> I may also want to try higher order hierarchic (up to p=5?).

The polynomial degrees supported by each finite element class depend

on the geometric element. Check out the definition of

FEInterface::max_order() if you want to see what each supports.

On HEX27 elements, the hierarchics support "unlimited" polynomial

degree - but ill conditioning and floating point error will probably

screw up your solution around p=11.

> Will hierarchic (p>2) have the same node re-numbering problem for

> getting xyz?

Wait wait wait - you're talking about two problems here. When I

mentioned node renumbering before, I was talking about the difficulty

of loading old solutions into new meshes. The problem in plotting

solutions on non-lagrange elements is different, and yes, the

hierarchics will be equally tricky.

>> The most general way you can do things is to load your eigenvector

>> solutions back into libMesh (preferably into the same running process

>> that gave you the original matrix, so there's no question of node

>> renumbering). Then you can use the libMesh plotting functions

>> (assuming you're happy with the limitations of those output formats)

>> or use the libMesh FE objects to get an arbitrarily dense cloud of

>> points for your own plotting software.

>

> That sounds like a project to me. Would you please point me to the possible

> classes/functions I need to load the eigenvector solutions back into libMesh

Yes: NumericVector<>::set() We don't have any "load numeric vector

from file" function, but it shouldn't be too hard to read in a file

and set the coefficients yourself.

> and to plot them? Currently, for the 2nd order lagrange, I just concatenate

> the node xyz locations with the the eigenvector solutions, and then plot

> them in Matlab.

Okay. If Matlab doesn't have any particular requirements for the

ordering of the points you plot, then it's easy:

No, the ordering of the points is not important in matlab plotting, I think. Basically I loaded a matrix that contains x, y, z, eigenvectors as inividual columns and used surface/mesh/line plot. The only requirement is the each xyz physical location is correspondent to the eigenvector solution.

Loop over all the elements. On each geometric element, reinit your FE

object with a grid quadrature rule whose order at least equals your

polynomial degree. Get the XYZ coordinates and the solution value at

each quadrature point, and output them.

I do this after I load the eigenvector solutions back to libMesh, correct? If I reinit FE object with a grid quadrature rule, how can Imake sure the XYZ coordinates at each quadrature point are the ones correspondent to the loaded eigenvectors?

Can I just ouput the xyz at each quadrature point at the element matrices (Ke, Me) assembly step? Output them to a file and concatenate with the eigenvector solutions? Will that work?

That will output vertex and edge points multiple times, but the plot

should look the same. If your elements are so large that the plot

still looks faceted, use a quadrature rule with more points.

Same question here, if I use a quadrature rule different from the one used to assemble Ke, Me, will the xyz coordinates at the each quadrature point be correctlycorrespondent to the eigenvector solutions with the size of global DOFs?

Thanks,

David