Author Topic: user elements eigenform  (Read 6649 times)

blackbird

  • Full Member
  • ***
  • Posts: 100
user elements eigenform
« on: August 04, 2014, 02:12:17 AM »
Dear Sir or Madam,

I would like to calculate an eigenfrequency and plot an eigenform of the user element I implemented recently in FEAP 8.3. For this purpose I prepared the material and mesh and stated:

BATCh
 TANG,,-1
 EIGE VECT
END

While I created a mesh with only one element, there is now a list in the output file with 12 eigenfrequencies and its correpsondent eigenvectors. Unfortunately these are independent of my mass parameter. When I change the mass the eigenfrequencies stay the same. At least the eigenfrequencies show sensitivity to a change of stiffness, also I already calculated quite good results with that element in dynamics using the TRANsient command.

First of all, I did not use the switch for (isw.eq.5), instead I calculated coefficient matrix S as it is described in FEAP 8.3 Programmer Manual page 42:
S= c1*K+c2*C+c3*M

As this may have been the reason, I added (isw.eq.5) today to the user element, giving back mass matrix for that call. In the input file I added

BATCh
 MASS
 ...
END

before the eigen-calculation. This leads to an error in the output file

*ERROR* PMACR1: No non-zero terms in mass matrix: Check density value for materials

Now, my element has 2 mechanical and one additional DOF, which is not mechanical. The nonmechanical DOF must not have mass and should not contribute in eigenvalue calculation at all. So I tried, before stating MASS:

BATCh
 EIGV, DOFS, 1, 1, 0
 ...
END

But now there are strange things written in the output file:

 *Command   1 * eigv dofs           v:   1.00       1.00       0.00   
                                                           t=     0.00     0.02
   Eigenpair active DOF (1 = active; 0 = inactive)
         1-dof =  0  2-dof =  0  3-dof =  0

It seems to me, that I stated the command correctly but output afterwards says I did not. Also PMACR-error is still there, when I try to calculate mass afterwards.

Could you please tell me, what I am doing wrong here?

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2649
Re: user elements eigenform
« Reply #1 on: August 05, 2014, 07:52:59 AM »
The eigen solution uses only the mass from isw = 5.  If you pass through the process as you describe you may be getting more than just the mass, or it may be scaled incorrectly.  Look at one of the elements provided with the program and observe how the mass is computed.  It is not scaled by a time step or the integration parameters.  Similarly, when you compute the tangent for the solution it should not be scaled or include other matrices unless you have provide a SHIFT.  You should not specify a TRANS command when computing the eigen solution to avoid spurrious matrices being assembled.  We will set the c_i's to delete matrices for this case and for the shift.

blackbird

  • Full Member
  • ***
  • Posts: 100
Re: user elements eigenform
« Reply #2 on: August 06, 2014, 04:31:21 AM »
>> The eigen solution uses only the mass from isw = 5.

I already noticed, that was why I added action for this isw-switch.

>> If you pass through the process as you describe you may be getting more than just the mass, or it may be scaled incorrectly.

Sorry, I was describing my way of getting coefficient matrix while calculating transient examples. Of course this has nothing to do with eigen solution, I just wanted to state why I didnt use isw.eq.5 in the first place. At the moment isw.eq.5 is giving mass matrice only without any multiplier. isw.eq.3 is giving back c1*s+c2*c+c3*m which should be correct, as long as I dont state any transient-command and c2=c3=0 and c1=1.

Now here is the problem: Output file says:

*ERROR* PMACR1: No non-zero terms in mass matrix: Check density value for materials

and ends the calculation. But due to my element there are zero's on the diagonal of an element matrice, because the element nodes do have 3 dof while only 2 of them are mechanical. So mass matrice for one node looks like

[ X X 0 ]
[ X X 0 ]
[ 0 0 0 ]

While having 3 dof per node but only 2 of them contributing to mass and only these 2 should be taken into account for eigen solution at all, I need a way to exclude third dof from eigen solution completely. While reading the manual it seems to me, that the command
EIGV, DOFS, 1, 1, 0
should exactly cover my needs. But unfortunately, as I already stated in previous post, this seems not to work.

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2649
Re: user elements eigenform
« Reply #3 on: August 06, 2014, 06:13:53 AM »
You can control which dof's are active by using the PARTition command.  In your case you need a partition that has the form

PARTition
   1 1 0

which says the first two degrees of freedom are active.  If you have the three partitions:

PART
  1 1 1  ! Partition 1
  1 1 0  ! Partition 2
  0 0 1  ! Partition 3

then in the solution you can control which form you want with the command:

PART,,n  where "n' is the number.

To describe which integrator applies to each partition you need to be in that number.  So for the transient solution you would be in partition 1

PART,,1
TRANS NEWMark or what ever you want

PART,,2
  TANG
  SUBS
   ....etc.

Does this help?


FEAP_Admin

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 993
Re: user elements eigenform
« Reply #4 on: August 06, 2014, 01:35:22 PM »
The EIGE command computes the eigenpairs of a single element:  K_e x = lambda x where K_e is the stiffness matrix from a single element.

It seems that what you want is K_e x  = lambda M_e x, where M_e is the element's mass matrix.  If that is the case then, you will need to write your
own umacr command to do this.  Have a look in program/pmacr3.f to see exactly what EIGE is doing and then you can create your own specialized version.
For your version you will want two calls to formfe( ) one with isw.eq.5 and the other with isw.eq.3.  Note, that EIGE manipulates the ctan values.  In your
implementation you will also need to call a generalized eigenvalue solver since with a singular mass you can not convert it to standard form.