Stiffness of new material (getTangent)

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

Moderators: silvia, selimgunay, Moderators

Post Reply
Gholamreza
Posts: 84
Joined: Tue Nov 07, 2017 7:47 am
Location: University of Central Florida

Stiffness of new material (getTangent)

Post by Gholamreza »

Hello everyone,

I am developing a new material for a novel damper and the force of the damper is: F = pR^2 [sgn(v) + z];
where p is pressure, R is length, v is velocity and z is the same as parameter z in Bouc-Wen model (I understand pR^2 has the unit of the force ).
I have a hard time understanding how to define the tangent of material in my C++ code?
For example when we have elastic material that force is: F = kx, we know the tangent is k = F/x but when we have viscous material F = CV or in my case F = pR^2 [sgn(v) + z].....my question is how I should define the tangent:

double getTangent(void);
double getInitialTangent(void);
double getDampTangent(void);

Thanks for your help!
mhscott
Posts: 880
Joined: Tue Jul 06, 2004 3:38 pm
Location: Corvallis, Oregon USA
Contact:

Re: Stiffness of new material (getTangent)

Post by mhscott »

getTangent returns the derivative of F with respect to deformation
getDampTangent returns the derivative of F with respect to velocity, so take the derivative of your expression with respect to v
Gholamreza
Posts: 84
Joined: Tue Nov 07, 2017 7:47 am
Location: University of Central Florida

Re: Stiffness of new material (getTangent)

Post by Gholamreza »

Awesome, thanks. In order to calculate the force of the damper, I need to compute the velocity, v, and sign of the velocity, sgn(v). in order to that
I use getStrainRate(void) to calculate velocity and signum(TVel):

TVel = strainRate;

double
SandDamper::getStrainRate(void)
{
return TVel;
}

F = pR^2 [signum(TVel) + z];

However, my result is NOT in a good agreement with MATLAB. what's the best way to calculate velocity and its sign?
Post Reply