321 if (uvw[2]>=-1.-1e-10)
322 if (1.-uvw[0]-uvw[1]<=1.+1e-10)
323 if (uvw[2]<=1.+1e-10)
369 if (
get_lien_topologie()!=NULL) o <<
"%" <<
get_id() <<
"=FEM_PENTA15($"<<
get_lien_topologie()->
get_id() <<
",$" <<
maillage->
get_id() <<
",$" <<
tab[0]->
get_id() <<
",$" <<
tab[1]->
get_id() <<
",$" <<
tab[2]->
get_id()<<
",$" <<
tab[3]->
get_id() <<
",$" <<
tab[4]->
get_id() <<
",$" <<
tab[5]->
get_id() <<
",$" <<
tab[6]->
get_id() <<
",$" <<
tab[7]->
get_id() <<
",$" <<
tab[8]->
get_id() <<
",$" <<
tab[9]->
get_id() <<
",$" <<
tab[10]->
get_id() <<
",$" <<
tab[11]->
get_id() <<
",$" <<
tab[12]->
get_id() <<
",$" <<
tab[13]->
get_id() <<
",$" <<
tab[14]->
get_id() <<
");" << std::endl;
370 else o <<
"%" <<
get_id() <<
"=FEM_PENTA15(NULL,$" <<
maillage->
get_id() <<
",$" <<
tab[0]->
get_id() <<
",$" <<
tab[1]->
get_id() <<
",$" <<
tab[2]->
get_id()<<
",$" <<
tab[3]->
get_id() <<
",$" <<
tab[4]->
get_id() <<
",$" <<
tab[5]->
get_id() <<
",$" <<
tab[6]->
get_id() <<
",$" <<
tab[7]->
get_id() <<
",$" <<
tab[8]->
get_id() <<
",$" <<
tab[9]->
get_id() <<
",$" <<
tab[10]->
get_id() <<
",$" <<
tab[11]->
get_id() <<
",$" <<
tab[12]->
get_id() <<
",$" <<
tab[13]->
get_id() <<
",$" <<
tab[14]->
get_id() <<
");" << std::endl;
372 if (
get_lien_topologie()!=NULL) o <<
"%" <<
get_id() <<
"=FEM_PENTA15($"<<
get_lien_topologie()->
get_id() <<
",NULL,$" <<
tab[0]->
get_id() <<
",$" <<
tab[1]->
get_id() <<
",$" <<
tab[2]->
get_id()<<
",$" <<
tab[3]->
get_id() <<
",$" <<
tab[4]->
get_id() <<
",$" <<
tab[5]->
get_id() <<
",$" <<
tab[6]->
get_id() <<
",$" <<
tab[7]->
get_id() <<
",$" <<
tab[8]->
get_id() <<
",$" <<
tab[9]->
get_id() <<
",$" <<
tab[10]->
get_id() <<
",$" <<
tab[11]->
get_id() <<
",$" <<
tab[12]->
get_id() <<
",$" <<
tab[13]->
get_id() <<
",$" <<
tab[14]->
get_id() <<
");" << std::endl;
373 else o <<
"%" <<
get_id() <<
"=FEM_PENTA15(NULL,NULL,$" <<
tab[0]->
get_id() <<
",$" <<
tab[1]->
get_id() <<
",$" <<
tab[2]->
get_id()<<
",$" <<
tab[3]->
get_id() <<
",$" <<
tab[4]->
get_id() <<
",$" <<
tab[5]->
get_id() <<
",$" <<
tab[6]->
get_id() <<
",$" <<
tab[7]->
get_id() <<
",$" <<
tab[8]->
get_id() <<
",$" <<
tab[9]->
get_id() <<
",$" <<
tab[10]->
get_id() <<
",$" <<
tab[11]->
get_id() <<
",$" <<
tab[12]->
get_id() <<
",$" <<
tab[13]->
get_id() <<
",$" <<
tab[14]->
get_id() <<
");" << std::endl;
408 val=uv[1]*(1.-uv[0])*(2.*uv[1]-2.-uv[0])/2.;
411 val=uv[2]*(1.-uv[0])*(2.*uv[2]-2.-uv[0])/2.;
414 val=(uv[0]-1.)*(1.-uv[1]-uv[2])*(uv[0]+2*uv[1]+2*uv[2])/2.;
417 val=uv[1]*(1.+uv[0])*(2*uv[1]-2.+uv[0])/2.;
420 val=uv[2]*(1.+uv[0])*(2*uv[2]-2.+uv[0])/2.;
423 val=(-uv[0]-1.)*(1.-uv[1]-uv[2])*(-uv[0]+2*uv[1]+2*uv[2])/2.;
426 val=2.*uv[1]*uv[2]*(1.-uv[0]);
429 val=2.*uv[2]*(1.-uv[0])*(1.-uv[1]-uv[2]);
432 val=2.*uv[1]*(1.-uv[0])*(1.-uv[1]-uv[2]);
435 val=uv[1]*(1.-uv[0]*uv[0]);
438 val=uv[2]*(1.-uv[0]*uv[0]);
441 val=(1.-uv[0]*uv[0])*(1.-uv[1]-uv[2]);
444 val=2*uv[1]*uv[2]*(1+uv[0]);
447 val=2*uv[2]*(1-uv[1]-uv[2])*(1.+uv[0]);
450 val=2*uv[1]*(1-uv[1]-uv[2])*(1.+uv[0]);
462 switch (num_variable)
465 val=uv[1]*(2.*uv[0]-2.*uv[1]+1.)/2.;
468 val=(uv[0]-1.)*(uv[0]-4.*uv[1]+2.)/2.;
475 switch (num_variable)
478 val=uv[2]*(2.*uv[0]-2.*uv[2]+1.)/2.;
484 val=(uv[0]-1.)*(uv[0]-4.*uv[2]+2.)/2.;
488 switch (num_variable)
491 val=(1.-uv[1]-uv[2])*(2.*uv[0]+2.*uv[1]+2.*uv[2]-1.)/2.;
494 val=(1.-uv[0])*(uv[0]+4.*uv[1]+4.*uv[2]-2.)/2.;
497 val=(1.-uv[0])*(uv[0]+4.*uv[1]+4.*uv[2]-2.)/2.;
501 switch (num_variable)
504 val=uv[1]*(2.*uv[0]+2.*uv[1]-1.)/2.;
507 val=(uv[0]+1.)*(uv[0]+4.*uv[1]-2.)/2.;
514 switch (num_variable)
517 val=uv[2]*(2.*uv[0]+2*uv[2]-1.)/2.;
523 val=(uv[0]+1.)*(uv[0]+4.*uv[2]-2.)/2.;
527 switch (num_variable)
530 val=(1.-uv[1]-uv[2])*(2.*uv[0]-2.*uv[1]-2.*uv[2]+1.)/2.;
533 val=-(uv[0]+1.)*(uv[0]-4.*uv[1]-4.*uv[2]+2.)/2.;
536 val=-(uv[0]+1.)*(uv[0]-4.*uv[1]-4.*uv[2]+2.)/2.;
540 switch (num_variable)
546 val=-2.*uv[2]*(uv[0]-1.);
549 val=-2.*uv[1]*(uv[0]-1.);
553 switch (num_variable)
556 val=2.*uv[2]*(uv[1]+uv[2]-1.);
559 val=-2.*uv[2]*(uv[0]-1.);
562 val=-2.*(uv[0]-1.)*(uv[1]+2.*uv[2]+1.);
566 switch (num_variable)
569 val=2.*uv[1]*(uv[1]+uv[2]-1.);
572 val=2.*(uv[0]-1.)*(2.*uv[1]+uv[2]-1.);
575 val=2.*uv[1]*(uv[0]-1.);
579 switch (num_variable)
592 switch (num_variable)
605 switch (num_variable)
608 val=-2.*uv[0]*(uv[1]+uv[2]-1.);
618 switch (num_variable)
624 val=2.*uv[2]*(1.+uv[0]);
627 val=2.*uv[1]*(1.+uv[0]);
631 switch (num_variable)
634 val=-2.*uv[2]*(uv[1]+uv[2]-1.);
637 val=-2.*uv[2]*(uv[0]+1.);
640 val=-2.*(uv[0]+1.)*(uv[1]+2.*uv[2]-1.);
644 switch (num_variable)
647 val=-2.*uv[1]*(uv[1]+uv[2]-1.);
650 val=-2*(uv[0]+1.)*(2*uv[1]+uv[2]-1.);
653 val=-2.*uv[1]*(uv[0]+1.);
virtual class MG_ELEMENT_TOPOLOGIQUE * get_lien_topologie(void)
class MG_ELEMENT_MAILLAGE * maillage
class MG_ELEMENT_TOPOLOGIQUE * liaison_topologique
FEM_NOEUD * get_fem_noeudid(unsigned long num)
int ajouter_fem_element3(FEM_ELEMENT3 *femelement3)
TPL_LISTE_ENTITE< class FEM_ELEMENT3 * > * get_lien_petit_element3(void)
TPL_LISTE_ENTITE< class FEM_ELEMENT3 * > * get_lien_element3(void)
virtual int get_nb_fonction_interpolation(void)
virtual double get_fonction_interpolation(int num, double *uv)
virtual FEM_ELEMENT_MAILLAGE * dupliquer(class FEM_MAILLAGE *femmai, long decalage)
virtual void get_voisin_noeud(class FEM_NOEUD *no, TPL_LISTE_ENTITE< FEM_NOEUD * > &voisin)
virtual int verifie_validite_decoupage_xfem(double *vol=NULL)
virtual void reinit_boite_3D(void)
virtual FEM_NOEUD * get_fem_noeud(int num)
FEM_PENTA15(unsigned long num, class MG_ELEMENT_MAILLAGE *mai, class FEM_NOEUD **tabnoeud)
virtual int get_type_entite(void)
virtual bool valide_parametre_EF(double *uvw)
virtual int get_dimension(void)
virtual double get_fonction_derive_interpolation(int num, int numvariable, double *uv)
virtual int get_degre_gauss(int num)
virtual void enregistrer(std::ostream &o, double version)
virtual void change_noeud(int num, FEM_NOEUD *noeud)
virtual BOITE_3D & get_boite_3D(void)
virtual int get_degremax_fonction_interpolation(void)
virtual int get_nb_fem_noeud(void)
virtual int get_nb_pt_gauss(int degre)
virtual void get_pt_gauss(int degre, int num, double &w, double *uvw)
virtual FEM_NOEUD * get_fem_noeud(int num)
virtual void reinit_boite_3D(void)
virtual FEM_NOEUD * get_fem_noeudpetitid(void)
virtual int get_nb_fem_noeud(void)
virtual void change_noeud(int num, FEM_NOEUD *noeud)
virtual BOITE_3D & get_boite_3D(void)
virtual TPL_LISTE_ENTITE< FEM_ELEMENT_MAILLAGE * > * get_lien_fem_maillage(void)
virtual int get_dimension(void)=0
static void get_pt_gauss_penta(int degre, int num, double &w, double *uvw)
static int get_nb_point_penta(int degre)
static int get_degre_gauss_penta(int num)
virtual void supprimer(X x)
virtual void ajouter(X x)