 		const real3 * ANCF_SlopesVelD,
 		const int2 * ANCF_ReferenceArrayNodesOnBeamsD,
 		const real_ * ANCF_Beam_LengthD,
+		const ANCF_Params & flexParams,
+		const GaussQuadrature & GQ,
 		uint i
 	)
 {
 	real_ l = ANCF_Beam_LengthD[i];
+	printf("l, %f\n", l);
 	int2 nodesPortion = ANCF_ReferenceArrayNodesOnBeamsD[i];
 	int numNodes = nodesPortion.y - nodesPortion.x;
 	int numElements = numNodes - 1;

		CalcElasticForcesKernel(
				flex_FSI_NodesForcesD1, flex_FSI_NodesForcesD2,
				ANCF_NodesD, ANCF_SlopesD, ANCF_NodesVelD, ANCF_SlopesVelD,
				ANCF_ReferenceArrayNodesOnBeamsD, ANCF_Beam_LengthD, i);
#if !flexGPU
	}
#endif

		const ANCF_Params & flexParams,
		real_ dT)
{
	thrust::host_vector<real3> ANCF_NodesH2 = ANCF_NodesD2;
	thrust::host_vector<real3> ANCF_SlopesH2 = ANCF_SlopesD2;
	thrust::host_vector<real3> ANCF_NodesVelH2 = ANCF_NodesVelD2;
	thrust::host_vector<real3> ANCF_SlopesVelH2 = ANCF_SlopesVelD2;

	thrust::host_vector<real3> ANCF_NodesH = ANCF_NodesD;
	thrust::host_vector<real3> ANCF_SlopesH = ANCF_SlopesD;
	thrust::host_vector<real3> ANCF_NodesVelH = ANCF_NodesVelD;
	thrust::host_vector<real3> ANCF_SlopesVelH = ANCF_SlopesVelD;

	thrust::host_vector<real3> flex_FSI_NodesForcesH1 = flex_FSI_NodesForcesD1;
	thrust::host_vector<real3> flex_FSI_NodesForcesH2 = flex_FSI_NodesForcesD2;
	thrust::host_vector<int2>  ANCF_ReferenceArrayNodesOnBeamsH = ANCF_ReferenceArrayNodesOnBeamsD;
	thrust::host_vector<real_> ANCF_Beam_LengthH = ANCF_Beam_LengthD;
	thrust::host_vector<bool> ANCF_IsCantileverH = ANCF_IsCantileverD;

	//---------------------------------------------
	GaussQuadrature GQ;
	IntitializeGaussQuadrature(GQ);
