very simple case

For developers writing C++, Fortran, Java, code who have questions or comments to make.

Moderators: silvia, selimgunay, Moderators

Post Reply
arduino
Posts: 10
Joined: Thu Dec 01, 2005 6:39 pm
Location: Seattle

very simple case

Post by arduino »

Hi Frank,

I tried to run a simple 3D validation case using one single standard brick element (stdBrick) where 7 nodes are fixed and the free node is fixed to move in a certain predefined direction using the standard point constraint (sp). That is, all the degrees of freedom are constrained. The solver seems to dislike that. As soon as I relax on degree of freedom the program runs correctly.
Below is the tcl script we used:

#########################################################
# Simple Validation test using Brick Element #
# #
#########################################################

wipe

# #################################
# build model: -ndm 3 -ndf 3
# #################################
model BasicBuilder -ndm 3 -ndf 3

# create the materials
node 1 0.00000000 0.00000000 0.00000000
node 2 0.00000000 5.00000000 0.00000000
node 3 0.00000000 0.00000000 8.00000000
node 4 0.00000000 5.00000000 8.00000000
node 5 10.00000000 0.00000000 0.00000000
node 6 10.00000000 5.00000000 0.00000000
node 7 10.00000000 0.00000000 8.00000000
node 8 10.00000000 5.00000000 8.00000000

# create the materials
nDMaterial ElasticIsotropic 1 100 0.25

# create the elements
element stdBrick 1 8 4 2 6 7 3 1 5 1 0.0 0.0 -0

# create the fixities
fix 1 1 1 1
fix 2 1 1 1
fix 3 1 1 1
fix 4 1 1 1
fix 5 1 1 1
fix 6 1 1 1
fix 7 1 1 1

pattern Plain 3 "Linear" {
sp 8 1 1.000
sp 8 2 1.000
sp 8 3 1.000
}


# #################################
# create the recorders and data files
# #################################
#Note: recorder stress output files are gausspoint specific and files are named according
# to GiD numbering and correspond to appropriate OpenSees Gauss Point Numbering

eval "recorder Element 1 -time -file PushStress1.out material 1 stress"
eval "recorder Element 1 -time -file PushStress2.out material 5 stress"
eval "recorder Element 1 -time -file PushStress3.out material 3 stress"
eval "recorder Element 1 -time -file PushStress4.out material 7 stress"
eval "recorder Element 1 -time -file PushStress5.out material 2 stress"
eval "recorder Element 1 -time -file PushStress6.out material 6 stress"
eval "recorder Element 1 -time -file PushStress7.out material 4 stress"
eval "recorder Element 1 -time -file PushStress8.out material 8 stress"


# create node list with all node info
set nodeList {}
for {set i 1} {$i <= 8} {incr i 1} {
lappend nodeList $i
}
eval "recorder Node -file Pushdisplacement.out -time -node $nodeList -dof 1 2 3 disp"


# #################################
# create the analysis
# #################################

integrator LoadControl 1.0
numberer RCM
system BandGeneral
constraints Transformation
#test NormDispIncr 1e-5 30 1
#algorithm Newton
algorithm Linear
analysis Static

set startT [clock seconds]
puts "Starting Load Application..."
analyze 10

set endT [clock seconds]
puts "Load Application finished..."
puts "Loading Analysis execution time: [expr $endT-$startT] seconds."

wipe
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

pedro,

you can do it using the Penalty methods to enforce the constraints, that way there is still one dof. all the solvers check to ensure thee is at least 1 dof.
Post Reply