Hi everyone
I have analyzed RC columns applying zero length element and for step by step analysis I also applied an save/restore command in my code.
The problem is when I used a typical material such as concrete02, steel02 for the zero length element, everything was fine.
However, after I changed the material from steel02 to Bond_SP01, some error messages was printed on my screen.
The error messages are like below
FEM_ObjectBrokerAllClasses::getNewUniaxialMaterial - - no UniaxialMaterial type exists for class tag 27
FiberSection2d::recvSelf -- failed to allocate double array for material data
When I didn't used save/restore command, the error was not occurred.
My questions are
'Bond_SP01' is not available with save/restore commands ?
If it is true, how can I modified my code to use both the Bond SP01 and save/restore commands?
Thank you for your kind help
Jamin Park
Problem on using Save/Restore Command with BondSP01 Material
Moderators: silvia, selimgunay, Moderators
Re: Problem on using Save/Restore Command with BondSP01 Mate
can you quickly post 1 1 material 1 element (zeroLength) example
Re: Problem on using Save/Restore Command with BondSP01 Mate
Thank you for your very quick reply !!
Greatly simplified version of my code is like below
(This code is for an earthquake analysis of SDOF system)
---------------------------------------------------------------------------------------
wipe;
file mkdir data;
# set analysis parameters
set n_step 150; # Number of analysis steps
set dt 0.01; # Time step length
set xsi 0.05; # Damping ratio
set wn 3*2*3.1415; # Natural frequency, rad/s
set g 386.0880; # Gravitational accelration, in/s^2
# define_model
model BasicBuilder -ndm 2 -ndf 3;
# define node and mass
node 1 0.0 0.0;
node 2 0.0 0.0;
node 3 70.0 0.0;
mass 3 0.0 0.5 0.0;
# boundary condition
fix 1 1 1 1;
fix 2 0 1 0;
# define material property
uniaxialMaterial Steel02 1 58.000000 29000.000000 0.010000 18.000000 0.925000 0.150000
uniaxialMaterial Bond_SP01 2 58.000000 0.002015 12615.000000 0.060450 0.300000 0.600000
# define section
section fiberSec 1 {;
patch quad 1 20 20 -7.0 -5.0 7.0 -5.0 7.0 5.0 -7.0 5.0;
layer straight 1 3 0.5 -5.0 3.0 -5.0 -3.0;
layer straight 1 3 0.5 5.0 3.0 5.0 -3.0;
};
section fiberSec 2 {;
patch quad 1 20 20 -7.0 -5.0 7.0 -5.0 7.0 5.0 -7.0 5.0;
layer straight 2 3 0.5 -5.0 3.0 -5.0 -3.0;
layer straight 2 3 0.5 5.0 3.0 5.0 -3.0;
};
# define_element
geomTransf Linear 1;
element zeroLengthSection 2 1 2 2
element nonlinearBeamColumn 1 2 3 5 1 1
# define_recorder
recorder Node -file data/nodal_disp1.out -precision 10 -time -node 3 -dof 2 disp
recorder Node -file data/nodal_vel1.out -precision 10 -time -node 3 -dof 2 vel
recorder Node -file data/nodal_accel1.out -precision 10 -time -node 3 -dof 2 accel
# define_analysis
constraints Transformation;
numberer RCM;
system BandGeneral;
test NormDispIncr 1.e-6 5000;
algorithm KrylovNewton;
integrator Newmark 0.5 0.25;
analysis Transient;
rayleigh [expr 2*$xsi*$wn] 0. 0. 0.;
set accelSeries "Series -dt $dt -filePath elcentro.acc -factor [expr 0.5*$g]";
pattern UniformExcitation 2 2 -accel $accelSeries;
# do analysis
for {set i 1} {$i < $n_step} {incr i} {
if {$i==1} {
analyze 1 [expr $dt/1.0]
database File results;
save 11
} else {
restore 11
database File results;
analyze 1 [expr $dt/1.0]
save 11
}
}
wipe;
---------------------------------------------------------------------------------------
This code causes error like below
(Details of error messages are different to those of my original code. But I think that both errors are from same problem)
ZeroLengthSection::recvSelf -- failed to receive Section
Domain::recv - element with tag 2 failed in recvSelf
FE_Datastore::restoreState - domain failed to recvSelf
WARNING - database failed to restoreState
However if the material tag of two straight layers in section 2 is changed from 2 to 1 (This means changing material from Bond_SP01 to Steel02)
then analysis is well completed without any errors
Modified code is
---------------------------------------------------------------------------------------
section fiberSec 2 {;
patch quad 1 20 20 -7.0 -5.0 7.0 -5.0 7.0 5.0 -7.0 5.0;
layer straight 2 3 0.5 -5.0 3.0 -5.0 -3.0;
layer straight 2 3 0.5 5.0 3.0 5.0 -3.0;
};
---------------------------------------------------------------------------------------
Jamin Park
Greatly simplified version of my code is like below
(This code is for an earthquake analysis of SDOF system)
---------------------------------------------------------------------------------------
wipe;
file mkdir data;
# set analysis parameters
set n_step 150; # Number of analysis steps
set dt 0.01; # Time step length
set xsi 0.05; # Damping ratio
set wn 3*2*3.1415; # Natural frequency, rad/s
set g 386.0880; # Gravitational accelration, in/s^2
# define_model
model BasicBuilder -ndm 2 -ndf 3;
# define node and mass
node 1 0.0 0.0;
node 2 0.0 0.0;
node 3 70.0 0.0;
mass 3 0.0 0.5 0.0;
# boundary condition
fix 1 1 1 1;
fix 2 0 1 0;
# define material property
uniaxialMaterial Steel02 1 58.000000 29000.000000 0.010000 18.000000 0.925000 0.150000
uniaxialMaterial Bond_SP01 2 58.000000 0.002015 12615.000000 0.060450 0.300000 0.600000
# define section
section fiberSec 1 {;
patch quad 1 20 20 -7.0 -5.0 7.0 -5.0 7.0 5.0 -7.0 5.0;
layer straight 1 3 0.5 -5.0 3.0 -5.0 -3.0;
layer straight 1 3 0.5 5.0 3.0 5.0 -3.0;
};
section fiberSec 2 {;
patch quad 1 20 20 -7.0 -5.0 7.0 -5.0 7.0 5.0 -7.0 5.0;
layer straight 2 3 0.5 -5.0 3.0 -5.0 -3.0;
layer straight 2 3 0.5 5.0 3.0 5.0 -3.0;
};
# define_element
geomTransf Linear 1;
element zeroLengthSection 2 1 2 2
element nonlinearBeamColumn 1 2 3 5 1 1
# define_recorder
recorder Node -file data/nodal_disp1.out -precision 10 -time -node 3 -dof 2 disp
recorder Node -file data/nodal_vel1.out -precision 10 -time -node 3 -dof 2 vel
recorder Node -file data/nodal_accel1.out -precision 10 -time -node 3 -dof 2 accel
# define_analysis
constraints Transformation;
numberer RCM;
system BandGeneral;
test NormDispIncr 1.e-6 5000;
algorithm KrylovNewton;
integrator Newmark 0.5 0.25;
analysis Transient;
rayleigh [expr 2*$xsi*$wn] 0. 0. 0.;
set accelSeries "Series -dt $dt -filePath elcentro.acc -factor [expr 0.5*$g]";
pattern UniformExcitation 2 2 -accel $accelSeries;
# do analysis
for {set i 1} {$i < $n_step} {incr i} {
if {$i==1} {
analyze 1 [expr $dt/1.0]
database File results;
save 11
} else {
restore 11
database File results;
analyze 1 [expr $dt/1.0]
save 11
}
}
wipe;
---------------------------------------------------------------------------------------
This code causes error like below
(Details of error messages are different to those of my original code. But I think that both errors are from same problem)
ZeroLengthSection::recvSelf -- failed to receive Section
Domain::recv - element with tag 2 failed in recvSelf
FE_Datastore::restoreState - domain failed to recvSelf
WARNING - database failed to restoreState
However if the material tag of two straight layers in section 2 is changed from 2 to 1 (This means changing material from Bond_SP01 to Steel02)
then analysis is well completed without any errors
Modified code is
---------------------------------------------------------------------------------------
section fiberSec 2 {;
patch quad 1 20 20 -7.0 -5.0 7.0 -5.0 7.0 5.0 -7.0 5.0;
layer straight 2 3 0.5 -5.0 3.0 -5.0 -3.0;
layer straight 2 3 0.5 5.0 3.0 5.0 -3.0;
};
---------------------------------------------------------------------------------------
Jamin Park
Re: Problem on using Save/Restore Command with BondSP01 Mate
i have made the changes to the source code .. it will (hopefully) be next wed when the new release comes out .. i have been promising that for about a month!
Re: Problem on using Save/Restore Command with BondSP01 Mate
It's very good to hear that this problem will be fixed in the next version.
Thank you for your efforts.
Jamin Park
Thank you for your efforts.
Jamin Park