|
ESyS-Particle
2.3.4
|
Elastic interaction between bonded particles between rotational particles. More...
#include <RotBondedInteraction.h>


Public Types | |
| typedef CRotBondedIGP | ParameterType |
| typedef BondedInteractionCpData | CheckPointable |
| typedef double(CRotBondedInteraction::* | ScalarFieldFunction) () const |
| typedef pair< bool, double >(CRotBondedInteraction::* | CheckedScalarFieldFunction) () const |
| typedef Vec3(CRotBondedInteraction::* | VectorFieldFunction) () const |
Public Member Functions | |
| CRotBondedInteraction () | |
| CRotBondedInteraction (CRotParticle *, CRotParticle *, const CRotBondedIGP &) | |
| virtual | ~CRotBondedInteraction () |
| int | getTag () const |
| void | setTag (int tag) |
| void | calcForces () |
| bool | broken () |
| double | getPotentialEnergy () const |
| double | getNormalPotentialEnergy () const |
| double | getShearPotentialEnergy () const |
| double | getTwistPotentialEnergy () const |
| double | getBendPotentialEnergy () const |
| double | getCriterion () const |
| Vec3 | getForce () const |
| Vec3 | getNormalForce () const |
| Vec3 | getTangentialForce () const |
| virtual Vec3 | getPos () const |
| Vec3 | getCentrePtDiff () const |
| Vec3 | getInitialCentrePtDiff () const |
| Vec3 | getInitialMidPoint () const |
| Vec3 | getP2ShearForcePt () const |
| Vec3 | getP1ShearForcePt () const |
| Vec3 | getContactPoint () const |
| Vec3 | getShearDiff () const |
| virtual void | saveCheckPointData (std::ostream &oStream) |
| virtual void | loadCheckPointData (std::istream &iStream) |
| virtual void | saveRestartData (std::ostream &oStream) |
| virtual void | loadRestartData (std::istream &iStream) |
Public Member Functions inherited from ARotPairInteraction | |
| ARotPairInteraction () | |
| ARotPairInteraction (CRotParticle *, CRotParticle *) | |
| virtual | ~ARotPairInteraction () |
| const CParticle * | first () const |
| const CParticle * | second () const |
| CRotParticle * | first () |
| CRotParticle * | second () |
| pair< int, int > | getPairID () const |
| void | checkIDs () |
| virtual bool | hasTag (int, int) const |
| virtual Vec3 | getPosFirst () const |
| virtual Vec3 | getPosSecond () const |
| void | setPP (CRotParticle *, CRotParticle *) |
| void | setPP (const vector< CRotParticle * >) |
| esys::lsm::quintuple< Vec3, double, Vec3, double, Vec3 > | getRaw2Data () const |
| virtual void | calcHeatTrans () |
| virtual void | calcHeatFrict () |
Public Member Functions inherited from AInteraction | |
| AInteraction () | |
| virtual | ~AInteraction () |
| bool | initialized () const |
| vector< int > | getAllID () const |
| int | getID () |
| double | Count () const |
Static Public Member Functions | |
| static ScalarFieldFunction | getScalarFieldFunction (const string &) |
| static CheckedScalarFieldFunction | getCheckedScalarFieldFunction (const string &) |
| static VectorFieldFunction | getVectorFieldFunction (const string &) |
| static string | getType () |
Private Attributes | |
| double | m_dist |
| current distance, cached from last calcForces() More... | |
| double | m_r0 |
| equilibrium separation More... | |
| double | m_kr |
| spring constant More... | |
| double | m_ks |
| double | m_kb |
| double | m_kt |
| double | m_max_nForce |
| double | m_max_shForce |
| double | m_max_tMoment |
| double | m_max_bMoment |
| double | m_nForce |
| double | m_shForce |
| double | m_tMoment |
| double | m_bMoment |
| Vec3 | m_force |
| current force, cached for E_pot calculation More... | |
| Vec3 | m_moment |
| Vec3 | m_cpos |
| Vec3 | m_D |
| initial positions of the particles More... | |
| int | m_tag |
| bool | m_scaling |
| bool | m_meanR_scaling |
| double | m_truncated |
| double | m_beta1 |
| double | m_beta2 |
Friends | |
| class | TML_PackedMessageInterface |
| ostream & | operator<< (ostream &, const CRotBondedInteraction &) |
Additional Inherited Members | |
Protected Attributes inherited from ARotPairInteraction | |
| CRotParticle * | m_p1 |
| CRotParticle * | m_p2 |
Protected Attributes inherited from AInteraction | |
| vector< int > | m_id |
| id's of the particles involved More... | |
| int | m_iid |
| interaction id More... | |
| bool | m_init |
Elastic interaction between bonded particles between rotational particles.
| typedef pair<bool,double>(CRotBondedInteraction::* CRotBondedInteraction::CheckedScalarFieldFunction) () const |
Used by PIS to save/load check-point data for objects of this type.
| typedef double(CRotBondedInteraction::* CRotBondedInteraction::ScalarFieldFunction) () const |
| typedef Vec3(CRotBondedInteraction::* CRotBondedInteraction::VectorFieldFunction) () const |
| CRotBondedInteraction::CRotBondedInteraction | ( | ) |
References m_beta1, m_beta2, m_bMoment, m_force, m_kb, m_kr, m_ks, m_kt, m_max_bMoment, m_max_nForce, m_max_shForce, m_max_tMoment, m_meanR_scaling, m_moment, m_nForce, m_scaling, m_shForce, m_tag, m_tMoment, and m_truncated.
| CRotBondedInteraction::CRotBondedInteraction | ( | CRotParticle * | p1, |
| CRotParticle * | p2, | ||
| const CRotBondedIGP & | param | ||
| ) |
References CRotBondedIGP::beta1, CRotBondedIGP::beta2, CParticle::getDo2dCalculations(), CBasicParticle::getPos(), CBasicParticle::getRad(), CRotBondedIGP::kb, CRotBondedIGP::kr, CRotBondedIGP::ks, CRotBondedIGP::kt, m_beta1, m_beta2, m_bMoment, m_D, m_dist, m_force, m_kb, m_kr, m_ks, m_kt, m_max_bMoment, m_max_nForce, m_max_shForce, m_max_tMoment, m_meanR_scaling, m_moment, m_nForce, m_r0, m_scaling, m_shForce, m_tag, m_tMoment, m_truncated, CRotBondedIGP::max_bMoment, CRotBondedIGP::max_nForce, CRotBondedIGP::max_shForce, CRotBondedIGP::max_tMoment, CRotBondedIGP::meanR_scaling, CRotBondedIGP::scaling, CRotBondedIGP::tag, and CRotBondedIGP::truncated.

|
virtual |
| bool CRotBondedInteraction::broken | ( | ) |
Check if the fracture criterion has been exceeded. If so, flag the particles (for the rebuilding of the other interactions) and return "true", so the update of this interaction group can remove the interaction.
References m_beta1, m_beta2, m_bMoment, m_max_bMoment, m_max_nForce, m_max_shForce, m_max_tMoment, m_nForce, ARotPairInteraction::m_p1, ARotPairInteraction::m_p2, m_shForce, m_tMoment, m_truncated, NULL, and CParticle::setFlag().

|
virtual |
Implements ARotPairInteraction.
References CParticle::applyForce(), CRotParticle::applyMoment(), calc_angle(), cross(), dot(), CBasicParticle::getPos(), CRotParticle::getQuat(), CBasicParticle::getRad(), HALF_SQRT_2, Quaternion::inverse(), m_bMoment, m_cpos, m_D, m_dist, m_force, m_kb, m_kr, m_ks, m_kt, m_moment, m_nForce, ARotPairInteraction::m_p1, ARotPairInteraction::m_p2, m_shForce, m_tMoment, Vec3::norm(), Quaternion::return_sca(), Quaternion::return_vec(), Quaternion::to_matrix(), Matrix3::trans(), Vec3::X(), Vec3::Y(), and Vec3::Z().

| double CRotBondedInteraction::getBendPotentialEnergy | ( | ) | const |
References m_bMoment, and m_kb.
Referenced by getScalarFieldFunction().

| Vec3 CRotBondedInteraction::getCentrePtDiff | ( | ) | const |
References CBasicParticle::getPos(), ARotPairInteraction::m_p1, and ARotPairInteraction::m_p2.
Referenced by getContactPoint().


|
static |
Get the particle member function which returns a checked scalar field of a given name.
| name | the name of the field |
References NULL.
| Vec3 CRotBondedInteraction::getContactPoint | ( | ) | const |
References getCentrePtDiff(), CBasicParticle::getPos(), CBasicParticle::getRad(), ARotPairInteraction::m_p1, ARotPairInteraction::m_p2, and Vec3::norm().

| double CRotBondedInteraction::getCriterion | ( | ) | const |
References m_bMoment, m_max_bMoment, m_max_nForce, m_max_shForce, m_max_tMoment, m_nForce, m_shForce, and m_tMoment.
Referenced by getScalarFieldFunction().

| Vec3 CRotBondedInteraction::getForce | ( | ) | const |
References m_force.
Referenced by getVectorFieldFunction().

| Vec3 CRotBondedInteraction::getInitialCentrePtDiff | ( | ) | const |
References CParticle::getInitPos(), ARotPairInteraction::m_p1, and ARotPairInteraction::m_p2.
Referenced by getInitialMidPoint().


| Vec3 CRotBondedInteraction::getInitialMidPoint | ( | ) | const |
References getInitialCentrePtDiff(), CParticle::getInitPos(), CBasicParticle::getRad(), ARotPairInteraction::m_p1, ARotPairInteraction::m_p2, and Vec3::norm().
Referenced by getP1ShearForcePt(), and getP2ShearForcePt().


| Vec3 CRotBondedInteraction::getNormalForce | ( | ) | const |
References CBasicParticle::getPos(), m_force, ARotPairInteraction::m_p1, and ARotPairInteraction::m_p2.
Referenced by getTangentialForce(), and getVectorFieldFunction().


| double CRotBondedInteraction::getNormalPotentialEnergy | ( | ) | const |
References m_kr, and m_nForce.
Referenced by getScalarFieldFunction().

| Vec3 CRotBondedInteraction::getP1ShearForcePt | ( | ) | const |
References getInitialMidPoint(), CParticle::getInitPos(), CBasicParticle::getPos(), CRotParticle::getQuat(), ARotPairInteraction::m_p1, and Quaternion::to_matrix().
Referenced by getShearDiff().


| Vec3 CRotBondedInteraction::getP2ShearForcePt | ( | ) | const |
References getInitialMidPoint(), CParticle::getInitPos(), CBasicParticle::getPos(), CRotParticle::getQuat(), ARotPairInteraction::m_p2, and Quaternion::to_matrix().
Referenced by getShearDiff().


|
inlinevirtual |
Implements ARotPairInteraction.
References m_cpos.
| double CRotBondedInteraction::getPotentialEnergy | ( | ) | const |
|
static |
Get the particle member function which returns a scalar field of a given name.
| name | the name of the field |
References AInteraction::Count(), getBendPotentialEnergy(), getCriterion(), getNormalPotentialEnergy(), getPotentialEnergy(), getShearPotentialEnergy(), getTwistPotentialEnergy(), and NULL.

| Vec3 CRotBondedInteraction::getShearDiff | ( | ) | const |
References getP1ShearForcePt(), getP2ShearForcePt(), CBasicParticle::getPos(), and ARotPairInteraction::m_p1.

| double CRotBondedInteraction::getShearPotentialEnergy | ( | ) | const |
References m_ks, and m_shForce.
Referenced by getScalarFieldFunction().

| int CRotBondedInteraction::getTag | ( | ) | const |
| Vec3 CRotBondedInteraction::getTangentialForce | ( | ) | const |
References getNormalForce(), and m_force.
Referenced by getVectorFieldFunction().


| double CRotBondedInteraction::getTwistPotentialEnergy | ( | ) | const |
References m_kt, and m_tMoment.
Referenced by getScalarFieldFunction().

|
inlinestatic |
|
static |
Get the particle member function which returns a vector field of a given name.
| name | the name of the field |
References getForce(), getNormalForce(), getTangentialForce(), and NULL.

|
virtual |
|
virtual |
load restart data from stream
| iStream | the input stream |
Reimplemented from ARotPairInteraction.
References m_beta1, m_beta2, m_D, AInteraction::m_id, AInteraction::m_init, m_kb, m_kr, m_ks, m_kt, m_max_bMoment, m_max_nForce, m_max_shForce, m_max_tMoment, m_meanR_scaling, m_scaling, m_truncated, and setTag().

|
virtual |
|
virtual |
save restart data to ostream
| oStream | the output stream |
Reimplemented from ARotPairInteraction.
References getTag(), m_beta1, m_beta2, m_D, AInteraction::m_id, AInteraction::m_init, m_kb, m_kr, m_ks, m_kt, m_max_bMoment, m_max_nForce, m_max_shForce, m_max_tMoment, m_meanR_scaling, m_scaling, and m_truncated.

| void CRotBondedInteraction::setTag | ( | int | tag | ) |
|
friend |
|
friend |
|
private |
|
private |
|
private |
|
private |
Referenced by calcForces(), and getPos().
|
private |
initial positions of the particles
Referenced by calcForces(), CRotBondedInteraction(), loadRestartData(), TML_PackedMessageInterface::pack(), saveRestartData(), and TML_PackedMessageInterface::unpack().
|
private |
current distance, cached from last calcForces()
Referenced by calcForces(), and CRotBondedInteraction().
|
private |
current force, cached for E_pot calculation
Referenced by calcForces(), CRotBondedInteraction(), getForce(), getNormalForce(), and getTangentialForce().
|
private |
|
private |
spring constant
Referenced by calcForces(), CRotBondedInteraction(), getNormalPotentialEnergy(), getPotentialEnergy(), loadRestartData(), TML_PackedMessageInterface::pack(), saveRestartData(), and TML_PackedMessageInterface::unpack().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by calcForces(), and CRotBondedInteraction().
|
private |
|
private |
equilibrium separation
Referenced by CRotBondedInteraction().
|
private |
|
private |
|
private |
|
private |
|
private |