viscous material parallel
Moderators: silvia, selimgunay, Moderators
viscous material parallel
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
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
Re: viscous material parallel
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
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
Re: viscous material parallel
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.
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.
Re: viscous material parallel
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.
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.
Re: viscous material parallel
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;
}
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;
}
Re: viscous material parallel
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?
Re: viscous material parallel
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".
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".
Re: viscous material parallel
i take it the change is working.