









Most advanced processing of external forces and constraints: generation of sets of fine elements in userdefined refinement zones



Many finite element models of structural engineering objects contain areas where
large gradient values
of the stress tensor components are expected. Such areas are particularly common around
points where external forces or constraints are applied. One of previous releases of QUADSURFACE
had already implemented an algorithm that allowed to preserve in the generated mesh the coordinates
of such points. In other words, it was guaranteed that the resulting quadrilateral mesh would always have
a node coinciding with that point. However, earlier releases of QUADSURFACE didn’t have the
refinement feature, i.e. an ability to generate areas of small elements around such points.
Now this feature is available. In the same way as before, such points will be further called, for the sake of simplicity,
“nonzero PINTpoints”.Two new numerical parameters have been introduced, which the user sets individually
for each PINTpoint with a surrounding refinement area
 STEP: a desirable average size of the quadrilaterals around the point (to be more precise,
a desirable elements’ edge length);
 RAD: a desirable radius of the refinement area.
Obviously, both parameters can be defined as “desirable” only because they must be
compatible with the surrounding largesize elements; and, most importantly, the transitional elements
between “fine” and “large” must not be unacceptably distorted.
Example 1.
Consider a rectangular domain with a nonzero PINTpoint in the center (further down
this page all Zcoordinates equal zero and not
shown in the pictures).










A straightforward way would be to generate a separate set of elements inside the circle.
However, the most accurate numerical results, especially in terms of the stress tensor
components, are obtained when the finite elements are exactly squares. For that reason,
QUADSURFACE has the following method implemented: it generates inside the RADcircle a
square set of elements which, in turn, are small squares and have their edges’ length equal or close to the
userdefined STEP value.
The resulting mesh is shown below. It can be clearly seen that the program
generated a set of squareshaped quadrilaterals around the nonzero PINTpoint,
and then a smooth transition from those small elements to the large elements in the remaining
part of the domain is performed.





A significantly more difficult is the question: what to do if a nonzero PINTpoint must be placed very
close to (or even overlap with) another feature of the model, thus making the input data incompatible.
For example, the user may require that RAD parameter is such that the refinement area overlaps or
almost overlaps a boundary segment. In such case, the program will behave as follows: the program
will generate a reducedsize set of square elements around the PINTpoint, trying to preserve the main
boundary feature: the userdefined step value, and at the same time to ensure that transitional elements
between the small squares and the boundary are not very distorted. If the above is impossible
(i.e. small elements of the refinement zone are supposed to be generated close to a boundary
entity with large step size), the program will ignore both RAD and STEP parameters, but still place
a node in the generated mesh into the userdefined PINTpoint position. In other words,
the program will convert the nonzero PINTpoint into an ordinary PINTpoint, and the user will be provided
in the logfile with the corresponding warning.
Example 2.
Consider the same rectangle, this time with two nonzero PINTpoints in two
different corners. For both points their RAD and STEP parameters are set the same:
STEP=0.02 and RAD=0.1. However, the point on the righthand side is placed a little closer to the corner,
so that a refinement area should not be generated to avoid creation of unacceptably distorted
transitional elements. For that point the RAD and STEP parameters
are then automatically set to 0., but, as can be seen, the point's location is preserved, i.e. a node is placed
in the generated mesh.









Certainly, if the user reduces the step size on the domain boundary, the program will detect that there
is no danger of generating singular elements anymore, and now two refinement areas will be generated,
not one.
Example 3.
Even more complex question is: how should the algorithm behave if two (or more)
refinement zones overlap, or are placed close to each other ?
The problem is that different strategies can be imagined here, and there appear to be no specific
advantages of one over others. For example, the algorithm can:
(a) Generate a fullscale refinement area around PINT5 and then “move” the node closest to PINT4 into the
position of the latter. Thus, userdefined RAD and STEP values of PINT4 are automatically set to 0.,
but the overall validity of the model is preserved, in a sense that for PINT4 and PINT5 the
corresponding nodes are placed where required.
(b) Another approach would be the opposite: for all cases when two refinement zones overlap, the larger one is
ignored (i.e. RAD and STEP are set to 0., whereas its userdefined position is preserved).
(c) The algorithm may also be designed such that approach (a) or approach (b) is chosen
automatically depending on the actual values of RAD and STEP, whichever is smaller for each
point: choose as “nonzero” PINTpoint the one with the smaller RAD; or with the smaller STEP.
(d) Here is a bit more complex. The algorithm may automatically reduce the larger RAD to the
value when the two refinement zones no longer overlap, but both pairs of STEP and RAD remain nonzero.
More questions: what if there are 3 or more overlapping refinement zones ? what if the 1st and 2nd overlap,
the 2nd and the 3rd overlap, but 1st and 3rd don’t ? etc… The actual algorithm implemented in QUADSURFACE
has been developed after a very large number of numerical experiments, and automatically chooses among the options (a)(d)
depending on a broad variety of meshing factors: for example, it is important that no or very few low quality elements
(i.e. with angles significantly different from the right angle) are generated, so the algorithm also “looks after”
that feature too.
However, the user still has some degree of freedom in what option the algorithm would choose.
Namely, the user may decide: which of the two points to place first in the "points block" of input data.
This sometimes may influence the final structure of the mesh, and it is recommended that the user
performs more than one (in this case – two) numerical experiments, thus obtaining more than one
mesh and selecting among them the most suitable for his/her purposes.
Consider a square domain with
two nonzero PINTpoints: one (PINT4) with smaller RAD and STEP placed in the domain center,
and another (PINT5) with larger RAD and STEP placed slightly to the right from the center.






If in the input data
PINT5 appears first and PINT4 appears second, the algorithm generated a mesh according the rule (a)
: a refinement zone has been generated around PINT5, then RAD and STEP for
PINT4 are set to zero but its position (1.,1) is preserved, i.e. a node with those coordinates exists in the mesh.





If however the points PINT5 and PINT4 are swapped in the input data structure, the mesh is very different.
One refinement zone is generated around PINT4, another around PINT5; but RAD value of the latter has been
reduced automatically, to ensure that transitional elements between the two zones are not distorted and
have high quality.





Also, QUADSURFACE and its earlier releases allow:
meshing of complex plate and shell structures in 3D space,
consisting of planar, cylindrical, spherical components, surfaces of revolution
and also generalcase 3 and 4edged patches;
meshing of nonhomogeneous domains, commonly encountered in structural engineering, consisting of multiple
plates and shells with different physical and/or geometrical properties;
easily readable and convenient description of geometrical models;
fully automatic processing, requiring no interference from the user.



QUADSURFACE is available with complete source codes
and the full commercial lisence allowing easy incorporation into your own
applications.
All our codes are written in ANSI C and will compile and run on all UNIX
and Windows platforms without changes. They are also
fully commented, allowing easy modification at user discretion.
QUADSURFACE is available on noroyalties and
noannualrenewals basis: there is a oneoff price for the
unlimited commercial lisence.
QUADSURFACE standard distribution kit includes:
 fullycommented source codes of the program in ANSI C,
 the product's User Manual containing detailed description of input and output
data structures and an example driver program;
 a graphical application that allows displaying domains
that are to be meshed, as well as generated quadrilateral meshes.
QUADSURFACE is completely developed by our company and contains
no third party code.
Finally, our "trybeforeyoubuy" policy. If you send us
several examples of your domains, we will run QUADSURFACE
and send you the generated meshes. If you are satisfied with results,
you can then buy QUADSURFACE.
To learn more about the full range of our products please follow this
link.
We also invite you to contact us with any questions, preferably by email on comecau@ozemail.com.au or
comecau1@bigpond.net.au.





