FEAP User Forum

FEAP => nurbFEAP => Topic started by: alina.i on November 23, 2017, 03:42:09 AM

Title: Patch definition
Post by: alina.i on November 23, 2017, 03:42:09 AM
Dear FEAP Team,

I am creating the geometry for a solid disk which has a complex cross-section and then I analyze its contact with a Surface. My contact results didn't#t seem to be correct so I reduced the model to only one slave and one master element. First Input file doesn't allow me to define 2nd Surface of the element as a contact slave surface. According to the output file, FEAP can not read all the nodes on the 2nd surface (1st Input file) they are replaced with stars in the output.  After that I tried to change the order of the element definition and it helped with the contact surface issue. However, when I came back to the big model I figure out that the new order convention doesn't work in case of longer knot vectors (Input file 2).
I am using Version 8.4. Licence belongs to TU Dresden.
I would really appreciate any hint.

Best regards,
Alina Israfilova
Title: Re: Patch definition
Post by: Prof. R.L. Taylor on November 23, 2017, 10:28:01 AM
The NURBS contact is in development and has bugs.  It is provided for users to use as a prototype for further development.

Most has been developed by others.  As a starter, I would comment the lines in crpair06.f that set the cp0(12 and cp0(14  -- I do not think the search is needed for NURBS.  This will at least let you proceed and be able to do any needed debugging.

In general, feap uses sequential numbering of all variables.  It is permitted to leave out some values, however, this may result in printed messages as well as wasted array space.  This is what causes the knot print errors.  You can substitute the attached file to avoid the prints.
Title: Re: Patch definition
Post by: alina.i on November 24, 2017, 02:19:29 AM
Dear Prof. R.L. Taylor,

Thank you so much for the response. I commented out the mentioned lines in cpair06.f but it did not help to avoid the error with the surfaces. I tried to update the knotex.f subroutine, too. The Problem is that it calls the psetelm.f which I don't have in the built. If it is possible, could you please provide me this subroutine as well?

I really appreciate your help!
Best regards,
Alina Israfilova
Title: Re: Patch definition
Post by: alina.i on November 24, 2017, 05:53:40 AM
Dear Prof. R.L. Taylor,

After some tests, I can say that the numbering plays a significant role. Thank you for this hint!  After switching to a sequential numbering order without omitted numbers in NURBS definition part contact works. Finally, I am using the different conventions for 3*3*2 elements and those with longer knot-vectors. I have only 3*3*2 contact elements.

Best regards,
Alina Israfilova
Title: Re: Patch definition
Post by: Prof. R.L. Taylor on November 24, 2017, 10:54:10 AM
You need to use the file I posted to modify the routine that is in your program.  The changes are to skip the knot vectors that are not defined.  But if you have changed your routines to have consecutive numbering then no changes are needed. Also you should check if the numbering was why the cpair06 routine needed changes.
Title: Re: Patch definition
Post by: alina.i on November 27, 2017, 02:42:59 AM
Thank you, Prof. R.L. Taylor, for the hints. I sticked to consistent numbering and order. In the area of contact, I use now only 3*3*2 elements and contact works well. Another problem arises when I try to apply pressure on the inner side of the cross-section. I need to apply pressure to my long 3*2*13 elements. I got a reaction force out of the plane of the disk and checked in the output file the sum of applied forces which FEAP prints. The sum was equal to this reaction value. So, the solution works but the way I apply pressure is still wrong because since I apply it all along the disk the sum of forces should be zero.  I tried to apply pressure only to my 3*3*2 elements - the result is perfect. So, again the problem with long knot vector.
I don't want to get rid of this long elements because they allow me to have a more complex cross-section. Otherwise, I need to reduce the number of control points along the cross-section significantly since FEAP doesn't allow me to create more than 520 elements. So, now my question is: is it possible to create more elements or something can help me with the pressure prescribing?
I was also thinking about using vectors with repetitive knots inside the batch not only on the edges. Does FEAP support it? I tried to create those but couldn't create proper geometry without errors.

I will really appreciate any help or advice.
Title: Re: Patch definition
Post by: alina.i on March 27, 2018, 04:06:11 AM
Dear all,

after a while, I am back on the modeling using NURBS in FEAP. I am facing the same problem with the size limitation for the model. So, I have 551 elements and 2608 points. While creating the model Feap gives an error in shp3d_nurb.f:  line 80. 'nb' is equal to 0 and ktnum is not defined for this value. It happens when eltyp becomes equal 1000. With a smaller problem, I did not experience this problem.

I would be grateful for any hint!!
Alina
Title: Re: Patch definition
Post by: Prof. R.L. Taylor on March 27, 2018, 09:50:00 AM
This happens since we pack the knot number and the interval into one variable and store in ix(nen+7,*), ix(nen+8,*) and ix(nen+9,*) locations in the element connection array.  Currently these are packed as: knot_num + 500*interval where
the interval is the spacing in the knot used to define elements.   We never intended for the code to be use for such large problems and to do so will require many changes to the definitions in the 'ix' array and the extractions from it to define the interpolations.  Probably one has fewer than 500 knot vectors? and the change could be to reverse the definition and extractions.  The other change would be to add 3 locations to the ix array to store nen+10 nen+11 and nen+12 values.

How many knot vectors are you intending to use?

Title: Re: Patch definition
Post by: alina.i on March 28, 2018, 12:21:29 AM
Dear Prof. R.L. Taylor,

Thank you so much for the quick response. I tried different amounts of knot-vectors. I can describe all the elements using less than 10 knot-vectors. However, the number of control points and elements cannot be reduced.
Using information which you provided I changed the definition of the variable ix(nen+7,e)  = nb + 2000*i1 in pnurbel3d.f, pnurbel2d.f and pnurbel2d.f. Also  nb = mod(eltyp,2000) and  ii = eltyp/2000 in shp3d_nurb.f. It did work. I can see my model created. I didn't try to analyze the model yet though. Are changes I made crucial for the solution process? I will give a feedback once I test the created model.

I really appreciate your help!
Best regards,
Alina Israfilova