block2d or block3d element
Moderators: silvia, selimgunay, Moderators
block2d or block3d element
Is it true that when we use block element to generate the mesh, we can only have translation degrees of freedom for each node?
Because when I create "model BasicBuilder -ndm 2 -ndf 3", it showed the error: WARNING -- model dimensions and/or nodal DOF not compatible with quad element.
After change it to "model BasicBuilder -ndm 2 -ndf 2", then it ran very well.
How can we have 6 degree of freedoms for each node when we use block3d?
anyone can help me? thanks
Because when I create "model BasicBuilder -ndm 2 -ndf 3", it showed the error: WARNING -- model dimensions and/or nodal DOF not compatible with quad element.
After change it to "model BasicBuilder -ndm 2 -ndf 2", then it ran very well.
How can we have 6 degree of freedoms for each node when we use block3d?
anyone can help me? thanks
Re: block2d or block3d element
i am afraid you need to replicate the command in a tcl procedure. if the region is rectangular if 2d, or brick shaped if 3d this is easy to do.
Re: block2d or block3d element
fmk wrote:
> i am afraid you need to replicate the command in a tcl procedure. if the
> region is rectangular if 2d, or brick shaped if 3d this is easy to do.
Thanks, Frank
I did try to use model BasicBuilder -ndm 2 -ndf 3 right after the block element again, but it warned that I should put 2 degrees of freedom for the load pattern, when I use pattern Plain 1 Linear {load 41 1.0 0.0 0.0}. Even when I also put the model command with 3 ndf in the very beginning, and then model command with 2 ndf before block element, and 3 ndf right after block element again, the same warning to use 2 ndf of loading pattern appeared, the weird thing is when I change it to 2 ndf load pattern in the same condition, it gave warning to use 3 ndf load pattern. what do you think? Thanks very very much.
> i am afraid you need to replicate the command in a tcl procedure. if the
> region is rectangular if 2d, or brick shaped if 3d this is easy to do.
Thanks, Frank
I did try to use model BasicBuilder -ndm 2 -ndf 3 right after the block element again, but it warned that I should put 2 degrees of freedom for the load pattern, when I use pattern Plain 1 Linear {load 41 1.0 0.0 0.0}. Even when I also put the model command with 3 ndf in the very beginning, and then model command with 2 ndf before block element, and 3 ndf right after block element again, the same warning to use 2 ndf of loading pattern appeared, the weird thing is when I change it to 2 ndf load pattern in the same condition, it gave warning to use 3 ndf load pattern. what do you think? Thanks very very much.
Re: block2d or block3d element
the ndf of the loads must match those of the current model command .. they do not look at the ndf at the existing node.
Re: block2d or block3d element
fmk wrote:
> the ndf of the loads must match those of the current model command .. they
> do not look at the ndf at the existing node.
Ok, I see the difference now. Thank you so much, it is really helpful.
> the ndf of the loads must match those of the current model command .. they
> do not look at the ndf at the existing node.
Ok, I see the difference now. Thank you so much, it is really helpful.
Re: block2d or block3d element
fmk wrote:
> the ndf of the loads must match those of the current model command .. they
> do not look at the ndf at the existing node.
Hi, Frank, can I bother you to see the codes below? When I run it, it showed"WARNING ZeroLength::setDomain(): nodes 5 and 1have differing dof at ends for ZeroLength 11". how can I solve it? Thanks so much.
## unit: inch, kips, sec
wipe;
model BasicBuilder -ndm 2 -ndf 2;
# create the material
nDMaterial ElasticIsotropic 1 10000 0.25 3.0 0.001;
set Quad quad
set eleArgs "1 PlaneStrain2D 1"
block2D 1 1 1 1 $Quad $eleArgs {
1 0 0
2 96 0
3 96 120
4 0 120
}
model BasicBuilder -ndm 3 -ndf 6;
node 5 0 0 -96;
node 6 0 120 -96;
node 7 120 0 -96;
node 8 120 120 -96;
fix 5 1 1 1 1 1 1;
fix 6 1 1 1 0 0 0;
fix 7 1 1 1 1 1 1;
fix 8 1 1 1 0 0 0;
set smallnumber 1e-8;
set bignumber 1e8;
set flex 3;
set stiff 4;
set mat 5;
uniaxialMaterial Elastic $flex $smallnumber
uniaxialMaterial Elastic $stiff $bignumber;
uniaxialMaterial Elastic $mat 100;
element zeroLength 11 5 1 -mat $flex $mat $stiff $stiff $stiff $stiff -dir 1 2 3 4 5 6;
element zeroLength 12 7 2 -mat $flex $mat $stiff $stiff $stiff $stiff -dir 1 2 3 4 5 6;
geomTransf Linear 1 0 -1 0;
element elasticBeamColumn 13 6 4 $A $rigid $flexible $flexible $flexible $flexible 1;
element elasticBeamColumn 14 8 3 $A $rigid $flexible $flexible $flexible $flexible 1;
pattern Plain 1 Linear { load 1 1.0 0.0 0 0 0 0 }
test EnergyIncr 1.0e-8 300 0
#test NormDispIncr 1.0e-10 100 1
algorithm KrylovNewton
system BandGeneral; #
numberer RCM
constraints Transformation;#Penalty 1e12 1e12;#Plain
set peaks [list 1]
for {set cntr 1} { $cntr < 12 } {incr cntr} {
for {set cntr2 1} { $cntr2 <= 2 } {incr cntr2} {
set peaks [linsert $peaks $cntr [expr $cntr*1 ] ]
puts $peaks
}
}
for {set i 1 } { $i <= [llength $peaks] } {incr i } {
set dU [expr -1.0*pow((-1.0),$i)*[lindex $peaks [expr $i-1] ]/50 ]
#puts $dU
integrator DisplacementControl 1 1 $dU 1 $dU $dU
analysis Static
analyze 50
}
> the ndf of the loads must match those of the current model command .. they
> do not look at the ndf at the existing node.
Hi, Frank, can I bother you to see the codes below? When I run it, it showed"WARNING ZeroLength::setDomain(): nodes 5 and 1have differing dof at ends for ZeroLength 11". how can I solve it? Thanks so much.
## unit: inch, kips, sec
wipe;
model BasicBuilder -ndm 2 -ndf 2;
# create the material
nDMaterial ElasticIsotropic 1 10000 0.25 3.0 0.001;
set Quad quad
set eleArgs "1 PlaneStrain2D 1"
block2D 1 1 1 1 $Quad $eleArgs {
1 0 0
2 96 0
3 96 120
4 0 120
}
model BasicBuilder -ndm 3 -ndf 6;
node 5 0 0 -96;
node 6 0 120 -96;
node 7 120 0 -96;
node 8 120 120 -96;
fix 5 1 1 1 1 1 1;
fix 6 1 1 1 0 0 0;
fix 7 1 1 1 1 1 1;
fix 8 1 1 1 0 0 0;
set smallnumber 1e-8;
set bignumber 1e8;
set flex 3;
set stiff 4;
set mat 5;
uniaxialMaterial Elastic $flex $smallnumber
uniaxialMaterial Elastic $stiff $bignumber;
uniaxialMaterial Elastic $mat 100;
element zeroLength 11 5 1 -mat $flex $mat $stiff $stiff $stiff $stiff -dir 1 2 3 4 5 6;
element zeroLength 12 7 2 -mat $flex $mat $stiff $stiff $stiff $stiff -dir 1 2 3 4 5 6;
geomTransf Linear 1 0 -1 0;
element elasticBeamColumn 13 6 4 $A $rigid $flexible $flexible $flexible $flexible 1;
element elasticBeamColumn 14 8 3 $A $rigid $flexible $flexible $flexible $flexible 1;
pattern Plain 1 Linear { load 1 1.0 0.0 0 0 0 0 }
test EnergyIncr 1.0e-8 300 0
#test NormDispIncr 1.0e-10 100 1
algorithm KrylovNewton
system BandGeneral; #
numberer RCM
constraints Transformation;#Penalty 1e12 1e12;#Plain
set peaks [list 1]
for {set cntr 1} { $cntr < 12 } {incr cntr} {
for {set cntr2 1} { $cntr2 <= 2 } {incr cntr2} {
set peaks [linsert $peaks $cntr [expr $cntr*1 ] ]
puts $peaks
}
}
for {set i 1 } { $i <= [llength $peaks] } {incr i } {
set dU [expr -1.0*pow((-1.0),$i)*[lindex $peaks [expr $i-1] ]/50 ]
#puts $dU
integrator DisplacementControl 1 1 $dU 1 $dU $dU
analysis Static
analyze 50
}
Re: block2d or block3d element
tie the nodes using the equalDOF command, here is an example:
http://opensees.berkeley.edu/wiki/index ... Foundation
http://opensees.berkeley.edu/wiki/index ... Foundation
Re: block2d or block3d element
Hi Frank,
I'm unfortunately having a similar problem. I'm trying to create a zeroLength element between a 2dof node and a 3dof node. I have a block2D line that generates a 16x4 mesh and connects to a 16 element long string of nodes by a zeroLength element. I'll upload the full tcl if you need to see it, but the meat is below:
model BasicBuilder -ndm 2 -ndf 2
nDMaterial ...
block2D ... { }
fix 1 1 1;
modelBasicBuilder -ndm 2 -ndf 3
node ...
equal DOF 100 51 3
fix 115 0 1 0;
uniaxialMaterial ...
element zeroLength 65 51 100 -mat 2 -dir 1
geomTransf Linear 1
element elasticBeamColumn ...
recorder Node ...
pattern Plain 1 Linear { }
----------
Analysis
----------
I'm not sure where else the equalDOF line could go that would make the node that connects the end of the mesh (51) not have a different number of dof from the node (100) that starts the "beam." Thanks in advance.
-- Jarrod
I'm unfortunately having a similar problem. I'm trying to create a zeroLength element between a 2dof node and a 3dof node. I have a block2D line that generates a 16x4 mesh and connects to a 16 element long string of nodes by a zeroLength element. I'll upload the full tcl if you need to see it, but the meat is below:
model BasicBuilder -ndm 2 -ndf 2
nDMaterial ...
block2D ... { }
fix 1 1 1;
modelBasicBuilder -ndm 2 -ndf 3
node ...
equal DOF 100 51 3
fix 115 0 1 0;
uniaxialMaterial ...
element zeroLength 65 51 100 -mat 2 -dir 1
geomTransf Linear 1
element elasticBeamColumn ...
recorder Node ...
pattern Plain 1 Linear { }
----------
Analysis
----------
I'm not sure where else the equalDOF line could go that would make the node that connects the end of the mesh (51) not have a different number of dof from the node (100) that starts the "beam." Thanks in advance.
-- Jarrod
Re: block2d or block3d element
you have it in the correct position .. your choice of dof's to make equal is incorrect as one of the nodes will not have a 3'rd dof! .. typically you would constrain 1 and 2 to move together .. do note that that makes the pt were beam meets soil a pinned connection.
equalDOF 100 51 1 2
note: no space between equal and DOF
equalDOF 100 51 1 2
note: no space between equal and DOF
Re: block2d or block3d element
I changed the line and the same message still comes up before it crashes, "WARNING ZeroLength::setDomain<>: nodes 51 and 100have differing dof at ends for ZeroLength 65" Could it be something else?
Re: block2d or block3d element
the problem is as the message says! .. if you need these zeroLength between the 2 and 3 dof nodes, you have to create duplicate nodes and use equalDOF beween them
e.g. say node 1 has 3dof and node 11 has 2 dof
model Basic -ndm 2 -ndf 2
node 111 $nd1Xrd $nd1Ycrd
element zeroLength 1001 111 11 ....
equalDOF 111 1 1 2
e.g. say node 1 has 3dof and node 11 has 2 dof
model Basic -ndm 2 -ndf 2
node 111 $nd1Xrd $nd1Ycrd
element zeroLength 1001 111 11 ....
equalDOF 111 1 1 2
-
- Posts: 3
- Joined: Sat Mar 07, 2015 7:37 pm
Re: block2d or block3d element
hi fmk,
if node 1 is 6 dofs and 111 3 dofs, then
the
equalDOF 111 1 1 2 3
2 translations (x and y) and 1 rotation (z)
rigth ?
thanks
if node 1 is 6 dofs and 111 3 dofs, then
the
equalDOF 111 1 1 2 3
2 translations (x and y) and 1 rotation (z)
rigth ?
thanks
Re: block2d or block3d element
Hi,
Regarding correct numbering of dofs in ndf 2 and ndf 3 domains, the following may be helpful:
http://opensees.berkeley.edu/community/ ... =2&t=62391
Regarding correct numbering of dofs in ndf 2 and ndf 3 domains, the following may be helpful:
http://opensees.berkeley.edu/community/ ... =2&t=62391
----------------------------------
With Regards,
sb1966
With Regards,
sb1966
-
- Posts: 3
- Joined: Sat Mar 07, 2015 7:37 pm
Re: block2d or block3d element
Thanks fb1966,
I am using OSN and figured out the problem late this night
Finally I should assign 3 DOFs to zerolength via the menu "assign---->`node...". I do not know if it is correcte, I will see.
Thanks again for your reply, for sure I will read the entire informations in the link you gave me.
Regards
I am using OSN and figured out the problem late this night
Finally I should assign 3 DOFs to zerolength via the menu "assign---->`node...". I do not know if it is correcte, I will see.
Thanks again for your reply, for sure I will read the entire informations in the link you gave me.
Regards