Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MP/Source/get_mat_stiffness.f90
Go to the documentation of this file.
1 !*********************************************************************
2 !* Illinois Open Source License *
3 !* *
4 !* University of Illinois/NCSA *
5 !* Open Source License *
6 !* *
7 !* Copyright@2008, University of Illinois. All rights reserved. *
8 !* *
9 !* Developed by: *
10 !* *
11 !* Center for Simulation of Advanced Rockets *
12 !* *
13 !* University of Illinois *
14 !* *
15 !* www.csar.uiuc.edu *
16 !* *
17 !* Permission is hereby granted, free of charge, to any person *
18 !* obtaining a copy of this software and associated documentation *
19 !* files (the "Software"), to deal with the Software without *
20 !* restriction, including without limitation the rights to use, *
21 !* copy, modify, merge, publish, distribute, sublicense, and/or *
22 !* sell copies of the Software, and to permit persons to whom the *
23 !* Software is furnished to do so, subject to the following *
24 !* conditions: *
25 !* *
26 !* *
27 !* @ Redistributions of source code must retain the above copyright *
28 !* notice, this list of conditions and the following disclaimers. *
29 !* *
30 !* @ Redistributions in binary form must reproduce the above *
31 !* copyright notice, this list of conditions and the following *
32 !* disclaimers in the documentation and/or other materials *
33 !* provided with the distribution. *
34 !* *
35 !* @ Neither the names of the Center for Simulation of Advanced *
36 !* Rockets, the University of Illinois, nor the names of its *
37 !* contributors may be used to endorse or promote products derived *
38 !* from this Software without specific prior written permission. *
39 !* *
40 !* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
41 !* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
42 !* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
43 !* NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
44 !* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
45 !* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
46 !* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
47 !* USE OR OTHER DEALINGS WITH THE SOFTWARE. *
48 !*********************************************************************
49 !* Please acknowledge The University of Illinois Center for *
50 !* Simulation of Advanced Rockets in works and publications *
51 !* resulting from this software or its derivatives. *
52 !*********************************************************************
53 !------------------------------------------------------GET_MAT_STIFFNESS
54 SUBROUTINE get_mat_stiffness(e,dnu,dmat)
55 ! *--------------------------------------------------------------------*
56 ! | |
57 ! | Returns the material stiffness matrix, given the material |
58 ! | properties (FOR LINEAR ELASTICITY ONLY). |
59 ! | |
60 ! | <dmat> : 9 x 9 matrix of the material tensor |
61 ! | <props> : vector that contains material properties |
62 ! | props(1) : Young's Modulus |
63 ! | props(2) : Poisson's Ratio |
64 ! | |
65 ! *--------------------------------------------------------------------*
66 
67  IMPLICIT NONE
68 
69  REAL*8 , DIMENSION(1:9,1:9) :: dmat
70  REAL*8 :: e, dnu
71  REAL*8 :: d1111,d1122,d1212
72 
73 ! Initialize coefficients
74 
75  d1111 = e * (1.d0-dnu) / ((1.d0+dnu)*(1.d0-2.d0*dnu) )
76  d1122 = e * dnu / ((1.d0+dnu)*(1.d0-2.d0*dnu) )
77  d1212 = e / ((1.d0+dnu)*2.d0)
78 
79 ! Compute <mat_c>
80 
81  dmat(1:9,1:9) = 0.d0
82 
83  dmat(1,1) = d1111
84  dmat(1,5) = d1122
85  dmat(1,9) = d1122
86 
87  dmat(2,2) = d1212
88  dmat(2,4) = d1212
89 
90  dmat(3,3) = d1212
91  dmat(3,7) = d1212
92 
93  dmat(4,2) = d1212
94  dmat(4,4) = d1212
95 
96  dmat(5,1) = d1122
97  dmat(5,5) = d1111
98  dmat(5,9) = d1122
99 
100  dmat(6,6) = d1212
101  dmat(6,8) = d1212
102 
103  dmat(7,3) = d1212
104  dmat(7,7) = d1212
105 
106  dmat(8,6) = d1212
107  dmat(8,8) = d1212
108 
109  dmat(9,1) = d1122
110  dmat(9,5) = d1122
111  dmat(9,9) = d1111
112 
113  RETURN
114 END SUBROUTINE get_mat_stiffness
115 
subroutine get_mat_stiffness(e, dnu, dmat)