Hi there.
I'm trying to create a model which includes rigid links, but I'm constantly having the error:
ProfileSPDLinDirectSolver::solve() - aii < 0 (i, aii): (2, 0)
WARNING NewtonRaphson::solveCurrentStep() -the LinearSysOfEqn failed in solve()
StaticAnalysis::analyze() - the Algorithm failed at iteration: 0 with domain at load factor 1
OpenSees > analyze failed, returned: -3 error flag
The following code is a simple example that includes one rigid link, and I keep receiving that same error. I'd think there are some troubles with the rigid link formulation, or maybe I don't have what I need to run the code properly. Can you please take a look at this? Thanks!
## simple rigid link example ##
wipe
##### MODEL DEFINITION #####
set numdof 6;
model basic -ndm 3 -ndf $numdof
##### NODE DEFINITION #####
set numNode 5;
node 1 0 0 0;
node 2 0 0 3;
node 3 -2 0 0;
node 4 -2 0 3;
node 5 -1 0 3;
##### BOUNDARY CONDITIONS DEFINITION #####
fix 1 1 1 1 1 1 1;
fix 3 1 1 1 1 1 1;
fix 5 0 1 1 1 0 1;
##### RIGID LINKS DEFINITION #####
# rigidLink beam 5 2;
# rigidLink beam 5 4;
rigidLink bar 5 2;
rigidLink bar 5 4;
##### BEAM ELEMENTS DEFINITION #####
set A 0;
set E 2e+011;
set G 7.69231e+010;
set Iyy 0.00045;
set Izz 0.0002;
set J 0;
geomTransf Linear 1 0 1 0
element elasticBeamColumn 1 1 2 $A $E $G $J $Iyy $Izz 1
element elasticBeamColumn 2 3 4 $A $E $G $J $Iyy $Izz 1
##### SET RECORDER #####
recorder Node -file node2out.out -time -node 2 -dof 1 3 disp
##### STATIC LOAD DEFINITION #####
timeSeries Constant 1
pattern Plain 1 1 {
load 2 -1000.000000 0.000000 0.000000 0.000000 0.000000 0.000000
}
integrator LoadControl 1.0
test EnergyIncr 1.0e-3 10 0
algorithm Newton
# algorithm NewtonLineSearch
# algorithm ModifiedNewton
# numberer Plain
numberer RCM
constraints Plain
# constraints Lagrange
system ProfileSPD
# system SparseSYM
analysis Static
analyze 1
## end of example ##
Problem with Rigid Link formulation?
Moderators: silvia, selimgunay, Moderators
Re: Problem with Rigid Link formulation?
Rigid links are only MP_constraint objects. They are not elements. In your model you do not have enough elements. Instead of having element that goes from 3 to 4 you need two elements: one that goes from 3 to 5 and another from 5 to 4. You also need an element to connect two columns.
You can not use Plain constraint when having MP-constraints in your model. If using Lagrange ensure that the system IS NOT symmetric positive definite.
Your system is completely defined in 2D. Why do you model it in 3D?
You can not use Plain constraint when having MP-constraints in your model. If using Lagrange ensure that the system IS NOT symmetric positive definite.
Your system is completely defined in 2D. Why do you model it in 3D?
Re: Problem with Rigid Link formulation?
vesna wrote:
> Rigid links are only MP_constraint objects. They are not elements. In your
> model you do not have enough elements. Instead of having element that goes
> from 3 to 4 you need two elements: one that goes from 3 to 5 and another
> from 5 to 4. You also need an element to connect two columns.
>
> You can not use Plain constraint when having MP-constraints in your model.
> If using Lagrange ensure that the system IS NOT symmetric positive
> definite.
>
> Your system is completely defined in 2D. Why do you model it in 3D?
Hi vesna, thanks for the quick reply.
1. Rigid links should constrain the motion of one node to another node, right? So why should I connect this nodes with an element?
2. Yes, the model is defined 3D, but with the appropriate constraining, it should work as 2D with no problem, right?
3. What do you mean with NOT positive definite? I thought that a structure correctly restrained is always positive definite.
Here is a slightly modified version of the code, and still is not working. Any idea why?
Thanks again!
## simple rigid link example ##
wipe
##### MODEL DEFINITION #####
set numdof 6;
model basic -ndm 3 -ndf $numdof
##### NODE DEFINITION #####
set numNode 4;
node 1 0 0 0;
node 2 0 0 3;
node 3 -2 0 0;
node 4 -2 0 3;
##### BOUNDARY CONDITIONS DEFINITION #####
fix 1 1 1 1 1 1 1;
fix 2 0 1 1 1 0 1;
fix 3 1 1 1 1 1 1;
fix 4 0 1 1 1 0 1;
##### RIGID LINKS DEFINITION #####
rigidLink bar 4 2;
##### BEAM ELEMENTS DEFINITION #####
set A 0;
set E 2e+011;
set G 7.69231e+010;
set Iyy 0.00045;
set Izz 0.0002;
set J 0;
geomTransf Linear 1 0 0 1
element elasticBeamColumn 1 1 2 $A $E $G $J $Iyy $Izz 1
element elasticBeamColumn 2 3 4 $A $E $G $J $Iyy $Izz 1
##### SET RECORDER #####
recorder Node -file node2out.out -time -node 2 -dof 1 3 disp
##### STATIC LOAD DEFINITION #####
timeSeries Constant 1
pattern Plain 1 1 {
load 2 -1000.000000 0.000000 0.000000 0.000000 0.000000 0.000000
}
integrator LoadControl 1.0
test EnergyIncr 1.0e-3 10 0
algorithm Newton
numberer Plain
constraints Lagrange
system ProfileSPD
analysis Static
analyze 1
## end of code ##
> Rigid links are only MP_constraint objects. They are not elements. In your
> model you do not have enough elements. Instead of having element that goes
> from 3 to 4 you need two elements: one that goes from 3 to 5 and another
> from 5 to 4. You also need an element to connect two columns.
>
> You can not use Plain constraint when having MP-constraints in your model.
> If using Lagrange ensure that the system IS NOT symmetric positive
> definite.
>
> Your system is completely defined in 2D. Why do you model it in 3D?
Hi vesna, thanks for the quick reply.
1. Rigid links should constrain the motion of one node to another node, right? So why should I connect this nodes with an element?
2. Yes, the model is defined 3D, but with the appropriate constraining, it should work as 2D with no problem, right?
3. What do you mean with NOT positive definite? I thought that a structure correctly restrained is always positive definite.
Here is a slightly modified version of the code, and still is not working. Any idea why?
Thanks again!
## simple rigid link example ##
wipe
##### MODEL DEFINITION #####
set numdof 6;
model basic -ndm 3 -ndf $numdof
##### NODE DEFINITION #####
set numNode 4;
node 1 0 0 0;
node 2 0 0 3;
node 3 -2 0 0;
node 4 -2 0 3;
##### BOUNDARY CONDITIONS DEFINITION #####
fix 1 1 1 1 1 1 1;
fix 2 0 1 1 1 0 1;
fix 3 1 1 1 1 1 1;
fix 4 0 1 1 1 0 1;
##### RIGID LINKS DEFINITION #####
rigidLink bar 4 2;
##### BEAM ELEMENTS DEFINITION #####
set A 0;
set E 2e+011;
set G 7.69231e+010;
set Iyy 0.00045;
set Izz 0.0002;
set J 0;
geomTransf Linear 1 0 0 1
element elasticBeamColumn 1 1 2 $A $E $G $J $Iyy $Izz 1
element elasticBeamColumn 2 3 4 $A $E $G $J $Iyy $Izz 1
##### SET RECORDER #####
recorder Node -file node2out.out -time -node 2 -dof 1 3 disp
##### STATIC LOAD DEFINITION #####
timeSeries Constant 1
pattern Plain 1 1 {
load 2 -1000.000000 0.000000 0.000000 0.000000 0.000000 0.000000
}
integrator LoadControl 1.0
test EnergyIncr 1.0e-3 10 0
algorithm Newton
numberer Plain
constraints Lagrange
system ProfileSPD
analysis Static
analyze 1
## end of code ##
Re: Problem with Rigid Link formulation?
1. If you do not have enough constrains in your model (like it was in your previous case) you need to add the element/elements to make it stable. In your new example you had enough constrains such that your model is stable even without a rigid link. Thus, by adding a rigid link you are imposing additional constraint to your system which are now easy to handle.
2. Yes, the 3D model will work in 2D, but I was wandering why are you making it more complex than you need to.
3. When you use Lagrange handler the system of equation to be solved is not symmetric positive definitive. It has zeros on diagonal. Read about Lagrange handler and you will understand what I am talking about.
You had few errors in your model:
1. Your transformation was not good
2. Your constraint and solver can not go together
I made few changes and it works now:
wipe
##### MODEL DEFINITION #####
set numdof 6;
model basic -ndm 3 -ndf $numdof
##### NODE DEFINITION #####
set numNode 4;
node 1 0 0 0;
node 2 0 0 3;
node 3 -2 0 0;
node 4 -2 0 3;
##### BOUNDARY CONDITIONS DEFINITION #####
fix 1 1 1 1 1 1 1;
fix 2 0 1 1 1 0 1;
fix 3 1 1 1 1 1 1;
fix 4 0 1 1 1 0 1;
##### RIGID LINKS DEFINITION #####
rigidLink bar 4 2;
##### BEAM ELEMENTS DEFINITION #####
set A 0.0;
set E 2e+011;
set G 7.69231e+010;
set Iyy 0.00045;
set Izz 0.0002;
set J 0.0;
geomTransf Linear 1 -1 0 0
element elasticBeamColumn 1 1 2 $A $E $G $J $Iyy $Izz 1
element elasticBeamColumn 2 3 4 $A $E $G $J $Iyy $Izz 1
##### SET RECORDER #####
#recorder Node -file node2out.out -time -node 2 -dof 1 3 disp
##### STATIC LOAD DEFINITION #####
timeSeries Constant 1
pattern Plain 1 1 {
load 2 -1000.000000 0.000000 0.000000 0.000000 0.000000 0.000000
}
integrator LoadControl 1.0
test EnergyIncr 1.0e-3 10 0
algorithm Newton
numberer Plain
#constraints Lagrange
constraints Transformation
#system ProfileSPD
system BandGeneral
analysis Static
analyze 1
print -node 2 4
2. Yes, the 3D model will work in 2D, but I was wandering why are you making it more complex than you need to.
3. When you use Lagrange handler the system of equation to be solved is not symmetric positive definitive. It has zeros on diagonal. Read about Lagrange handler and you will understand what I am talking about.
You had few errors in your model:
1. Your transformation was not good
2. Your constraint and solver can not go together
I made few changes and it works now:
wipe
##### MODEL DEFINITION #####
set numdof 6;
model basic -ndm 3 -ndf $numdof
##### NODE DEFINITION #####
set numNode 4;
node 1 0 0 0;
node 2 0 0 3;
node 3 -2 0 0;
node 4 -2 0 3;
##### BOUNDARY CONDITIONS DEFINITION #####
fix 1 1 1 1 1 1 1;
fix 2 0 1 1 1 0 1;
fix 3 1 1 1 1 1 1;
fix 4 0 1 1 1 0 1;
##### RIGID LINKS DEFINITION #####
rigidLink bar 4 2;
##### BEAM ELEMENTS DEFINITION #####
set A 0.0;
set E 2e+011;
set G 7.69231e+010;
set Iyy 0.00045;
set Izz 0.0002;
set J 0.0;
geomTransf Linear 1 -1 0 0
element elasticBeamColumn 1 1 2 $A $E $G $J $Iyy $Izz 1
element elasticBeamColumn 2 3 4 $A $E $G $J $Iyy $Izz 1
##### SET RECORDER #####
#recorder Node -file node2out.out -time -node 2 -dof 1 3 disp
##### STATIC LOAD DEFINITION #####
timeSeries Constant 1
pattern Plain 1 1 {
load 2 -1000.000000 0.000000 0.000000 0.000000 0.000000 0.000000
}
integrator LoadControl 1.0
test EnergyIncr 1.0e-3 10 0
algorithm Newton
numberer Plain
#constraints Lagrange
constraints Transformation
#system ProfileSPD
system BandGeneral
analysis Static
analyze 1
print -node 2 4
Re: Problem with Rigid Link formulation?
The problem seems to be in the definition of the geometric transformation. Thanks again!