Dear All,

I am trying to understand the implementation of Hermite element
and have a problem with the following fragment of the method:
void hermite_segment__::mat_trans(/* skip *)


 gmm::copy(gmm::identity_matrix(), M);
 // gradient at point 0
 gmm::mult(G, pgp->grad(1), K);
 if (N == 1) M(1, 1) = K(0,0);
 else  M(1, 1) = gmm::mat_euclidean_norm(K)
    * gmm::sgn(gmm::vect_sp(gmm::mat_col(K, 0), r));
 // gradient at point 1
 if (!(pgt->is_linear())) gmm::mult(G, pgp->grad(3), K);
 if (N == 1) M(3, 3) = K(0,0);
 else M(3, 3) = gmm::mat_euclidean_norm(K)
    * gmm::sgn(gmm::vect_sp(gmm::mat_row(K, 0), r));

Why the scheme for gradient at point 0 and 1 differ -- that is why
in case of point 1 we take gmm:mat_row(K,0) and not gmm::mat_col(K,0)?
Isn't the matrix K of the size Nx1 where N is the dimension of the
real space?

And also this computatno with signum function -- are they to take into
account the order of poins in respet to the local coordinate system?

I would appreciate any hint.

Regards

Roman


-- 
Roman Putanowicz, PhD  < [email protected]  >
Institute for Computational Civil Engng (L-5)
Dept. of Civil Engng, Cracow Univ. of Technology
www.l5.pk.edu.pl, tel. +48 12 628 2569, fax 2034

_______________________________________________
Getfem-users mailing list
[email protected]
https://mail.gna.org/listinfo/getfem-users

Reply via email to