Search found 4 matches

by Diegoh
Fri Apr 12, 2024 2:17 am
Forum: OpenSees.exe Users
Topic: Reference for NDFiberSection3d.cpp
Replies: 0
Views: 2987

Reference for NDFiberSection3d.cpp

Hello,

Is there a reference (publication) for the section state determination used for the NDFiberSection3d section? Especially for the matrix relating the section deformations to the fiber strains (axial and shear distribution)

Thanks,
by Diegoh
Thu Dec 14, 2023 5:03 am
Forum: OpenSees.exe Users
Topic: Positive and negative rotation in zero length rotational spring
Replies: 2
Views: 4443

Positive and negative rotation in zero length rotational spring

Hello,

If I define a zero-length rotational spring along the x-direction for a 3D model without specifying the local axis, does this imply that the positive moment and rotation will be in the positive global x-direction, and this is independent of the order of spring end nodes I and J?

Thanks a lot
by Diegoh
Tue Dec 12, 2023 3:13 pm
Forum: OpenSees.exe Users
Topic: Chord rotation recorder
Replies: 1
Views: 3804

Chord rotation recorder

Hello,

What does the chord rotation recorder do in a force-based beam column element? I am modeling a cantilever column with axial and lateral loads, and I obtain a non zero chord rotation at the free end. I am not sure why this happens since the inflection point is at the free end.

Thanks a lots for your help
by Diegoh
Sat Sep 23, 2023 7:31 am
Forum: OpenSees.exe Users
Topic: How to: Static analysis with displacement in multiple DOFs
Replies: 0
Views: 74179

How to: Static analysis with displacement in multiple DOFs

Hello,

I am trying to simulate a column loaded axially with a constant axial force, and with 2 lateral loads (in the X and Z directions) and with an imposed top rotation along the Z-direction.
The load controlled axial load is fine, however, I have some problems when trying to add the 3 different displacement in displacement control (I need displacement control because the response exhibits softening). I have tried creating 3 different load patterns for each imposed displacement, as shown here:

while {$okTot == 0 && $i < $LoopLength} {

set index [expr $i]

#Lateral load X
pattern Plain [expr $LoopLength+$i] Linear {
load 2 1.0 0.0 0.0 0.0 0.0 0.0;
}

# We need to relative deformation of the loading protocol
# Subtract dUi+1 - dUi
set D1X [lindex $lateralDispX $index];
set D2X [lindex $lateralDispX $index-1];
#set dU1 [expr ($D1-$D2)*$L];
set dU1X [expr ($D1X-$D2X)];

# Create Nsteps from Amplitude to Amplitude
set dUX [expr ($dU1X)/$NSteps]

# Displacement Control Integrator
integrator DisplacementControl $CtrlNode $CtrlDOFLatX $dUX
puts "increment = [expr {$i}] / [expr {$LoopLength}] - Lateral X load";

set ok1 [ analyze $NSteps]

loadConst -time 0.0


# Lateral load Z
if {$ok1==0} {
pattern Plain [expr 2*$LoopLength+$i] Linear {
load 2 0.0 0.0 1.0 0.0 0.0 0.0;
}

# We need to relative deformation of the loading protocol
# Subtract dUi+1 - dUi
set D1Z [lindex $lateralDispZ $index];
set D2Z [lindex $lateralDispZ $index-1];
#set dU1 [expr ($D1-$D2)*$L];
set dU1Z [expr ($D1Z-$D2Z)];

# Create Nsteps from Amplitude to Amplitude
set dUZ [expr ($dU1Z)/$NSteps]

# Displacement Control Integrator
integrator DisplacementControl $CtrlNode $CtrlDOFLatZ $dUZ
puts "increment = [expr {$i}] / [expr {$LoopLength}] - Lateral Z load";

set ok2 [ analyze $NSteps]

loadConst -time 0.0
} else {
set ok2 1;
}


# Lateral rotation
if {$ok1==0 && $ok2==0} {
pattern Plain [expr 3*$LoopLength+$i] Linear {
load 2 0.0 0.0 0.0 0.0 0.0 1.0;
}

# We need to relative deformation of the loading protocol
# Subtract dUi+1 - dUi
set theta1Z [lindex $topRotation $index];
set theta2Z [lindex $topRotation $index-1];
#set dU1 [expr ($D1-$D2)*$L];
set dtheta1Z [expr ($theta1Z-$theta2Z)];

# Create Nsteps from Amplitude to Amplitude
set dthetaZ [expr ($dtheta1Z)/$NSteps]

# Displacement Control Integrator
integrator DisplacementControl $CtrlNode $CtrlDOFRotZ $dthetaZ
puts "increment = [expr {$i}] / [expr {$LoopLength}] - Rot Z load";

set ok3 [ analyze $NSteps]

loadConst -time 0.0

} else {
set ok3 1;
}


set okTot [expr $ok1 + $ok2 +$ok3]

set i [expr $i + 1 ]

}

However, the problem is that at each index i, the lateral displacement and the rotation in the z direction do not correspond to the one I want to impose. Because a displacement in the z direction creates a rotation in the z direction and vice-versa.

Can anyone help me with this? I appreciate it