public class LinearElasticContact extends ElasticContactBase
ElasticContactBase.DampingMethod
Modifier and Type | Field and Description |
---|---|
static FieldPropertyList |
myProps |
TWO_WAY_CONTACT
Constructor and Description |
---|
LinearElasticContact()
Need no-args constructor for scanning
|
LinearElasticContact(double youngsModulus,
double poissonsRatio,
double dampingFactor,
double thickness)
Constructs a new LinearElasticContact material with specified properties.
|
Modifier and Type | Method and Description |
---|---|
LinearElasticContact |
clone()
Returns a clone of this composite property.
|
void |
computeResponse(double[] fres,
double dist,
ContactPoint cpnt0,
ContactPoint cpnt1,
Vector3d normal,
double contactArea,
int flags)
Computes the force response for a given contact.
|
FieldPropertyList |
getAllPropertyInfo()
Returns a list giving static information about all properties exported by
this object.
|
double |
getPoissonsRatio()
Queries Poisson's ratio for this material.
|
double |
getYoungsModulus()
Queries Young's modulus for this material.
|
ScalarFieldComponent |
getYoungsModulusField()
Queries the field, if any, associated with Young's modulus.
|
void |
setPoissonsRatio(double nu)
Sets Poisson's ratio for this material.
|
void |
setYoungsModulus(double E)
Sets Young's modulus for this material.
|
void |
setYoungsModulusField(ScalarFieldComponent field)
Binds Young's modulus to a field, or unbinds it if
field is
null . |
getDampingFactor, getDampingMethod, getMinThicknessRatio, getThickness, getThicknessField, getUseLocalContactArea, getUseLogDistance, setDampingFactor, setDampingMethod, setMinThicknessRatio, setThickness, setThicknessField, setUseLocalContactArea, setUseLogDistance, writeItems
computeContactArea, getSubClasses, registerSubclass
advanceState, createStateObject, getProperty, getPropertyHost, getPropertyInfo, hasProperty, hasState, hasSymmetricTangent, isWritable, postscan, scaleDistance, scaleMass, scan, setPropertyHost, setPropertyInfo, symmetryOrStateChanged, updateMaterial, write
public static FieldPropertyList myProps
public LinearElasticContact()
public LinearElasticContact(double youngsModulus, double poissonsRatio, double dampingFactor, double thickness)
youngsModulus
- Young's modulus (the "stiffness")poissonsRatio
- Poissons ratiodampingFactor
- multiplier for damping forcesthickness
- thickness of the foundation layerpublic FieldPropertyList getAllPropertyInfo()
HasProperties
getAllPropertyInfo
in interface HasProperties
getAllPropertyInfo
in class ElasticContactBase
public void computeResponse(double[] fres, double dist, ContactPoint cpnt0, ContactPoint cpnt1, Vector3d normal, double contactArea, int flags)
fres
. The force is defined as the restoring
force
force = f(dist)computed in response to the interpenetration distance
dist
.
Note that in general, dist
will be negative, and a
negative force will be expected in response. The compliance is the
reciprocal of the derivative of f(dist)
evaluated at
dist
. The damping is a positive damping parameter used to
generate damping forces in response to motion in the contact direction.
Other information the can be used includes the two contact points associated the contact, and the contact normal, which is facing outward from the contact surface.
computeResponse
in class ContactForceBehavior
fres
- returns the force, compliance and damping for a given
contact distance.dist
- contact interpenetration distance. This value is usually
negative, with greater negativity indicating greater interpenetration.cpnt0
- first contact pointcpnt1
- second contact pointnormal
- contact normal, directed from cpnt0 to cpnt1contactArea
- average area associated with the contact, or
-1 if this information is not availableflags
- flags providing additional information to the calculation.
These include ContactForceBehavior.TWO_WAY_CONTACT
, which indicates two-way vertex
penetration contact.public double getPoissonsRatio()
public void setPoissonsRatio(double nu)
nu
- new value of Poission's ratiopublic double getYoungsModulus()
public void setYoungsModulus(double E)
E
- new value for Young's moduluspublic ScalarFieldComponent getYoungsModulusField()
null
public void setYoungsModulusField(ScalarFieldComponent field)
field
is
null
.field
- field to bind to, or null
public LinearElasticContact clone()
clone
in interface CompositeProperty
clone
in interface Clonable
clone
in class ElasticContactBase