three dimensional contact element
Moderators: silvia, selimgunay, Moderators
-
- Posts: 82
- Joined: Tue Jun 19, 2012 1:56 am
three dimensional contact element
Hi,
IS anyone knows how to use SimpleContact3D element. In it, I am facin problem of giving the lagrangian node. I am not able to understand where is it have to give and how.
Please reply........
IS anyone knows how to use SimpleContact3D element. In it, I am facin problem of giving the lagrangian node. I am not able to understand where is it have to give and how.
Please reply........
Re: three dimensional contact element
Here is an example:
wipe;
file mkdir Data;
model basic -ndm 3 -ndf 6;
#nodes
node 1 0 0 0;
node 2 0 0 10;
node 3 0 0 10;
# Single point constraints -- Boundary Conditions
fix 1 1 1 1 1 1 1;
fix 3 1 1 1 1 1 1;
#mass
mass 2 100 100 100 10e-10 10e-10 10e-10;
# Define ELEMENTS -----------------------------------------------------------
geomTransf Linear 1 0 -1 0;
element elasticBeamColumn 1 1 2 0.01 3.29e10 1.0e20 2.0e-5 1.0e-5 1.0e-5 1;
#contact element
model basic -ndm 3 -ndf 3;
node 12 0 0 10;
node 13 0 0 10;
equalDOF 3 13 1 2 3;
equalDOF 2 12 1 2 3;
element zeroLengthContact3D 3 12 13 1.0e+5 0.5e+5 0.5 0 3;
# Define RECORDERS ---------------------------------------------------------
recorder Node -file data/nodevel.out -time -node 2 -dof 1 vel;
recorder Node -file data/nodeDisp.out -time -node 2 -dof 1 disp;
recorder Node -file data/nodeaccel.out -time -node 2 -dof 1 accel;
# define load and analysis -----------------------------------------------------------
set dt 0.02;
set Scale 1.0;
set accelSeries "Path -filePath elcentro.txt -dt $dt -factor [expr 1*$Scale]";
pattern UniformExcitation 1 1 -accel $accelSeries;
constraints Penalty 10e15 10e15;
numberer RCM;
system BandGeneral;
test NormDispIncr 1.0e-6 100
algorithm Newton
integrator Newmark 0.5 0.25;
analysis Transient;
set tFinal [expr 2000 * 0.02];
set tCurrent [getTime];
set ok 0;
while {$ok == 0 && $tCurrent < $tFinal} {
set ok [analyze 1 0.002]
if {$ok != 0} {
puts "regular newton failed .. lets try an initail stiffness for this step"
test NormDispIncr 1.0e-6 100
algorithm ModifiedNewton -initial
set ok [analyze 1 0.002]
if {$ok == 0} {puts "that worked .. back to regular newton"}
test NormDispIncr 1.0e-6 100
algorithm Newton
}
set tCurrent [getTime]
}
# Print a message to indicate if analysis succesfull or not
if {$ok == 0} {
puts "Transient analysis completed SUCCESSFULLY";
} else {
puts "Transient analysis completed FAILED";
};
puts "Done!"
wipe;
file mkdir Data;
model basic -ndm 3 -ndf 6;
#nodes
node 1 0 0 0;
node 2 0 0 10;
node 3 0 0 10;
# Single point constraints -- Boundary Conditions
fix 1 1 1 1 1 1 1;
fix 3 1 1 1 1 1 1;
#mass
mass 2 100 100 100 10e-10 10e-10 10e-10;
# Define ELEMENTS -----------------------------------------------------------
geomTransf Linear 1 0 -1 0;
element elasticBeamColumn 1 1 2 0.01 3.29e10 1.0e20 2.0e-5 1.0e-5 1.0e-5 1;
#contact element
model basic -ndm 3 -ndf 3;
node 12 0 0 10;
node 13 0 0 10;
equalDOF 3 13 1 2 3;
equalDOF 2 12 1 2 3;
element zeroLengthContact3D 3 12 13 1.0e+5 0.5e+5 0.5 0 3;
# Define RECORDERS ---------------------------------------------------------
recorder Node -file data/nodevel.out -time -node 2 -dof 1 vel;
recorder Node -file data/nodeDisp.out -time -node 2 -dof 1 disp;
recorder Node -file data/nodeaccel.out -time -node 2 -dof 1 accel;
# define load and analysis -----------------------------------------------------------
set dt 0.02;
set Scale 1.0;
set accelSeries "Path -filePath elcentro.txt -dt $dt -factor [expr 1*$Scale]";
pattern UniformExcitation 1 1 -accel $accelSeries;
constraints Penalty 10e15 10e15;
numberer RCM;
system BandGeneral;
test NormDispIncr 1.0e-6 100
algorithm Newton
integrator Newmark 0.5 0.25;
analysis Transient;
set tFinal [expr 2000 * 0.02];
set tCurrent [getTime];
set ok 0;
while {$ok == 0 && $tCurrent < $tFinal} {
set ok [analyze 1 0.002]
if {$ok != 0} {
puts "regular newton failed .. lets try an initail stiffness for this step"
test NormDispIncr 1.0e-6 100
algorithm ModifiedNewton -initial
set ok [analyze 1 0.002]
if {$ok == 0} {puts "that worked .. back to regular newton"}
test NormDispIncr 1.0e-6 100
algorithm Newton
}
set tCurrent [getTime]
}
# Print a message to indicate if analysis succesfull or not
if {$ok == 0} {
puts "Transient analysis completed SUCCESSFULLY";
} else {
puts "Transient analysis completed FAILED";
};
puts "Done!"
-
- Posts: 82
- Joined: Tue Jun 19, 2012 1:56 am
Re: three dimensional contact element
Thank you for your reply. But I am trying to use the SimpleContact3D element. Please have a look on the following program, in which I am trying to join two brick element to another two brick element. Here I use SimpleContact3D element for the simulation of the contact between the brick element. But I am getting error. My program is not running. Please check it, and tell me where did I make a mistake.
I will look forward for your reply.
wipe;
model BasicBuilder -ndm 3 -ndf 3
node 1 0 0 0;
node 2 1 0 0;
node 3 1 1 0;
node 4 0 1 0;
node 5 0 0 1;
node 6 0 1 1;
node 7 1 1 1;
node 8 0 1 1;
node 9 0 0 2;
node 10 1 0 2;
node 11 1 1 2;
node 12 0 1 2;
fixZ 0.0 1 1 1 1 1 1 -tol 0.0001;
fixZ 1.0 0 0 0 0 0 0 -tol 0.0001;
fixZ 2.0 0 0 0 0 0 0 -tol 0.0001;
nDMaterial ElasticIsotropic 1 70000 0.3 0; # Material having property like soil
element stdBrick 1 1 2 3 4 5 6 7 8 1; # Brick element
element stdBrick 2 5 6 7 8 9 10 11 12 1;
node 13 1 0 0;
node 14 2 0 0;
node 15 2 1 0;
node 16 1 1 0;
node 17 1 0 1;
node 18 2 0 1;
node 19 2 1 1;
node 20 1 1 1;
node 21 1 0 2;
node 22 2 0 2;
node 23 2 1 2;
node 24 1 1 2;
fixZ 0.0 1 1 1 1 1 1 -tol 0.0001;
fixZ 1.0 0 0 0 0 0 0 -tol 0.0001;
fixZ 2.0 0 0 0 0 0 0 -tol 0.0001;
equalDOF 13 1 1 2 3 4 5 6;
equalDOF 16 4 1 2 3 4 5 6;
equalDOF 17 5 1 2 3 4 5 6;
equalDOF 20 8 1 2 3 4 5 6;
equalDOF 21 9 1 2 3 4 5 6;
equalDOF 24 12 1 2 3 4 5 6;
nDMaterial ElasticIsotropic 2 29.58E06 0.2 0; # material having property like concrete
element stdBrick 3 13 14 15 16 17 18 19 20 2;
element stdBrick 4 17 18 19 20 21 22 23 24 2;
# element represting the interface
node 25 1 0.5 0.5; # salve node
node 26 1 0.5 1.5;
node 31 1 0.5 0.5;
node 32 1 0.5 1.5;
node 27 0 0 0; # lagrangian node
node 28 0 0 0;
node 29 0 0 0;
node 30 0 0 0;
fix 25 0 0 0 0 0 0;
fix 26 0 0 0 0 0 0;
fix 31 0 0 0 0 0 0;
fix 32 0 0 0 0 0 0;
equalDOF 25 31 1 2 3 4 5 6;
equalDOF 26 32 1 2 3 4 5 6;
set matTag 3;
set mu 0.3;
set G 56000;
set c 100;
set t 0;
nDMaterial ContactMaterial3D $matTag $mu $G $c $t;
#element SimpleContact3D $eleTag $iNode $jNode $kNode $lNode $sNode $LNode $matTag $gTol $fTol
element SimpleContact3D 5 6 7 3 2 25 27 3 0.001 0.001;
element SimpleContact3D 6 20 17 13 16 31 28 3 0.001 0.0001;
element SimpleContact3D 7 10 11 7 6 26 29 3 0.001 0.001;
element SimpleContact3D 8 24 21 17 20 32 30 3 0.001 0.001;
element SurfaceLoad 9 18 19 22 23 -100;
pattern Plain 1 Constant {
eleLoad -ele 9 -type -surfaceLoad;
}
file mkdir interface11
recorder Node -file interface11/soiltopnode.out -node 9 10 11 12 -dof 1 2 3 4 5 6 disp;
recorder Node -file interface11/interfacetopnode.out -node 10 21 24 11 -dof 1 2 3 4 5 6 disp;
recorder Node -file interface11/piletopnode.out -node 21 22 23 24 -dof 1 2 3 4 5 6 disp;
recorder Node -file interface11/soilmiddlenode.out -node 5 6 7 8 -dof 1 2 3 4 5 6 disp;
recorder Node -file interface11/interfacemiddlenode.out -node 6 17 20 7 -dof 1 2 3 4 5 6 disp;
recorder Node -file interface11/pilemiddlenode.out -node 17 18 19 20 -dof 1 2 3 4 5 6 disp;
recorder Node -file interface11/Rbase1.out -node 1 2 3 4 13 14 15 16 -dof 1 2 3 4 5 6 reaction;
recorder Node -file interface11/Dbase1.out -node 1 2 3 4 13 14 15 16 -dof 1 2 3 4 5 6 disp;
integrator LoadControl 1;
test NormDispIncr 1e-5 100 1;
numberer Plain;
system BandGeneral;
constraints Transformation;
algorithm Newton;
analysis Static;
set startT [clock seconds]
analyze 1;
set endT [clock seconds]
puts " analysis execution time : [expr $endT -$startT] seconds"
I will look forward for your reply.
wipe;
model BasicBuilder -ndm 3 -ndf 3
node 1 0 0 0;
node 2 1 0 0;
node 3 1 1 0;
node 4 0 1 0;
node 5 0 0 1;
node 6 0 1 1;
node 7 1 1 1;
node 8 0 1 1;
node 9 0 0 2;
node 10 1 0 2;
node 11 1 1 2;
node 12 0 1 2;
fixZ 0.0 1 1 1 1 1 1 -tol 0.0001;
fixZ 1.0 0 0 0 0 0 0 -tol 0.0001;
fixZ 2.0 0 0 0 0 0 0 -tol 0.0001;
nDMaterial ElasticIsotropic 1 70000 0.3 0; # Material having property like soil
element stdBrick 1 1 2 3 4 5 6 7 8 1; # Brick element
element stdBrick 2 5 6 7 8 9 10 11 12 1;
node 13 1 0 0;
node 14 2 0 0;
node 15 2 1 0;
node 16 1 1 0;
node 17 1 0 1;
node 18 2 0 1;
node 19 2 1 1;
node 20 1 1 1;
node 21 1 0 2;
node 22 2 0 2;
node 23 2 1 2;
node 24 1 1 2;
fixZ 0.0 1 1 1 1 1 1 -tol 0.0001;
fixZ 1.0 0 0 0 0 0 0 -tol 0.0001;
fixZ 2.0 0 0 0 0 0 0 -tol 0.0001;
equalDOF 13 1 1 2 3 4 5 6;
equalDOF 16 4 1 2 3 4 5 6;
equalDOF 17 5 1 2 3 4 5 6;
equalDOF 20 8 1 2 3 4 5 6;
equalDOF 21 9 1 2 3 4 5 6;
equalDOF 24 12 1 2 3 4 5 6;
nDMaterial ElasticIsotropic 2 29.58E06 0.2 0; # material having property like concrete
element stdBrick 3 13 14 15 16 17 18 19 20 2;
element stdBrick 4 17 18 19 20 21 22 23 24 2;
# element represting the interface
node 25 1 0.5 0.5; # salve node
node 26 1 0.5 1.5;
node 31 1 0.5 0.5;
node 32 1 0.5 1.5;
node 27 0 0 0; # lagrangian node
node 28 0 0 0;
node 29 0 0 0;
node 30 0 0 0;
fix 25 0 0 0 0 0 0;
fix 26 0 0 0 0 0 0;
fix 31 0 0 0 0 0 0;
fix 32 0 0 0 0 0 0;
equalDOF 25 31 1 2 3 4 5 6;
equalDOF 26 32 1 2 3 4 5 6;
set matTag 3;
set mu 0.3;
set G 56000;
set c 100;
set t 0;
nDMaterial ContactMaterial3D $matTag $mu $G $c $t;
#element SimpleContact3D $eleTag $iNode $jNode $kNode $lNode $sNode $LNode $matTag $gTol $fTol
element SimpleContact3D 5 6 7 3 2 25 27 3 0.001 0.001;
element SimpleContact3D 6 20 17 13 16 31 28 3 0.001 0.0001;
element SimpleContact3D 7 10 11 7 6 26 29 3 0.001 0.001;
element SimpleContact3D 8 24 21 17 20 32 30 3 0.001 0.001;
element SurfaceLoad 9 18 19 22 23 -100;
pattern Plain 1 Constant {
eleLoad -ele 9 -type -surfaceLoad;
}
file mkdir interface11
recorder Node -file interface11/soiltopnode.out -node 9 10 11 12 -dof 1 2 3 4 5 6 disp;
recorder Node -file interface11/interfacetopnode.out -node 10 21 24 11 -dof 1 2 3 4 5 6 disp;
recorder Node -file interface11/piletopnode.out -node 21 22 23 24 -dof 1 2 3 4 5 6 disp;
recorder Node -file interface11/soilmiddlenode.out -node 5 6 7 8 -dof 1 2 3 4 5 6 disp;
recorder Node -file interface11/interfacemiddlenode.out -node 6 17 20 7 -dof 1 2 3 4 5 6 disp;
recorder Node -file interface11/pilemiddlenode.out -node 17 18 19 20 -dof 1 2 3 4 5 6 disp;
recorder Node -file interface11/Rbase1.out -node 1 2 3 4 13 14 15 16 -dof 1 2 3 4 5 6 reaction;
recorder Node -file interface11/Dbase1.out -node 1 2 3 4 13 14 15 16 -dof 1 2 3 4 5 6 disp;
integrator LoadControl 1;
test NormDispIncr 1e-5 100 1;
numberer Plain;
system BandGeneral;
constraints Transformation;
algorithm Newton;
analysis Static;
set startT [clock seconds]
analyze 1;
set endT [clock seconds]
puts " analysis execution time : [expr $endT -$startT] seconds"
Re: three dimensional contact element
What is the error that you get?
-
- Posts: 82
- Joined: Tue Jun 19, 2012 1:56 am
Re: three dimensional contact element
when I run the file, it automatically closed.
Re: three dimensional contact element
What version of OpenSees do you use?
-
- Posts: 82
- Joined: Tue Jun 19, 2012 1:56 am
Re: three dimensional contact element
what happens if you try to run it with the latest version of opensees?
-
- Posts: 82
- Joined: Tue Jun 19, 2012 1:56 am
Re: three dimensional contact element
will downloading 2.4.0 make any changes because I am working on 2.3.2 since 1 year. There is no problem till now.
And also initially, I was getting some convergence problem, but later on it happened(window closes automatically). Can you please tell me about actual problem
And also initially, I was getting some convergence problem, but later on it happened(window closes automatically). Can you please tell me about actual problem
Re: three dimensional contact element
To see why it closes automatically open command prompt first and call OpenSees from there. After opensees closes you will get the error message that will indicate the problem.
-
- Posts: 82
- Joined: Tue Jun 19, 2012 1:56 am
Re: three dimensional contact element
now I am not getting the problem of automatically closing window but I am facing the problem of convergence. I have tried multiple times but not getting any answer. Please help me to solve this problem.
integrator LoadControl 1;
test NormDispIncr 1e-5 15 1;
numberer Plain;
system BandGeneral;
constraints Transformation;
algorithm Newton;
analysis Static;
set startT [clock seconds]
analyze 1;
set endT [clock seconds]
puts " analysis execution time : [expr $endT -$startT] seconds"
integrator LoadControl 1;
test NormDispIncr 1e-5 15 1;
numberer Plain;
system BandGeneral;
constraints Transformation;
algorithm Newton;
analysis Static;
set startT [clock seconds]
analyze 1;
set endT [clock seconds]
puts " analysis execution time : [expr $endT -$startT] seconds"
Re: three dimensional contact element
Your load may be too big to apply it in one step. Try to increase the number of analysis steps. Replace constant time series with the linear one.
-
- Posts: 82
- Joined: Tue Jun 19, 2012 1:56 am
Re: three dimensional contact element
I tried that still not getting any result. There is one more question, my load is constant throughout the analysis so why should I change it to linear.
But I tried with the linear as well but not getting any result
But I tried with the linear as well but not getting any result
Re: three dimensional contact element
I have searched so many times for this but i also couldn't find any suitable solution for this .
You might also like: short hairstyles for fine hair .
Re: three dimensional contact element
If you have nonlinear elements in your model and apply too big of a load in one time step (constant load pattern) you may not be able to find a solution. That is why I recommended to use linear time series, so you gradually approach to the solution.
What error message do you get?
What error message do you get?