Topic: Isogeometric Analysis of Eigenvalue Problems

Dear Borek,
I want to solve the eigenvalue problems of isogeometric analysis with OOFEM. Here is my input file.

domevibration.out
domevibration
#LinearStatic nsteps 1
EigenValueDynamic nroot 4 rtolv 1.e-6
domain 3d
OutputManager tstep_all dofman_all element_all
ndofman 96 nelem 1 ncrosssect 1 nmat 1 nbc 2 nic 0 nltf 1
node    1    coords    4    4.5826    2    0    1    bc    3    2    1    1
node    2    coords    4    4.5826    2    0.82843    0.85355    bc    3    2    1    1
node    3    coords    4    4.5826    0.82843    2    0.85355    bc    3    2    1    1
node    4    coords    4    4.5826    0    2    1    bc    3    2    1    1
node    5    coords    4    4.3455    2.5432    0    0.97188    bc    3    0    0    1
node    6    coords    4    4.3455    2.5432    1.0535    0.82955    bc    3    0    0    0
node    7    coords    4    4.3455    1.0535    2.5432    0.82955    bc    3    0    0    0
node    8    coords    4    4.3455    0    2.5432    0.97188    bc    3    0    1    0
node    9    coords    4    3.6197    3.5028    0    0.94375    bc    3    0    0    1
node    10    coords    4    3.6197    3.5029    1.451    0.80554    bc    3    0    0    0
node    11    coords    4    3.6197    1.451    3.5029    0.80554    bc    3    0    0    0
node    12    coords    4    3.6197    0    3.5028    0.94375    bc    3    0    1    0
node    13    coords    4    2.6706    4.2708    0    0.94375    bc    3    0    0    1
node    14    coords    4    2.6706    4.2708    1.769    0.80554    bc    3    0    0    0
node    15    coords    4    2.6706    1.769    4.2708    0.80554    bc    3    0    0    0
node    16    coords    4    2.6706    0    4.2708    0.94375    bc    3    0    1    0
node    17    coords    4    1.5808    4.7804    0    0.97188    bc    3    0    0    1
node    18    coords    4    1.5807    4.7804    1.9801    0.82955    bc    3    0    0    0
node    19    coords    4    1.5807    1.9801    4.7804    0.82955    bc    3    0    0    0
node    20    coords    4    1.5808    0    4.7804    0.97188    bc    3    0    1    0
node    21    coords    4    1    4.899    0    1    bc    3    1    1    1
node    22    coords    4    1    4.8991    2.0293    0.85355    bc    3    1    1    1
node    23    coords    4    1    2.0293    4.8991    0.85355    bc    3    1    1    1
node    24    coords    4    1    0    4.899    1    bc    3    1    1    1
node    25    coords    4    4.8512    2    0    1    bc    3    2    1    1
node    26    coords    4    4.8512    2    0.82843    0.85355    bc    3    2    1    1
node    27    coords    4    4.8512    0.82843    2    0.85355    bc    3    2    1    1
node    28    coords    4    4.8512    0    2    1    bc    3    2    1    1
node    29    coords    4    4.5988    2.5886    0    0.97188    bc    3    0    0    1
node    30    coords    4    4.5988    2.5886    1.0722    0.82955    bc    3    0    0    0
node    31    coords    4    4.5988    1.0722    2.5886    0.82955    bc    3    0    0    0
node    32    coords    4    4.5988    0    2.5886    0.97188    bc    3    0    1    0
node    33    coords    4    3.8214    3.63    0    0.94375    bc    3    0    0    1
node    34    coords    4    3.8213    3.63    1.5036    0.80554    bc    3    0    0    0
node    35    coords    4    3.8213    1.5036    3.63    0.80554    bc    3    0    0    0
node    36    coords    4    3.8214    0    3.63    0.94375    bc    3    0    1    0
node    37    coords    4    2.8012    4.4653    0    0.94375    bc    3    0    0    1
node    38    coords    4    2.8011    4.4652    1.8496    0.80554    bc    3    0    0    0
node    39    coords    4    2.8011    1.8496    4.4652    0.80554    bc    3    0    0    0
node    40    coords    4    2.8012    0    4.4653    0.94375    bc    3    0    1    0
node    41    coords    4    1.6268    5.022    0    0.97188    bc    3    0    0    1
node    42    coords    4    1.6268    5.022    2.0802    0.82955    bc    3    0    0    0
node    43    coords    4    1.6268    2.0802    5.022    0.82955    bc    3    0    0    0
node    44    coords    4    1.6268    0    5.022    0.97188    bc    3    0    1    0
node    45    coords    4    1    5.1533    0    1    bc    3    1    1    1
node    46    coords    4    1    5.1533    2.1346    0.85355    bc    3    1    1    1
node    47    coords    4    1    2.1346    5.1533    0.85355    bc    3    1    1    1
node    48    coords    4    1    0    5.1533    1    bc    3    1    1    1
node    49    coords    4    5.3883    2    0    1    bc    3    2    1    1
node    50    coords    4    5.3883    2    0.82843    0.85355    bc    3    2    1    1
node    51    coords    4    5.3883    0.82843    2    0.85355    bc    3    2    1    1
node    52    coords    4    5.3883    0    2    1    bc    3    2    1    1
node    53    coords    4    5.1055    2.6793    0    0.97188    bc    3    0    0    1
node    54    coords    4    5.1054    2.6793    1.1098    0.82955    bc    3    0    0    0
node    55    coords    4    5.1054    1.1098    2.6793    0.82955    bc    3    0    0    0
node    56    coords    4    5.1055    0    2.6793    0.97188    bc    3    0    1    0
node    57    coords    4    4.2245    3.8841    0    0.94375    bc    3    0    0    1
node    58    coords    4    4.2245    3.8841    1.6089    0.80554    bc    3    0    0    0
node    59    coords    4    4.2245    1.6089    3.8841    0.80554    bc    3    0    0    0
node    60    coords    4    4.2245    0    3.8841    0.94375    bc    3    0    1    0
node    61    coords    4    3.062    4.8541    0    0.94375    bc    3    0    0    1
node    62    coords    4    3.062    4.8541    2.0107    0.80554    bc    3    0    0    0
node    63    coords    4    3.062    2.0107    4.8541    0.80554    bc    3    0    0    0
node    64    coords    4    3.062    0    4.8541    0.94375    bc    3    0    1    0
node    65    coords    4    1.7189    5.5051    0    0.97188    bc    3    0    0    1
node    66    coords    4    1.719    5.5052    2.2803    0.82955    bc    3    0    0    0
node    67    coords    4    1.719    2.2803    5.5052    0.82955    bc    3    0    0    0
node    68    coords    4    1.7189    0    5.5051    0.97188    bc    3    0    1    0
node    69    coords    4    1    5.6618    0    1    bc    3    1    1    1
node    70    coords    4    1    5.6619    2.3453    0.85355    bc    3    1    1    1
node    71    coords    4    1    2.3453    5.6619    0.85355    bc    3    1    1    1
node    72    coords    4    1    0    5.6618    1    bc    3    1    1    1
node    73    coords    4    5.6569    2    0    1    bc    3    2    1    1
node    74    coords    4    5.657    2    0.82843    0.85355    bc    3    2    1    1
node    75    coords    4    5.657    0.82843    2    0.85355    bc    3    2    1    1
node    76    coords    4    5.6569    0    2    1    bc    3    2    1    1
node    77    coords    4    5.3588    2.7246    0    0.97188    bc    3    0    0    1
node    78    coords    4    5.3588    2.7246    1.1286    0.82955    bc    3    0    0    0
node    79    coords    4    5.3588    1.1286    2.7246    0.82955    bc    3    0    0    0
node    80    coords    4    5.3588    0    2.7246    0.97188    bc    3    0    1    0
node    81    coords    4    4.4262    4.0112    0    0.94375    bc    3    0    0    1
node    82    coords    4    4.4262    4.0112    1.6615    0.80554    bc    3    0    0    0
node    83    coords    4    4.4262    1.6615    4.0112    0.80554    bc    3    0    0    0
node    84    coords    4    4.4262    0    4.0112    0.94375    bc    3    0    1    0
node    85    coords    4    3.1926    5.0486    0    0.94375    bc    3    0    0    1
node    86    coords    4    3.1925    5.0485    2.0911    0.80554    bc    3    0    0    0
node    87    coords    4    3.1925    2.0911    5.0485    0.80554    bc    3    0    0    0
node    88    coords    4    3.1926    0    5.0486    0.94375    bc    3    0    1    0
node    89    coords    4    1.765    5.7467    0    0.97188    bc    3    0    0    1
node    90    coords    4    1.7651    5.7467    2.3803    0.82955    bc    3    0    0    0
node    91    coords    4    1.7651    2.3803    5.7467    0.82955    bc    3    0    0    0
node    92    coords    4    1.765    0    5.7467    0.97188    bc    3    0    1    0
node    93    coords    4    1    5.9161    0    1    bc    3    1    1    1
node    94    coords    4    1    5.9161    2.4506    0.85355    bc    3    1    1    1
node    95    coords    4    1    2.4506    5.9161    0.85355    bc    3    1    1    1
node    96    coords    4    1    0    5.9161    1    bc    3    1    1    1
nurbs3delement 1 nodes 96 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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 mat 1 crossSect 1 knotvectoru 3 0 1 2 knotmultiplicityu 3 3 1 3 knotvectorv 5 0 1 2 3 4 knotmultiplicityv 5 3 1 1 1 3 knotvectorw 3 0 1 2 knotmultiplicityw 3 3 1 3 degree 3 2 2 2 nip 64
#
SimpleCS 1
#
IsoLE 1 d 0. E 15.0e3 n 0.25 tAlpha 0.000012
BoundaryCondition  1 loadTimeFunction 1 prescribedvalue 0.0
BoundaryCondition  2 loadTimeFunction 1 prescribedvalue -1.0
ConstantFunction 1 f(t) 1.0


But some errors appeared:

OOFEM - Finite Element Solver           
        Copyright (C) 1994-2010 Borek Patzak       
____________________________________________________
Total number of solution steps 1
Instanciating domain                1
Instanciated nodes & sides         96
Instanciated elements               1
Instanciated cross sections         1
Instanciated materials              1
Instanciated BCs                    2
Instanciated ICs                    0
Instanciated load-time fncts        1
Consistency check                  ok
Assembling stiffness and mass matrices
_______________________________________________________
Error: (/home/lixinkang/example/oofem-2.1/src/oofemlib/iga/structuralelementevaluator.C:125)
giveCharacteristicMatrix: Unknown Type of characteristic mtrx (MassMatrix)
_______________________________________________________
stack trace:
  ./oofem() [0x8203928]
  ./oofem() [0x827c0ed]
  ./oofem() [0x827dfbd]
  ./oofem() [0x80551ed]
  ./oofem() [0x81fcff1]
  ./oofem() [0x80ea18c]
  ./oofem() [0x81fc1bb]
  ./oofem() [0x804aca5]
  /lib/tls/i686/cmov/libc.so.6 : __libc_start_main()+0xe6
  ./oofem() [0x804a4d1]
Total 1 error(s) and 0 warning(s) reported
oofem exit code 1


So how can I fix this error? Please help me! Thank you for your reply.

Re: Isogeometric Analysis of Eigenvalue Problems

Mass matrices aren't implemented for those elements yet, and without it, doing any kind of dynamic simulation is impossible.

Re: Isogeometric Analysis of Eigenvalue Problems

Is there any plan for the OOFEM team to implement mass matrices for NURBS elements? Or how can I add these functions myself? Where to start?

Re: Isogeometric Analysis of Eigenvalue Problems

Well, its a straight forward procedure of copying things over from the StructuralElement to the corresponding Evaluator class. I was going to wait on doing that since Borek+friends plan on changing all elements to using Evaluator classes.

Integration for nurbs require special care though. I'm not 100% on what "SubPatch" and "ElementLocalCodeNumbers" means.
I implemented a simple approach that should at least work for interpolations with no subpatches, so I don't know how it acts for NURBs.
I'm going to have to leaave that question for Borek to look into.


Even if what i wrote does work for subpatches without further changes, you still need to add a suitable integration class to the specific element;

    virtual IntegrationRule* giveMassMtrxIntegrationRule() { return NULL; }

I suppose something similar to the default integration rule for that element should work. Perhaps higher.

Re: Isogeometric Analysis of Eigenvalue Problems

Thank you so much for your help and I feel very grateful for it, even though I cannot understand what you mean quite well, 'cause I am a new in OOFEM, and all I can understand is the things in oofem input file.
I want to read the oofem codes on the purpose of isogeometric analysis. Where to start?

Re: Isogeometric Analysis of Eigenvalue Problems

Well the documentation was a bit sparse, so I dont know what all the routines does.

StructuralElementEvaluator is the class which constructs the element M and K matrices.
I studied the code in there to compare the integration for the mass matrix with that of the stiffness matrix. The stiffness matrix uses some functionality related to "SubPatch" and "ElementLocalCodeNumbers" which i don't understand what they mean (I have never worked with NURBS).

Some integration rule is required, which is usually not the same for K as for M, so I didn't set any default there (at least not for classical elements).

Maybe some other developer could fill in the missing details there.