MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
hbeam_interp.h
Go to the documentation of this file.
1 /* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/struct/hbeam_interp.h,v 1.21 2017/01/12 14:46:43 masarati Exp $ */
2 /*
3  * HmFe (C) is a FEM analysis code.
4  *
5  * Copyright (C) 1996-2017
6  *
7  * Marco Morandini <morandini@aero.polimi.it>
8  * Teodoro Merlini <merlini@aero.polimi.it>
9  *
10  * Dipartimento di Ingegneria Aerospaziale - Politecnico di Milano
11  * via La Masa, 34 - 20156 Milano, Italy
12  * http://www.aero.polimi.it
13  *
14  * Changing this copyright notice is forbidden.
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18  *
19  */
20 /*
21  * MBDyn (C) is a multibody analysis code.
22  * http://www.mbdyn.org
23  *
24  * Copyright (C) 1996-2017
25  *
26  * This code is a partial merge of HmFe and MBDyn.
27  *
28  * Pierangelo Masarati <masarati@aero.polimi.it>
29  * Paolo Mantegazza <mantegazza@aero.polimi.it>
30  *
31  * Dipartimento di Ingegneria Aerospaziale - Politecnico di Milano
32  * via La Masa, 34 - 20156 Milano, Italy
33  * http://www.aero.polimi.it
34  *
35  * Changing this copyright notice is forbidden.
36  *
37  * This program is free software; you can redistribute it and/or modify
38  * it under the terms of the GNU General Public License as published by
39  * the Free Software Foundation (version 2 of the License).
40  *
41  *
42  * This program is distributed in the hope that it will be useful,
43  * but WITHOUT ANY WARRANTY; without even the implied warranty of
44  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
45  * GNU General Public License for more details.
46  *
47  * You should have received a copy of the GNU General Public License
48  * along with this program; if not, write to the Free Software
49  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
50  */
51 
52 // Input:
53 // node_pos array delle posizioni attuali dei due nodi piu' offset
54 // node_or array delle orientazioni attuali dei due nodi
55 // node_f array degli offset attuali (R*f_tilde) dei due nodi
56 // xi posizione del punto, da 0 a 1
57 // dexi_des derivata della posizione del punto rispetto all'ascissa
58 // curvilinea
59 //
60 // Output:
61 // pos posizione del punto interpolato
62 // orient orientazione del punto interpolato
63 // or_delta_w_or or_delta in funzione di or_delta nodali
64 // delta_pos_w_or delta_pos in funzione di or_delta nodali
65 // delta_pos_w_pos delta_pos in funzione di delta_pos nodali
66 // F derivata della posizione rispetto all'ascissa curvilinea
67 // om assiale di d(or)/d(s)*or.Transpose()
68 // delta_om_ws_or delta_om in funzione di or_delta nodali
69 // delta_F_ws_or delta_F in funzione di or_delta nodali
70 // delta_F_ws_pos delta_F in funzione di delta_pos nodali
71 //
72 // Nota:
73 // Dopo l'uscita bisogna convertire gli or_delta nodali
74 // in delta_parametri_or
75 
76 #ifndef HBEAM_INTERP_H
77 #define HBEAM_INTERP_H
78 
79 void ComputeInterpolation(const Vec3 *const node_pos,
80  const Mat3x3 *const node_or,
81  const Vec3 *const node_f,
82  const doublereal w,
83  const doublereal wder,
84  Vec3 &pos,
85  Mat3x3 &orient,
86  Vec3 &F,
87  Vec3 &om);
88 
89 void ComputeFullInterpolation(const Vec3 *const node_pos,
90  const Mat3x3 *const node_or,
91  const Vec3 *const node_f,
92  const doublereal w,
93  const doublereal wder,
94  Vec3 &pos,
95  Mat3x3 &orient,
96  Mat3x3 *const or_delta_w_or,
97  Mat3x3 *const delta_pos_w_or,
98  Mat3x3 *const delta_pos_w_pos,
99  Vec3 &F,
100  Vec3 &om,
101  Mat3x3 *const delta_om_ws_or,
102  Mat3x3 *const delta_F_ws_or,
103  Mat3x3 *const delta_F_ws_pos);
104 
105 #endif /* HBEAM_INTERP_H */
106 
Definition: matvec3.h:98
void ComputeInterpolation(const Vec3 *const node_pos, const Mat3x3 *const node_or, const Vec3 *const node_f, const doublereal w, const doublereal wder, Vec3 &pos, Mat3x3 &orient, Vec3 &F, Vec3 &om)
void ComputeFullInterpolation(const Vec3 *const node_pos, const Mat3x3 *const node_or, const Vec3 *const node_f, const doublereal w, const doublereal wder, Vec3 &pos, Mat3x3 &orient, Mat3x3 *const or_delta_w_or, Mat3x3 *const delta_pos_w_or, Mat3x3 *const delta_pos_w_pos, Vec3 &F, Vec3 &om, Mat3x3 *const delta_om_ws_or, Mat3x3 *const delta_F_ws_or, Mat3x3 *const delta_F_ws_pos)
double doublereal
Definition: colamd.c:52