Hi everyone,
I'm currently working on a simulation using Project Chrono, and I'm trying to model a torus using Euler beams. However, I'm encountering an issue where the torus starts to deform even when there are no external forces. Part of the code is following:
double radius = 0.5;
int num_elements = 64;
double angle_increment = 2 * 3.14 / num_elements;
for (int i = 0; i < num_elements; ++i) {
double angle = i * angle_increment;
double x = radius * cos(angle);
double y = radius * sin(angle);
double z = offz;
ChVector3d p(x, y, z);
auto collarNode = std::make_shared<chrono::fea::ChNodeFEAxyzrot>(ChFrame<>(p));
mesh_->AddNode(collarNode);
collar_nodes_->push_back(collarNode);
}
collarElementNum_ = collar_nodes_->size();
for (size_t i = 0; i < collar_nodes_->size(); ++i) {
int ID1 = i;
int ID2 = i + 1;
if (i == collarElementNum_ - 1)
ID2 = 0;
auto node0 = (*collar_nodes_)[ID1];
auto node1 = (*collar_nodes_)[ID2];
auto msection = chrono_types::make_shared<ChBeamSectionEulerAdvanced>();
msection->SetDensity(collarDensity_);
msection->SetYoungModulus(collarE_);
msection->SetShearModulusFromPoisson(0.3);
msection->SetRayleighDamping(0.000);
msection->SetAsCircularSection(collarDia_);
auto element = chrono_types::make_shared<ChElementBeamEuler>();
element->SetNodes(node0, node1);
element->SetSection(msection);
mesh_->AddElement(element);
}
Does anyone have any suggestions? Thanks very much!
Regards,
Jay