本文整理汇总了C++中PrecalcShapeset::get_dyy_values方法的典型用法代码示例。如果您正苦于以下问题:C++ PrecalcShapeset::get_dyy_values方法的具体用法?C++ PrecalcShapeset::get_dyy_values怎么用?C++ PrecalcShapeset::get_dyy_values使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PrecalcShapeset
的用法示例。
在下文中一共展示了PrecalcShapeset::get_dyy_values方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: calc_second_ref_map
void RefMap::calc_second_ref_map(int order)
{
assert(quad_2d != NULL);
int i, j, np = quad_2d->get_num_points(order);
AUTOLA_OR(double3x2, k, np);
memset(k, 0, k.size);
ref_map_pss.force_transform(sub_idx, ctm);
for (i = 0; i < nc; i++)
{
double *dxy, *dxx, *dyy;
ref_map_pss.set_active_shape(indices[i]);
ref_map_pss.set_quad_order(order, H2D_FN_ALL);
dxx = ref_map_pss.get_dxx_values();
dyy = ref_map_pss.get_dyy_values();
dxy = ref_map_pss.get_dxy_values();
for (j = 0; j < np; j++)
{
k[j][0][0] += coeffs[i][0] * dxx[j];
k[j][0][1] += coeffs[i][1] * dxx[j];
k[j][1][0] += coeffs[i][0] * dxy[j];
k[j][1][1] += coeffs[i][1] * dxy[j];
k[j][2][0] += coeffs[i][0] * dyy[j];
k[j][2][1] += coeffs[i][1] * dyy[j];
}
}
double3x2* mm = cur_node->second_ref_map[order] = new double3x2[np];
double2x2* m = get_inv_ref_map(order);
for (j = 0; j < np; j++)
{
double a, b;
// coefficients in second derivative with respect to xx
a = sqr(m[j][0][0])*k[j][0][0] + 2*m[j][0][0]*m[j][0][1]*k[j][1][0] + sqr(m[j][0][1])*k[j][2][0];
b = sqr(m[j][0][0])*k[j][0][1] + 2*m[j][0][0]*m[j][0][1]*k[j][1][1] + sqr(m[j][0][1])*k[j][2][1];
mm[j][0][0] = -(a * m[j][0][0] + b * m[j][1][0]); // du/dx
mm[j][0][1] = -(a * m[j][0][1] + b * m[j][1][1]); // du/dy
// coefficients in second derivative with respect to xy
a = m[j][0][0]*m[j][1][0]*k[j][0][0] + (m[j][0][1]*m[j][1][0] + m[j][0][0]*m[j][1][1])*k[j][1][0] + m[j][0][1]*m[j][1][1]*k[j][2][0];
b = m[j][0][0]*m[j][1][0]*k[j][0][1] + (m[j][0][1]*m[j][1][0] + m[j][0][0]*m[j][1][1])*k[j][1][1] + m[j][0][1]*m[j][1][1]*k[j][2][1];
mm[j][1][0] = -(a * m[j][0][0] + b * m[j][1][0]); // du/dx
mm[j][1][1] = -(a * m[j][0][1] + b * m[j][1][1]); // du/dy
// coefficients in second derivative with respect to yy
a = sqr(m[j][1][0])*k[j][0][0] + 2*m[j][1][0]*m[j][1][1]*k[j][1][0] + sqr(m[j][1][1])*k[j][2][0];
b = sqr(m[j][1][0])*k[j][0][1] + 2*m[j][1][0]*m[j][1][1]*k[j][1][1] + sqr(m[j][1][1])*k[j][2][1];
mm[j][2][0] = -(a * m[j][0][0] + b * m[j][1][0]); // du/dx
mm[j][2][1] = -(a * m[j][0][1] + b * m[j][1][1]); // du/dy
}
}