viscous material parallel

Forum for OpenSees users to post questions, comments, etc. on the use of the OpenSees interpreter, OpenSees.exe

Moderators: silvia, selimgunay, Moderators

Post Reply
ionsergis
Posts: 8
Joined: Mon Jan 19, 2015 3:36 pm
Location: ENPC

viscous material parallel

Post by ionsergis »

Hello everyone,

I have read numerous posts about having a viscous material in parallel with an elastic material and still i have not understood if we can use it. I have tried to use it with a zerolength element and a newton algorithm and i have a problem in my dynamic analysis. I want to use a viscous material with a very small alpha and an elastic material in parallel in order to model a LRB isolator. Any help would be very helpful.

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

Re: viscous material parallel

Post by fmk »

looking at the code you could use be able to use them in parallel. As the materials just add up, you could also repeat the same thing using 2 zerolength elements connected to the same nodes, 1 with the visocous material, the other with the elastic material. The 2 sets of analysis should give the same result if you can use it in parallel. If not, then just model with 2 elements. now the visocus material does from comments on the message bouard have problems with small alpha, the code for the viscous:

if (absRate > minVel)
stress = C*pow(absRate, Alpha);
else
stress = C*pow(minVel, Alpha);

stress = C*pow(absRate, Alpha);

is there any reason you are not using the lead rubber bearng material?
http://opensees.berkeley.edu/wiki/index.php/LeadRubberX
ionsergis
Posts: 8
Joined: Mon Jan 19, 2015 3:36 pm
Location: ENPC

Re: viscous material parallel

Post by ionsergis »

Hello Frank,

I am really glad about your answer. Thanks a lot. I have to compare a program that uses a viscous material with very small alpha with an elastic material that represents the rigidy of my bearing for the LRB. Otherwise i would have already used an elastoplastic material or the lead rubber x command. Finally i used a viscous damper material with very high rigity of the axial stiffness of my rubber with a uniaxial material elastic in parallel. The diagram force -deformation seems to be logical but i am not sure. In any case thanks a lot.
Houman
Posts: 2
Joined: Tue Apr 07, 2015 3:35 am
Location: University of Naples, Federico II

Re: viscous material parallel

Post by Houman »

As far as I read the Viscous Material command manual it has two important notes:
NOTES:

1. This material can only be assigned to truss and zeroLength elements.

2. This material can not be combined in parallel/series with other materials. When defined in parallel with other materials it is ignored.

the second note says it is impossible to combine it with an elastic spring. I don't know if the suggestion by fmk for using two zero-length works or not.
tugce
Posts: 4
Joined: Wed Apr 18, 2012 8:15 am
Location: lehigh

Re: viscous material parallel

Post by tugce »

Hi,

Can you please clarify if the "minVel" variable in the uniaxial Viscous material definition can be specified by the user? The source code shows that minVel is set to a default value of 1.0e-11.

I tried to modify the source code (in ViscousMaterial.cpp aand ViscousMaterial.h codes,shown below) such that it will allow me to input minVel, but somehow it is always set back to 1.0e-11. I think modifying the ViscousMaterial.cpp and ViscousMaterial.h is not solely enough to change the value of minVel or the changes that I made on the source codes was not appropriate. Can you please help me understand how I can modify the source code so that the user may specify minVel?

Thank you.
--
->Modification that I made on the ViscousMaterial.h is:
// Lines 41 to 44
public:
ViscousMaterial(int tag, double C, double Alpha, double minVel); // previosuly it was -> ViscousMaterial(int tag, double C, double Alpha, double minVel = 1.0e-11);
ViscousMaterial();
~ViscousMaterial();


->Modification that I made on the ViscousMaterial.cpp is:
// Lines 158 to 166
UniaxialMaterial *
ViscousMaterial::getCopy(void)
{
ViscousMaterial *theCopy = new ViscousMaterial(this->getTag(),C,Alpha,minVel); // -> previously, it was -> ViscousMaterial *theCopy = new ViscousMaterial(this->getTag(),C,Alpha);

theCopy->trialRate = trialRate;

return theCopy;
}
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: viscous material parallel

Post by fmk »

the getCopy() fix should have done it. the change to the header will not, basically that value in the header is only used if nothing is provided for that value in the constructor. What command are you using to generate the material?
tugce
Posts: 4
Joined: Wed Apr 18, 2012 8:15 am
Location: lehigh

Re: viscous material parallel

Post by tugce »

Hi Frank,

Thank you for your reply. After making the changes on ViscousMaterial.cpp, I just rebuilt the solution in Visual Studio. And in tcl file, I just call it as
"uniaxialMaterial Viscous $C $Alpha $minVel".
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: viscous material parallel

Post by fmk »

i take it the change is working.
Post Reply