N - Cafes de CIMNE

Geometry
Analysis
The Creation of Adam, Michelangelo (http://en.wikipedia.org/wiki/Michelangelo)
Isogeometric Analysis: Forward Integration of CAD and FEA Cottrell 2009 The Creation of Adam, Michelangelo
(http://en.wikipedia.org/wiki/Michelangelo)
NURBS-Surface Representation in Kratos
●
NURBS paraphernalia
●
●
●
●
●
Differences in FEM and IGA
Data structure for NURBS in Kratos
●
●
●
●
●
2D Laplacian Temperature Problem
Post-Processing
Closest-Point-Search
●
●
●
GiD interface
KRATOS adaptation
NURBS-Elements
Isogeometric Laplace Solver
●
●
Nomenclature
B-Splines
NURBS
Point-to-Surface map
Closest Point
Future work
NURBS - Nomenclature
Control Points define the geometry and the
variables will be defined at the control points
●
The parameter domain is given by knot vectors:
●
e.g.:
ξ=[0,0,0,0.5,1,1,1]
η=[0,0,0,1,1,1]
(1,0)
The control net conforms the geometry but is not interpolatory
(1,1)
The elements are
defined by knot spans
η
(0,0)
(1,0)
ξ
Isogeometric Analysis: Forward Integration of CAD and FEA Cottrell 2009
Actual geometry
B-Splines
B-Spline basis functions are
defined recursively with the Coxde-Bor recursion formula:
N i , 0 (ξ)=
{
1 if ξi≤ξ< ξi+ 1
0 otherwise
For p = 1,2,3,... they are defined by:
ξ−ξ i
ξi+ p+1 −ξ
N i , p (ξ)=
N
(ξ)+
N
(ξ)
ξi + p −ξ i i , p −1
ξi+ p +1−ξi +1 i +1, p−1
Isogeometric Analysis: Forward Integration of CAD and FEA Cottrell 2009
From B-Splines to NURBS
NURBS shape function
p
Ri ( ξ)=
N i , p (ξ)⋅w i
N i , p ( ξ)⋅wi
p
Ri (ξ)=
W (ξ)
n
with
W ( ξ)=∑ N i , p ( ξ)⋅w i
i=1
n
∑i =1 N i , p (ξ)⋅wi
NURBS-Surface basis function as vector product of two NURBS-curves:
N i , p (ξ) M j , q (η)⋅wi , j
p, q
Ri , j (ξ , η)=
n
m
∑i =1 ∑ j =1 N i , p (ξ) M j , q (η)⋅wi , j
And the final surface description:
n
m
C (ξ , η)=∑ ∑ Ri , j ( ξ , η)⋅B i , j
i=1 j=1
p, q
Isogeometric Analysis: Forward
Integration of CAD and FEA Cottrell 2009
IGA vs. FEA
Isogeometric Analysis
Exact Geometry
Control Points
Control Variables
Basis does not interpolate control
points and variables
NURBS basis
High, easily controlled continuity
hpk-refinement space
Pointwise positive basis
Convex hull property
Variation diminishing in the
presence of discontinous data
Isogeometric Analysis: Forward Integration of CAD and FEA Cottrell 2009
IGA vs. FEA
Practical Point-of-View
IGA
Standard FEA
»
Defined data sizes as the
element definitions are
clearly defined with
respect to the number of
nodes
»
Undefined data sizes as
each NURBS-Patch may
have a different number of
Control Points per element
Functions handle
known data
dimensions
Additional entity in IGA
Functions need to
adapt to the actual
data dimensions
knots, weigths
Data structure for NURBS in Kratos
Number of Control Points= 5 2 Degree= 2 1
Point 1,1 coords: 0.0,0.0,0.0
Point 1,2 coords: 1.0,0.0,0.0
...
Point 2,1 coords: 0.0,0.0,1.0
Point 2,2 coords: 1.0,0.0,1.0
...
.
Number of knots in U= 8
knot 1 value=0.0
knot 2 value=0.0
...
Number of knots in V= 4
knot 1 value=0.0
knot 2 value=0.0
...
Rational weights:
1.0
0.70710678118654757
1.0
...
Use GiD information to create an NURBSObject in Kratos
view text
Data structure for NURBS in Kratos
Kratos
Vector mKnotsXi
GiD
Knots U
Vector mKnotsEta
Knots V
Vector mWeights
Rational Weights
Int mPolynomialDegreeP
Degree (1st)
Int mPolynomialDegreeQ
Degree (2nd)
Int mNumberOfCPsU
Number of Control Points(1st)
Int mNumberOfCPsV
Number of Control Points (2nd)
Read in via
python
Further data structures in Kratos to define a NURBS-surface:
Int mNumberOfGeometries
●
Double mUpperXi
●
Double mLowerXi
●
Double mUpperEta
●
Double mLowerEta
●
Computed
member
variables
Data structure for NURBS in Kratos
»
Control Points read-in in seperate mdpa-file.
Kratos ModelPart will be created
Control Points numeration:
Data structure for NURBS in Kratos
●
Elements are defined on knot spans.
Parameter domain:
Physical space:
The Control Points which have to be considered for a
element [ξ j , ξ j+1 ] x [ ηk , ηk+1 ] are [CP j− p ... CP j ] x [CP k −q ... CP k ]
Isogeometric Laplace Solver
»
Using NURBS-description to solve a 2D Laplacian
Temperature Problem:
Note:
The Control Points where
the dirichlet B.C.s are set
are interpolated and
therefore conform with the
geometry!
Temperature at
the Control Points
1,1 and 2,1 will
be fixed to 10
Temperature at the
Control Points 1,5
and 2,5 will be fixed
to 0
Isogeometric Laplace Solver
Use of the adapted Element-Type
NurbsPoisson2D and the StaticPoissonSolver for
computing the solution of the 2D-Laplacian
Problem in Kratos.
As result, the Temperature at the Control Points
will be obtained.
Problem: No postprocess for
NURBS in GiD
Solution:
1)
Use GiD to generate a Triangle-Mesh with the same
Geometry as the NURBS geometry
2)
Compute the ζ- and η- values for each Node
3)
Interpolate the Temperature at every Node
4)
Use Standard-Postprocess from GiD
Isogeometric Laplace Solver
Final solution obtained for a
standard Laplacian
Temperature Problem.
Achievements:
●
●
Solving directly on the
NURBS-description of the
geometry
Using NURBS-basis functions
for computation
Point-To-Surface map
Final goal in scope of this thesis:
Use of NURBS-Geometry in the
embedded fluid-structure solver.
Get distance of a Point to a
NURBS-surface
Procedure:
1) Define the middle of the element
as initial guess.
2) Compute d0 = xPoint – x0
3) Compute scalar product d0 * gi0
4) Minimize scalar product with a
multi-dimensional NewtonRaphson technique:
Δ x n :=−( J ( x n )⁻ ¹)⋅f ( x n )
x n+1 =x n + Δ x n
Closest-Distance Search
1) Set dmin = 100000
For each element:
2) Initialize
x ⁰=x ( ξmid , ηmid )
3) Compute closest point
4) If dele < dmin : dmin = dele
Note:
For elements where d ele ⊥ g ξ and/or d ele ⊥ gη the algorithm might
yield values for ξ and η which lie outside of the element boundaries.
Assign the closest possible values to ξ and η
What is missing?
In the scope of my tesis:
●
Spatial search
(bins_dynamic_objects)
Ideas for future work:
●
●
●
●
Signing of distance (Inside or
outside of structure)
Inclusion of the NURBSApplication into the embedded
fluid-solver
Trimmed NURBS
Multiple Patches
●
Boundary Conditions
●
Continuity at transitions
...
●
3D Computation (Plates, Shells,...)
●
NURBS-based post-processing
●
Refinement strategies (hpk)
Thank you for your attention!