opensurgsim
Classes | Namespaces | Functions
Fem2DMechanicalValidationTests.cpp File Reference

This file tests the mechanical behaviors of the Fem2DRepresentation. More...

#include <gtest/gtest.h>
#include "SurgSim/Framework/Runtime.h"
#include "SurgSim/Math/Matrix.h"
#include "SurgSim/Math/OdeState.h"
#include "SurgSim/Math/Quaternion.h"
#include "SurgSim/Math/RigidTransform.h"
#include "SurgSim/Math/Vector.h"
#include "SurgSim/Physics/Fem2DRepresentation.h"
#include "SurgSim/Physics/Fem2DElementTriangle.h"

Classes

class  SurgSim::Physics::Fem2DMechanicalValidationTests
 Mechanical validation tests class Our validation tests are based on the following Thesis: "Development of Membrane, Plate and Flat Shell Elements in Java" Kaushalkumar Kansara, May 2004 In this thesis, the same formulation has been chosen to simulate the plate bending deformation, based on Batoz et al. More...
 

Namespaces

 SurgSim
 Wraps glewInit() to separate the glew opengl definitions from the osg opengl definitions only imgui needs glew but we need to call glewInit() from a osg callback, using this call we avoid getting warnings about redefinitions.
 

Functions

 SurgSim::Physics::TEST_F (Fem2DMechanicalValidationTests, MembraneCantileverTest1)
 
 SurgSim::Physics::TEST_F (Fem2DMechanicalValidationTests, MembraneCantileverTest2)
 
template<size_t M>
void SurgSim::Physics::defineTriangleStrips (size_t beginIndex1, size_t beginIndex2, size_t number, std::array< std::array< size_t, 3 >, M > *triangleLists, size_t *triangleId)
 Generic algorithm to define the triangles in between 2 arrays of consecutive node indices: beginIndex2 *—1—2—3—4 array2 | \ | \ | \ | \ | *—1—2—3—4 array1 beginIndex1.
 
void SurgSim::Physics::membranePlateWithSemiCircularHoleAddNodesForAngle (double angle, size_t numNodes, double L, double radius, std::vector< Vector3d > *nodes)
 Helper function to define the nodes of the membrane plate with semi-circular hole test In this test, nodes are defined around concentric circles. More...
 
 SurgSim::Physics::TEST_F (Fem2DMechanicalValidationTests, MembranePlateWithSemiCircularHoleTest)
 
 SurgSim::Physics::TEST_F (Fem2DMechanicalValidationTests, PlateBendingSquarePlateMeshPatternATest)
 
 SurgSim::Physics::TEST_F (Fem2DMechanicalValidationTests, PlateBendingSquarePlateMeshPatternBTest)
 
 SurgSim::Physics::TEST_F (Fem2DMechanicalValidationTests, CantileverPlateTest)
 

Detailed Description

This file tests the mechanical behaviors of the Fem2DRepresentation.

Function Documentation

§ membranePlateWithSemiCircularHoleAddNodesForAngle()

void SurgSim::Physics::membranePlateWithSemiCircularHoleAddNodesForAngle ( double  angle,
size_t  numNodes,
double  L,
double  radius,
std::vector< Vector3d > *  nodes 
)

Helper function to define the nodes of the membrane plate with semi-circular hole test In this test, nodes are defined around concentric circles.

This function adds the nodes that are along the same axis (going from the most interior circle to the most exterior circle) for a given angle.

Parameters
angleThe angle for which the nodes will be computed and added
numNodesThe number of nodes to add along this axis (defined by the angle)
LThe length of the plate
radiusThe radius of the most internal circle
[in,out]nodesThe list of nodes in which the new nodes will be added
Note
The spacing between 2 consecutive nodes is constant equal to (L / 2.0 - radius) / 5.0