[vtk-developers] GSoC 2015-CAD Model and Simulation Spline Visualization
DEEVANKSHU GARG
deevankshu096 at gmail.com
Thu Mar 19 19:33:03 EDT 2015
Hello again!
Thanks for your reply.
It cleared in my mind the path to be followed for the isogeometric analysis
i.e. through Bézier extraction.So I went through a lot of its theory part
as well as the implementation part and scribbled down roughly everything
required and the expected outputs and came up with a flow chart present in
the attachment.
Pre-processing part-
Since the basis functions of isogeometric analysis are related to control
points, and not nodes as shape functions of FEA, the input of node
coordinates is replaced by coordinates of control points.The element
topology is therefore related to the numbering of control points rather
than the numbering of element nodes.The isogeometric analysis program based
on Bézier extraction will require an extra input, namely the Bézier
extraction operators.A question -> are the "readers" mentioned in the
project statement related to this part?About reading the data from CAD
files?Can you throw some more light on readers?
Solving part-
This will mainly contain a shape function routine which generates NURBS
basis functions and derivatives in the isogeometric analysis program based
on Bézier extraction.I am attaching a flow chart for this also.To form
NURBS basis functions based on Bézier extraction using this shape function
routine, first the NURBS weights and the element extraction operators from
the preprocessing step are called in.The Bézier basis functions and
derivatives are calculated in a separate routine, and are also called into
the shape function routine.
Post-processing part-
As you replied to the rendering question in the previous mail,I re-thought
about it and did some further research.So,basically it would include-
finding the range of values taken on over a mesh and the location of the
extremal values,computing derivative values and inspecting them,dividing
the mesh into regions based on scalar values or spatial cuts to make
inspection of the quantities defined on the mesh (e.g., stress, strain,
temperature) possible.It will write displacements and reactions at the
control points,in contrast to FEA which writes these quantities at the
nodes. In addition, the program plots NURBS control mesh, Bézier control
mesh and Bézier physical mesh. The displacement field is evaluated at the
parametric coordinates which equal the nodes of FEA (for the same
polynomial order), and plotted in the physical space.A modification is made
to the storing of stress values to be able to plot contour plots of the
stresses.The stresses are stored reflecting the Gauss points’ alignment
relative to each other in the parameter space.
Also,I have been able to set-up VTK on my system.Can you please tell me
which part of the code base I should mainly focus on.One more thing,I
haven't been able to completely get through the cutting part.A piece of
advice on this would be really very helpful.
Also , what kind of details are you expecting in the proposal ? Do you want
it to be mildly broad , or do you want it to be targeted as a needle ?
Could you shed some light on it ?
A quick response will be really helpful !
Regards,
Deevankshu Garg
(https://github.com/gargd)
On Wed, Mar 18, 2015 at 9:39 PM, David Thompson <david.thompson at kitware.com>
wrote:
> Hi Deevankshu,
>
> > The project "CAD Model and Simulation Spline Visualization" is of
> particular interest to me.Curves and NURBS Modelling has been a project of
> mine at a personal level(https://github.com/gargd/Here-I-come-NURBS &
> https://github.com/gargd/Bezier-curves-and-surfaces).
>
> Those are nice examples, but they use the OpenGL GLU toolkit to evaluate
> the spline. Just to be clear, we are interested in adding implementations
> of evaluation and inversion to VTK, not using GLU to perform those
> operations.
>
> > ... About the project,there are some points I want to discuss and some
> questions I want to ask. ... Besides its obvious advantages of being easily
> integrated with CAD and the high level of solution accuracy, we also have
> the advantage of not having to write the whole code from scratch and
> reusing the earlier present FEM code.
>
> Using a FEM solver's evaluation and interpolation methods is one way to
> go, but the issues involved are
>
> 1. Many isogeometric analysis (IGA) codes use slightly different spline or
> patch formulations. We want to accommodate them all, not just a few.
>
> 2. I do not know of open source IGA implementations which cover the gamut
> of interpolation techniques whose source we could borrow.
>
> That is why we are aiming to provide operations on basic rational Bézier
> patches. The Bézier patch operations would not access control point arrays
> directly but use iterators so that different IGA formulations could provide
> Bézier patch iterators to access their underlying meshes.
>
> > I have thought of a rough idea about implementing the project-
> >
> > 1.A new mesh representation class-
> > This would include-
> > a. h-refinement(knot insertion) for one and two dimensional meshes.
> > b. p-refinement(order elevation) and k-refinement using Geopdes library.
>
> Unfortunately, the GeoPDEs library is licensed under the GPL. VTK cannot
> include GPL code without changing its license.
>
> > c.Extended IGA for hole,inclusion and crack modelling using variational
> formulas.
>
> This is interesting, but the first job is to implement basic evaluation
> and inversion methods along with cutting and clipping.
>
> > d.Bezier extraction-to integrate isogeometric analysis with existing FEM
> codes.
>
> This is the route we are hoping to take.
>
> > e.Visualization of displacements and stresses.
> >
> > 2.Contouring-
> > This would basically include creating new classes like the following
> ones-
> > a.crackedMesh: visualize cracked mesh as truly cracked domain.
> > b.crackedMeshNURBS: the same but for higher order NURBS.
> > c.plotStress: compute displacements and stresses at nodes of a
> visualization mesh.
>
> The way the VTK framework is written, these would not be individual
> classes but different combinations of classes into pipelines.
>
> > 3.Cutting-
> > a.elements cut by cracks:sub-triangulation
> > b.elements cut by circular holes/inclusions:adaptive sub-cells.
>
> We do not care so much about what shape the cut is, but rather how the cut
> is computationally represented; is it an implicit function? a spline in
> world coordinates or parameter space? a simple plane? By providing some
> basic functionality, the cases above (plus others) can be handled with a
> small effort.
>
> > Things I want to ask-
> > a.You mentioned about conversion to handle the variety of spline formats
> (T-Splines, NURBS, Catmull-Clark surfaces, etc.).Would an object oriented
> design be more beneficial ...
>
> Yes. I think the first step would be to provide a base class that allows
> iteration over a set of Bézier patches that, taken together, represent the
> spline curve, surface, or volume.
>
> > ... with the B-splines sitting at the top of the heirarchy?
>
> A B-spline formulation could be at the top of *one* hierarchy, but it
> would have siblings for other formats like T-splines.
>
> > b.IGA techniques are mainly for analysis and meshing,what does it have
> to do with rendering.
>
> Rendering is only part of visualization. It is important to provide
> analysis tools for post-processing to
>
> - find the range of values taken on over a mesh and the location of the
> extremal values.
> - compute derivative values and inspect them
> - divide the mesh into regions based on scalar values or spatial cuts to
> make inspection of the quantities defined on the mesh (e.g., stress,
> strain, temperature) possible.
>
> > Shouldn't the rendering techniques remain the same?
>
> I am unsure what you mean by this? The same as what?
>
> > We can obviously optimise rendering,but it wouldn't be a part of
> IGA,right?
>
> Rendering would involve evaluating patches provided by an IGA mesh at
> regular locations and connecting the evaluated points into a simplicial
> mesh (line segments in 1-D, triangles in 2-D, tetrahedra in 3-D) for either
> rendering or further post-processing. One example of post-processing is
> deflecting the evaluated points using the strain field computed by IGA.
>
> > ...
> > Thanks a lot for reading!
>
> I look forward to reading your proposal when you submit it to GSoC.
>
> David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20150319/c1cbee9a/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Flow Chart for IGA based on Bezier Extraction.jpg
Type: image/jpeg
Size: 218400 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20150319/c1cbee9a/attachment.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Flow chart for Shape Function routine.jpg
Type: image/jpeg
Size: 200115 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20150319/c1cbee9a/attachment-0001.jpg>
More information about the vtk-developers
mailing list