ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/solveur/src/sl_triangle13.cpp
Revision: 1158
Committed: Thu Jun 13 22:18:49 2024 UTC (11 months, 1 week ago) by francois
File size: 4238 byte(s)
Log Message:
compatibilité Ubuntu 22.04
Suppression des refeences à Windows
Ajout d'une banière

File Contents

# User Rev Content
1 francois 1158 //####//------------------------------------------------------------
2     //####//------------------------------------------------------------
3     //####// MAGiC
4     //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5     //####// Departement de Genie Mecanique - UQTR
6     //####//------------------------------------------------------------
7     //####// MAGIC est un projet de recherche de l equipe ERICCA
8     //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9     //####// http://www.uqtr.ca/ericca
10     //####// http://www.uqtr.ca/
11     //####//------------------------------------------------------------
12     //####//------------------------------------------------------------
13     //####//
14     //####// sl_triangle13.cpp
15     //####//
16     //####//------------------------------------------------------------
17     //####//------------------------------------------------------------
18     //####// COPYRIGHT 2000-2024
19     //####// jeu 13 jun 2024 11:58:57 EDT
20     //####//------------------------------------------------------------
21     //####//------------------------------------------------------------
22 5 #include "gestionversion.h"
23    
24     #pragma hdrstop
25     #include <math.h>
26     #include "sl_triangle13.h"
27     #include "fem_noeud.h"
28     #include "fem_triangle.h"
29     #pragma package(smart_init)
30    
31     SL_TRIANGLE13::SL_TRIANGLE13(FEM_TRIANGLE *mgseg):SL_TRIANGLE(mgseg)
32     {
33     }
34    
35     SL_TRIANGLE13::SL_TRIANGLE13(SL_TRIANGLE13& mdd):SL_TRIANGLE(mdd)
36     {
37     }
38    
39     SL_TRIANGLE13::~SL_TRIANGLE13()
40     {
41     }
42    
43     int SL_TRIANGLE13::nb_point_gauss(void)
44     {
45     return 3;
46     }
47    
48    
49    
50     int SL_TRIANGLE13::nb_fonction_interpolation(void)
51     {
52     return 3;
53     }
54    
55     void SL_TRIANGLE13::get_point_gauss(int num,double *xyz,double& poids)
56     {
57     switch (num)
58     {
59     case 1:xyz[0]=0.16666666666666666666666666666667;
60     xyz[1]=0.16666666666666666666666666666667;
61     poids=0.16666666666666666666666666666667;
62     break;
63     case 2:xyz[0]=0.66666666666666666666666666666667;
64     xyz[1]=0.16666666666666666666666666666667;
65     poids=0.16666666666666666666666666666667;
66     break;
67    
68     case 3:xyz[0]=0.16666666666666666666666666666667;
69     xyz[1]=0.66666666666666666666666666666667;
70     poids=0.16666666666666666666666666666667;
71     break;
72     }
73     }
74    
75     double SL_TRIANGLE13::get_fonction_interpolation(int num,double *uv)
76     {
77     double val;
78     switch (num)
79     {
80     case 1:val=1-uv[0]-uv[1];break;
81     case 2:val=uv[0];break;
82     case 3:val=uv[1];break;
83     }
84     return val;
85     }
86    
87     double SL_TRIANGLE13::get_fonction_derive_interpolation(int num,int num_variable,double *uv)
88     {
89     double val;
90     switch (num)
91     {
92     case 1:switch (num_variable)
93     {
94     case 1:val=-1;break;
95     case 2:val=-1;break;
96     } break;
97     case 2:switch (num_variable)
98     {
99     case 1:val=1;break;
100     case 2:val=0;break;
101     }break;
102     case 3:switch (num_variable)
103     {
104     case 1:val=0;break;
105     case 2:val=1;break;
106     }break;
107     }
108     return val;
109    
110     }
111    
112    
113     double SL_TRIANGLE13::get_jacobien(double* jac,double *uv,int& li,int& col,double unite)
114     {
115     FEM_NOEUD* noeud1=((FEM_TRIANGLE*) mai)->get_fem_noeud(0);
116     FEM_NOEUD* noeud2=((FEM_TRIANGLE*) mai)->get_fem_noeud(1);
117     FEM_NOEUD* noeud3=((FEM_TRIANGLE*) mai)->get_fem_noeud(2);
118    
119     double *xyz1=noeud1->get_coord();
120     double *xyz2=noeud2->get_coord();
121     double *xyz3=noeud3->get_coord();
122     li=2;col=3;
123    
124     jac[0]=unite*(xyz2[0]-xyz1[0]);
125     jac[1]=unite*(xyz2[1]-xyz1[1]);
126     jac[2]=unite*(xyz2[2]-xyz1[2]);
127    
128     jac[3]=unite*(xyz3[0]-xyz1[0]);
129     jac[4]=unite*(xyz3[1]-xyz1[1]);
130     jac[5]=unite*(xyz3[2]-xyz1[2]);
131    
132     double DEUX_A=sqrt((jac[1]*jac[5]-jac[4]*jac[2])*(jac[1]*jac[5]-jac[4]*jac[2])+(jac[0]*jac[5]-jac[3]*jac[2])*(jac[0]*jac[5]-jac[3]*jac[2])+(jac[0]*jac[4]-jac[3]*jac[1])*(jac[0]*jac[4]-jac[3]*jac[1]));
133    
134     return DEUX_A;
135     }
136    
137     void SL_TRIANGLE13::get_inverse_jacob(double* jac,double* j,double unite)
138     {
139     return;
140     }
141    
142    
143    
144    
145    
146     int SL_TRIANGLE13::nb_point_extrapolation()
147     {
148     return 3;
149     }
150    
151    
152