FemElementStructs.h
Go to the documentation of this file.
// This file is a part of the OpenSurgSim project.
// Copyright 2015, SimQuest Solutions Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef SURGSIM_PHYSICS_FEMELEMENTSTRUCTS_H
#define SURGSIM_PHYSICS_FEMELEMENTSTRUCTS_H
namespace SurgSim
{
namespace Physics
{
namespace FemElementStructs
{
struct RotationVectorData
{
RotationVectorData() : thetaX(0.0), thetaY(0.0), thetaZ(0.0)
{
}
bool operator==(const RotationVectorData& rhs) const
{
return (thetaX == rhs.thetaX && thetaY == rhs.thetaY && thetaZ == rhs.thetaZ);
}
double thetaX;
double thetaY;
double thetaZ;
};
struct FemElementParameter
{
FemElementParameter() : youngModulus(0.0), poissonRatio(0.0), massDensity(0.0)
{
}
virtual ~FemElementParameter(){}
std::vector<size_t> nodeIds;
double youngModulus;
double poissonRatio;
double massDensity;
};
struct FemElement1DParameter : public FemElementParameter
{
FemElement1DParameter() : radius(0.0), enableShear(false)
{
}
double radius;
bool enableShear;
};
struct FemElement2DParameter : public FemElementParameter
{
FemElement2DParameter() : thickness(0.0)
{
}
double thickness;
};
struct FemElement3DParameter : public FemElementParameter {};
} // namespace FemElementStructs
} // namespace Physics
} // namespace SurgSim
#endif // SURGSIM_PHYSICS_FEMELEMENTSTRUCTS_H
SurgSim
Definition: CompoundShapeToGraphics.cpp:29
SurgSim::Physics::FemElementStructs::FemElementParameter::poissonRatio
double poissonRatio
Definition: FemElementStructs.h:57
SurgSim::Physics::FemElementStructs::RotationVectorData
RotationVectorData is a structure containing the rotational dof per vertex The nature of the rotation...
Definition: FemElementStructs.h:29
SurgSim::Physics::FemElementStructs::FemElement2DParameter
FemElement2DParameter is a FemElementParameter structure specialized for 2D element.
Definition: FemElementStructs.h:73
SurgSim::Physics::FemElementStructs::FemElementParameter
FemElementParameter is a structure containing the parameters of an fem element following the Hooke&#39;s ...
Definition: FemElementStructs.h:47
SurgSim::Physics::FemElementStructs::FemElement1DParameter::radius
double radius
Definition: FemElementStructs.h:68
SurgSim::Physics::FemElementStructs::FemElement2DParameter::thickness
double thickness
Definition: FemElementStructs.h:79
SurgSim::Physics::FemElementStructs::RotationVectorData::RotationVectorData
RotationVectorData()
Definition: FemElementStructs.h:31
SurgSim::Physics::FemElementStructs::FemElementParameter::~FemElementParameter
virtual ~FemElementParameter()
Definition: FemElementStructs.h:53
SurgSim::Physics::FemElementStructs::FemElementParameter::FemElementParameter
FemElementParameter()
Definition: FemElementStructs.h:49
SurgSim::Physics::FemElementStructs::RotationVectorData::operator==
bool operator==(const RotationVectorData &rhs) const
Definition: FemElementStructs.h:35
SurgSim::Physics::FemElementStructs::FemElementParameter::youngModulus
double youngModulus
Definition: FemElementStructs.h:56
SurgSim::Physics::FemElementStructs::FemElement1DParameter
FemElement1DParameter is a FemElementParameter structure specialized for 1D element.
Definition: FemElementStructs.h:62
SurgSim::Physics::FemElementStructs::FemElementParameter::massDensity
double massDensity
Definition: FemElementStructs.h:58
SurgSim::Physics::FemElementStructs::RotationVectorData::thetaX
double thetaX
Definition: FemElementStructs.h:40
SurgSim::Physics::FemElementStructs::FemElement3DParameter
FemElement3DParameter is a FemElementParameter structure specialized for 3D element.
Definition: FemElementStructs.h:83
SurgSim::Physics::FemElementStructs::FemElement1DParameter::enableShear
bool enableShear
Definition: FemElementStructs.h:69
SurgSim::Physics::FemElementStructs::FemElementParameter::nodeIds
std::vector< size_t > nodeIds
Definition: FemElementStructs.h:55
SurgSim::Physics::FemElementStructs::RotationVectorData::thetaZ
double thetaZ
Definition: FemElementStructs.h:42
SurgSim::Physics::FemElementStructs::RotationVectorData::thetaY
double thetaY
Definition: FemElementStructs.h:41
SurgSim::Physics::FemElementStructs::FemElement1DParameter::FemElement1DParameter
FemElement1DParameter()
Definition: FemElementStructs.h:64
SurgSim::Physics::FemElementStructs::FemElement2DParameter::FemElement2DParameter
FemElement2DParameter()
Definition: FemElementStructs.h:75