FEAP User Forum

FEAP => nurbFEAP => Topic started by: leeyongjae89 on February 15, 2017, 11:06:48 AM

Title: CONTact code with NURB
Post by: leeyongjae89 on February 15, 2017, 11:06:48 AM
Dear feap team,

This is a question about CONTact command with Nurb mesh.
Any stress, strain and displacements do not occur in the structure.
I guess RIGID SURFace 1 and the other surfaces are not contacted.
I can't find the reason. Could you help me.

Meshing is started in 'ifull3d' which is the coarsest mesh.
And by using input file 'i2' and 'i3', elevation is done, (up to here, I have no question, the elevation is successful)
and then CONTact command and RIGID surface command is added to the 'i3' file in the end of the file.
below is about Contact command
Code: [Select]
SURFACE 1
   RIGID
   FUNCTION CART  1,-1.00000000E+01,1,2 !the outer radius of the circle is 10.0

SURFace   2.
   QUAD
   BLOCk   SEGMent ! nodes :46-20-21-47
     1.    -10.00  5.00000000  0.00000000  !
     2.    -10.00  0.00000000  0.00000000  !
     3.    -10.00  0.00000000  5.85786438  !
     4.    -10.00  5.00000000  5.85786438  !

SURFace   3.
   QUAD
   BLOCk   SEGMent ! nodes :47-21-22-48
     1.    -1.00000000E+01  5.00000000E+00  5.85786438E+00  !
     2.    -1.00000000E+01  0.00000000E+00  5.85786438E+00  !
     3.    -5.85786438E+00  0.00000000E+00  1.00000000E+01  !
     4.    -5.85786438E+00  5.00000000E+00  1.00000000E+01  !

SURFace   4.
   QUAD
   BLOCk   SEGMent ! nodes :45-19-20-46
     1.    -1.00000000E+01  5.00000000E+00 -5.85786438E+00  !
     2.    -1.00000000E+01  0.00000000E+00 -5.85786438E+00  !
     3.    -1.00000000E+01  0.00000000E+00  0.00000000E+00  !
     4.    -1.00000000E+01  5.00000000E+00  0.00000000E+00  !

SURFace   5.
   QUAD
   BLOCk   SEGMent ! nodes :44-18-19-45
     1.    -5.85786438E+00  5.00000000E+00 -1.00000000E+01  !
     2.    -5.85786438E+00  0.00000000E+00 -1.00000000E+01  !
     3.    -1.00000000E+01  0.00000000E+00 -5.85786438E+00  !
     4.    -1.00000000E+01  5.00000000E+00 -5.85786438E+00  !
RIGID surface is located -10.0 in negative side of axis 1
The plane(normal)vector's direction is 1
(I upload some drawing, to make it easy to understand)

PAIR commands were added as well.(but I think that troubles do not occur in this step)
Code: [Select]
PAIR      1.
   NTOR    2.    1.
   SOLM PENAlty 2.e7 2.e7
   AUGMent

PAIR      2.
   NTOR    3.    1.
   SOLM PENAlty 2.e7 2.e7
   AUGMent

PAIR      3.
   NTOR    4.    1.
   SOLM PENAlty 2.e7 2.e7
   AUGMent

PAIR      4.
   NTOR    5.    1.
   SOLM PENAlty 2.e7 2.e7
   AUGMent
   
end contact



#Please let me know which line should be corrected in the input files.


Title: Re: CONTact code with NURB
Post by: Prof. R.L. Taylor on February 15, 2017, 05:23:58 PM
Basically you cannot do contact with any of the nodal based algorithms -- the "nodes" are the "control points" which do not lie on the surface so any contact would be meaningless.  There are some prototype algorithms in the ./nurbfeap/contact/celmt05 and celmt06 directories you might try.

The surfaces are described off nurb blocks: e.g.,

surface 1
 nurb nf,3
  nfac,,3

surface 2
 nurb nf,1
  nfac,,6

pair 1
 nur3 1 2
 solm penalty 1e6,,2

is a basic type of input used for the contact.  You will have to experiment to get things right -- these are not fully developed modules and have been provided by others.


Title: Re: CONTact code with NURB
Post by: leeyongjae89 on February 27, 2017, 04:49:36 PM
professor,
Is there any programmer manuals for NURBs contact?
Title: Re: CONTact code with NURB
Post by: Prof. R.L. Taylor on March 03, 2017, 08:59:52 AM
I am sorry that presently there is no programming manual for the iga contact.

The contact for 3-d is in ./contact/celmt06 and is called type 'nur3'.  The surfaces are usually defined from those of the input mesh nurbs patches.  I attach a file that was prepared by a use  that can help you define the contact.

Generally, you can define a rigid surface as a nurbs patch in which all the dof's are fixed. 

Title: Re: CONTact code with NURB
Post by: Schandra on March 26, 2017, 08:50:21 AM
Dear all,

I am working on a contact problem in nurbFEAP.

I have the following questions for a part of my geometry:

!********************
!*** KNOT VECTORS ***
!********************
KNOTs
open       1          6          0.00000000 0.00000000 0.00000000 1.00000000 1.00000000 1.00000000
open       2          6          0.00000000 0.00000000 0.00000000 1.00000000 1.00000000 1.00000000
open       3          6          0.00000000 0.00000000 0.00000000 1.00000000 1.00000000 1.00000000
!**********************
!*** CONTROL POINTS ***
!**********************
NURBs coordinates
 1        0     0.000000000000   2.500000000000  -5.000000000000   1.000000000000
 2        0     0.000000000000   2.500000000000   0.000000000000   1.000000000000
 3        0     0.000000000000   2.500000000000   5.000000000000   1.000000000000
 4        0     2.500000000000   2.500000000000  -5.000000000000   0.707106781187
 5        0     2.500000000000   2.500000000000   0.000000000000   0.707106781187
 6        0     2.500000000000   2.500000000000   5.000000000000   0.707106781187
 7        0     2.500000000000   0.000000000000  -5.000000000000   1.000000000000
 8        0     2.500000000000   0.000000000000   0.000000000000   1.000000000000
 9        0     2.500000000000   0.000000000000   5.000000000000   1.000000000000
 10       0     0.000000000000   2.750000000000  -5.000000000000   1.000000000000
 11       0     0.000000000000   2.750000000000   0.000000000000   1.000000000000
 12       0     0.000000000000   2.750000000000   5.000000000000   1.000000000000
 13       0     2.750000000000   2.750000000000  -5.000000000000   0.707106781187
 14       0     2.750000000000   2.750000000000   0.000000000000   0.707106781187
 15       0     2.750000000000   2.750000000000   5.000000000000   0.707106781187
 16       0     2.750000000000   0.000000000000  -5.000000000000   1.000000000000
 17       0     2.750000000000   0.000000000000   0.000000000000   1.000000000000
 18       0     2.750000000000   0.000000000000   5.000000000000   1.000000000000
 19       0     0.000000000000   3.000000000000  -5.000000000000   1.000000000000
 20       0     0.000000000000   3.000000000000   0.000000000000   1.000000000000
 21       0     0.000000000000   3.000000000000   5.000000000000   1.000000000000
 22       0     3.000000000000   3.000000000000  -5.000000000000   0.707106781187
 23       0     3.000000000000   3.000000000000   0.000000000000   0.707106781187
 24       0     3.000000000000   3.000000000000   5.000000000000   0.707106781187
 25       0     3.000000000000   0.000000000000  -5.000000000000   1.000000000000
 26       0     3.000000000000   0.000000000000   0.000000000000   1.000000000000
 27       0     3.000000000000   0.000000000000   5.000000000000   1.000000000000


1) I defined the inner surface for the above geometry as follows:
!******************
!*** PATCH DATA ***
!******************

NPATch, 1
  SOLId   1    3    3    3   1   2   3
     1      2      3
     4      5      6
     7      8      9
    10     11     12
    13     14     15
    16     17     18
    19     20     21
    22     23     24
    25     26     27

NPATCH
  SURFACE 1  3 3 3  1 2 3
  1 2 3
  4 5 6
  7 8 9

Is my definition for inner surface correct?

2) How to define contact in polar coordinates

Thanks,
Chandra



Title: Re: CONTact code with NURB
Post by: Prof. R.L. Taylor on March 28, 2017, 03:08:59 PM
THe NPATch for a surface is wrong.  Look at the manual for correct input
Title: Re: CONTact code with NURB
Post by: Schandra on March 30, 2017, 04:30:59 AM
Dear Prof. Taylor,

Thanks for the reply, I have corrected my input file.
I have another query: Is there a possibility to merge surfaces from different patches into one surface.

Regards,
Chandra
Title: Re: CONTact code with NURB
Post by: Prof. R.L. Taylor on March 30, 2017, 09:07:57 AM
No, not in ver8.4.  In the next release there will be some features to do this -- but not for contact surfaces at present.
Title: Re: CONTact code with NURB
Post by: Schandra on March 30, 2017, 09:08:57 AM
Thank you Professor for your reply.
Title: Re: CONTact code with NURB
Post by: Schandra on March 31, 2017, 09:08:01 AM
Dear all,

I am trying to perform cylinder-cylinder contact problem in nurbFEAP.
I experimented with different combinations but am still unable to avoid penetration.

Example code:
contact on

  surface 1
   nurb nf,1
     nfac,,5

  surface 2
   nurb nf,2
     nfac,,2

 pair 1
   nur3 1 2
   solm penalty 1e6,,0
   augm
   quadrature,,2,2
 
end contact

It would really help if there is a clarification on these:
1.  What is the role of  'norm minus'
2. what do 1e6,,0 in 'solm penalty 1e6,,0' mean

I am also attaching my input file for your reference, can you please tell me the error in my input file.

Warm Regards,
Chandra

P.S: I defined my mesh using NPATCH instead of NBLOCK
Title: Re: CONTact code with NURB
Post by: Prof. R.L. Taylor on March 31, 2017, 08:17:29 PM
Can you simplify the problem so we start with only one quadrant of the cylinders.  That will allow us to construct the surfaces and the contact in a manner that we can explain all the steps, including issues of the normal to surfaces.  Also we can start to refine the meshing so that the contact can perform more reliably between the two objects.
Title: Re: CONTact code with NURB
Post by: Schandra on April 01, 2017, 03:23:55 AM
Dear Prof. Taylor,

Thanks for the suggestion and support. I shall still simplify it to one quadrant of cylinders.
My goal is to achieve contact between stent geometry and a blood vessel.

Warm Regards,
Chandra
Title: Re: CONTact code with NURB
Post by: Schandra on April 01, 2017, 05:56:54 AM
Dear Prof. Taylor,

I modified the geometry to be one quadrant of cylinder and I constructed surfaces with appropriate master/slave surfaces.
The issue with penetrating surfaces still exist. Can you please let me know how to define norm and penalty parameters correctly.

Modified contact code:

contact on

  surface 1
   nurb nf,1
     nfac,,5

  surface 2
   nurb nf,2
     nfac,,2
     norm minus

 pair 1
   nur3 1 2
   solm penalty 1e6,,0
   augm
   quadrature,,2,2

end contact

inter

batch
  prop,,1
  dt,,0.60
  loop,time,20
  time
    loop,,10
      augm
      loop Newton 100
         tang,,1
      next Newton
    next
    dt,,0.01
    npvi,ts,2,3
  next Time
 end


I am also forwarding the input file for your reference.  It would really help me if you can point out the error in my input file.

Warm Regards,
Chandra
Title: Re: CONTact code with NURB
Post by: Prof. R.L. Taylor on April 01, 2017, 10:24:43 AM
The attached file works.  The main problem was to add boundary conditions and displacements in the main set up; also to reverse the location of the negative sign (probably it is needed for any surface > 3).  The shape of the inside quadrant is not a cylinder and with the outside part fixed it is necessary to stop the analysis before pressing too hard.  I also increased the number of qudrature points for contact -- it may be too high.

Now if you complete the full objects it is recomended you use a single knot vector for all four quadrants.

e.g.; 0 0 0 1 1 2 2 3 3 4 4 4

and then also the side all around the object (with a tie to close).  This should keep your contact surfaces together too.  Eventually, you will need to refine the mesh in all directions to gain accuracy.
Title: Re: CONTact code with NURB
Post by: Schandra on April 01, 2017, 10:34:33 AM
Dear Prof. Taylor,

I now see my error, a big thanks for your time. I can now proceed further with my problem.
I shall post the example files for other users after I complete them.

Warm Regards,
Chandra

Title: Re: CONTact code with NURB
Post by: Schandra on September 13, 2017, 01:12:08 AM
Dear all,

I am working on contact problem between two cylinders in NURBFEAP(84).
For a simple case I am unable to acheive contact, I get a segmentation error.
I am sharing the file with you, it would be great if you can give me insights on it.

Regards,
Chandra
Title: Re: CONTact code with NURB
Post by: Prof. R.L. Taylor on September 13, 2017, 06:11:09 AM
Unfortunately, once you no longer use the block commands you cannot specify contact surfaces the way you did, feap does not know what a surface type is.  You will have to define the surfaces as elements (facets) that feap can understand.

In future, you should look at the output file (Oxxxxx) file to make sure you have good data.  You can also check that there are contact surfaces using the PLOT PAIR command.
Title: Re: CONTact code with NURB
Post by: Schandra on September 13, 2017, 06:24:52 AM
Thanks for the clarification Prof. Taylor. I defined it as per the earlier version and it was working well. I shall try to debug the difference.
Title: Re: CONTact code with NURB
Post by: Schandra on September 13, 2017, 08:47:09 AM
Dear Prof. Taylor,

I am working on a stent geometry which has multiple master patches enforcing contact on a slave cylinder.
Is there an elegant way of selecting the correct facet number for each individual patch of stent that should come in contact with inner surface of cylinder.
If I have to develop a code, can you please suggest me an approach to start with.

Warm Regards,
Chandra