Sine Wave load on nodes

Forum for asking and answering questions related to use of the OpenSeesPy module

Moderators: silvia, selimgunay, Moderators

Post Reply
xzzgameboy
Posts: 10
Joined: Sun Jun 21, 2020 11:00 am

Sine Wave load on nodes

Post by xzzgameboy » Mon Feb 06, 2023 2:20 pm

Hi all,

I am tranferring Opensees Tcl to Openseepy but encountered a problem here.

The code is to model a 9-4 quad u-p element under cyclic load (sine) with PDMY03 model.

The original code can be found https://opensees.berkeley.edu/wiki/inde ... mentdriver
and I am working on the "undrained cyclic" case

the part of tcl i am having issue with is:

Code: Select all

 model basic -ndm 2 -ndf 3
	pattern Plain 4 "Sine 0 [expr $period*1000] $period" {
		load 3 [expr $csr*$vertPress*$xsize*$thickness*0.25] 0 0
		load 4 [expr $csr*$vertPress*$xsize*$thickness*0.25] 0 0
	}
	model basic -ndm 2 -ndf 2
	pattern Plain 5 "Sine 0 [expr $period*1000] $period" {
		load 7 [expr $csr*$vertPress*$xsize*$thickness*0.5] 0
	}
	puts "$Analysis_case"
	while {[expr abs([nodeDisp 7 1]/$ysize)]<$target_shear_strain} {
	# while {[getTime]<0.25}
	analyze 1 $deltaT [expr $deltaT/100] $deltaT 20
	puts "time = [getTime] sec"
	}
	
so my python script correspondingly looks like this

Code: Select all

op.constraints('Plain')
op.test('NormDispIncr', 1.0e-5, 50, 0)
op.algorithm('KrylovNewton')
op.numberer('RCM')
op.system('ProfileSPD')
op.integrator('Newmark', 5.0/6.0, 4.0/9.0)
op.rayleigh(Mproprayleigh, 0.0, Kinitproprayleigh, 0.0) #modification
op.analysis('VariableTransient')

op.model('basic', '-ndm', 2, '-ndf', 3) 
op.timeSeries('Trig', 3, 0.0, period*1000.0, period, '-factor', 1.0, '-shift', 0.0)
op.pattern('Plain', 3, 3, '-fact', 1.0)
op.sp(4, 1, csr*load_conf)
op.sp(3, 1, csr*load_conf)

op.model('basic', '-ndm', 2, '-ndf', 2)
op.timeSeries('Trig', 4, 0.0, period*1000.0, period, '-factor', 1.0, '-shift', 0.0)
op.pattern('Plain', 4, 4, '-fact', 1.0)
op.sp(7, 1, 2.0*csr*load_conf)


target_shear_strain = 0.03
while abs(op.nodeResponse(3,1,1))/0.1 < target_shear_strain:
    op.analyze(1, deltaT, deltaT/100, deltaT, 20)
I did equalDOF of nodes 3, 4, 7 in DOF 1 and 2, nodes 3 and 4 also equalDOF at degree 3 (fluid pressure)
However, the error i got is:

Code: Select all

WARNING PlainHandler::handle() -  non-homogeneos constraint for node 4 homogeneous constraint assumed
WARNING PlainHandler::handle() -  non-homogeneos constraint for node 3 homogeneous constraint assumed
WARNING PlainHandler::handle() -  non-homogeneos constraint for node 7 homogeneous constraint assumed
WARNING PlainHandler::handle() -  constraint at dof 0 already specified for constrained node in MP_Constraint at node 4
WARNING PlainHandler::handle() -  constraint at dof 0 already specified for constrained node in MP_Constraint at node 7
Any help is highly appreciated,

Thank you.

Regards,

Steve

mhscott
Posts: 868
Joined: Tue Jul 06, 2004 3:38 pm
Location: Corvallis, Oregon USA
Contact:

Re: Sine Wave load on nodes

Post by mhscott » Wed Feb 08, 2023 3:05 pm

Use ops.constraints('Transformation')

xzzgameboy
Posts: 10
Joined: Sun Jun 21, 2020 11:00 am

Re: Sine Wave load on nodes

Post by xzzgameboy » Fri Feb 10, 2023 12:42 pm

mhscott wrote:
Wed Feb 08, 2023 3:05 pm
Use ops.constraints('Transformation')
Thank you Prof. Scott

Post Reply