Author Topic: LCLA- and RCLA-knot vectors  (Read 11370 times)

1user

  • Jr. Member
  • **
  • Posts: 11
LCLA- and RCLA-knot vectors
« on: December 02, 2018, 05:45:46 AM »
Dear all,

I am testing unclamped/clamped from one side knot-vectors in FEAP85.
Unclamped knot-vectors seem to work fine, however, I can not manage to create an element using LCLA- and RCLA-knot vectors.
FEAP recognizes the LCLA and RCLA commands, however, it does not see the element created using those knot-vectors (see input file attached).
I would really appreciate any hints here.

Best regards

Axuni

  • Jr. Member
  • **
  • Posts: 18
Re: LCLA- and RCLA-knot vectors
« Reply #1 on: May 28, 2019, 08:11:50 AM »
Dear 1user, dear FEAP forum,

I am also taking a look at unclamped knot vectors. As far as I have checked, LCLA is working as expected.
However I am having troubles when using RCLA.
Here are my observations and perhaps someone can give a hand with this.
1. For RCLA the flag "clflg" is set to TRUE
2. in the subroutine ExtractCurve.f the extraction operator Ce is shifted IF clflg (line 125), however it indicates that it should be for unclamped left end
3. when computing shpae functions, in derbezier1d.f, the extraction operator c_e is not correctly defined/called. It is looking for the "shifted position" of the array ce (see 2.)
4. This creates invalid shape functions, but only for RCLA

I guess there is a pointer or a flag that has to be corrected... I am also attaching an input file with a very simple 3D example.
Any feedback would be appreciated!

Best regards,
Axuni

Axuni

  • Jr. Member
  • **
  • Posts: 18
Re: LCLA- and RCLA-knot vectors
« Reply #2 on: May 28, 2019, 08:22:01 AM »
As additional information,
I noticed that if I explicitly request the correct "shifted" extractor operator in subroutine shp3d_nurb.f as:

point = np(289) + mr(np(273)+k1-1)

...instead of
point = np(289) + mr(np(273)+k1-1) + pp*pp*is

then it works.
Of course, this is a quick hack and it works as my unclamped RCLA is in direction 1.
I updated the input file because there was a mistake in my previous one.

Cheers!

1user

  • Jr. Member
  • **
  • Posts: 11
Re: LCLA- and RCLA-knot vectors
« Reply #3 on: June 08, 2019, 03:43:45 AM »
Dear Axuni,

thank you for your comments. I was looking for the cause of the  "shifted" extractor operator you were talking about.
I noticed that it was caused by the condition in pnurbel3d, line 116

if(lknot(0,k1).eq.2) then

which is defined currently only for unclamped vectors. However, on the left end, RCLA-vector works as an unclamped one.
After change to

if(lknot(0,k1).eq.2 .or. lknot(0,k1).eq.4) then

it seems to be working.
However, I am not sure if it solves all the problems. I will keep checking.

Best regards

Axuni

  • Jr. Member
  • **
  • Posts: 18
Re: LCLA- and RCLA-knot vectors
« Reply #4 on: June 11, 2019, 04:08:31 AM »
Dear 1user, dear FEAP Forum,

thanks for the great idea of finding where the IF was missing. RCLA seem to work well at my end.
Also, I was just taking a look at refinement by knot insertion and it seems that also there some conditionals are missing.
For instance, in subroutine pelvout3d.f (I found the issue there as I am working in 3D), in line 62 additional statements should include:

Code: [Select]
      elseif(lknot(0,kno1).eq.3) then   ! LClamped inot
        write(ios,2007) kno1,lknot(1,kno1),lknot(2,kno1),
     &                 (knots(n,kno1),n=1,lknot(1,kno1))
      elseif(lknot(0,kno1).eq.4) then   ! Unclamped inot
        write(ios,2008) kno1,lknot(1,kno1),lknot(2,kno1),
     &                 (knots(n,kno1),n=1,lknot(1,kno1))

then it seems to work.
Somehow the correctly newly defined knot vectors were not being written down to the necessary temporary and output files.
This seems to do the trick.
Again, this may be needed to check for 1d and 2d as well...

Best regards,
Axuni