Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vol_elem_mat.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 SUBROUTINE vol_elem_mat(e,xnu,ci,cj,numat_vol,Integration)
54 
55 !!****f* Rocfrac/Source/vol_elem_mat.f90
56 !!
57 !! NAME
58 !! VOL_ELEM_MAT
59 !!
60 !! FUNCTION
61 !!
62 !! Forms the material compliance matix, [C] for an isotropic material
63 !! -1
64 !! Note: [E] = [C] and {epsilon} = [C]{sigma}
65 !!
66 !! INPUTS
67 !!
68 !! e -- Young's modulus
69 !! xnu -- Possion's ratio
70 !! numat_vol -- number of volumetric elements
71 !! Integration -- = 1 pseudo-Reduced integration (split Cijkl)
72 !! = 0 Cijkl
73 !!
74 !! OUTPUT
75 !! ci -- elastic stiffness constants
76 !! cj -- split stiffness constants
77 !!
78 !!****
79 !!
80  IMPLICIT NONE
81  INTEGER :: numat_vol ! number of materials
82 ! INTEGER :: nplane ! type of material
83 ! ! 0 = isotropic
84 ! ! 1 = orthotropic
85 !-- young's moduli
86  REAL*8, DIMENSION(1:numat_vol) :: e
87 !-- Poisson's ratios
88  REAL*8, DIMENSION(1:numat_vol) :: xnu
89 !-- elastic stiffness constants [E]
90  REAL*8, DIMENSION(1:9,1:numat_vol) :: ci
91 !-- elastic stiffness constants [E]
92  REAL*8, DIMENSION(1:9,1:numat_vol) :: cj
93 ! --
94  REAL*8 :: xmu, xlambda
95  REAL*8 :: caux
96  integer :: integration
97 
98  INTEGER :: i ! loop counter
99 
100 !-----Create material constant matrices
101  DO i = 1, numat_vol
102 !----- (isotropic)
103  IF (integration.EQ.0) THEN
104 
105  caux = e(i) / ( (1.d0+xnu(i))*(1.d0-2.d0*xnu(i)) )
106 
107 ! -- [E]
108 !
109 ! [ c1 c2 c4 .. ]
110 ! [ c3 c5 .. ]
111 ! [ c6 .. ]
112 ! [ c7 ]
113 ! [ c8 ]
114 ! [ c9 ]
115 
116  ci(1,i) = caux*(1.d0 - xnu(i))
117  ci(2,i) = caux*xnu(i)
118  ci(3,i) = ci(1,i)
119  ci(4,i) = ci(2,i)
120  ci(5,i) = ci(2,i)
121  ci(6,i) = ci(1,i)
122  ci(7,i) = e(i)/( 2.d0 * (1.d0 + xnu(i)) )
123  ci(8,i) = ci(7,i)
124  ci(9,i) = ci(7,i)
125 
126 
127  cj(:,i) = 0.d0
128 
129  ELSE IF(integration.EQ.1)THEN
130 
131 ! -- pseudo-Reduced integration (split Cijkl)
132  ! mu
133  xmu = e(i)/( 2.d0 * (1.d0 + xnu(i)) )
134  ! lambda
135  xlambda = e(i)*xnu(i)/( (1.d0+xnu(i))*(1.d0-2.d0*xnu(i)) )
136 
137 ! -- [Emu]
138  ci(1,i) = 2.d0*xmu
139  ci(2,i) = 0.d0
140  ci(3,i) = ci(1,i)
141  ci(4,i) = ci(2,i)
142  ci(5,i) = ci(2,i)
143  ci(6,i) = ci(1,i)
144  ci(7,i) = xmu
145  ci(8,i) = ci(7,i)
146  ci(9,i) = ci(7,i)
147 
148 ! -- [Elambda]
149 
150  cj(1,i) = xlambda
151  cj(2,i) = xlambda
152  cj(3,i) = cj(1,i)
153  cj(4,i) = cj(2,i)
154  cj(5,i) = cj(2,i)
155  cj(6,i) = cj(1,i)
156  cj(7,i) = 0.d0
157  cj(8,i) = cj(7,i)
158  cj(9,i) = cj(7,i)
159 
160 !----- (orthotropic, not yet implemented)
161 ! ELSEIF (nplane.GE.1) THEN
162 ! PRINT*,'ERROR: Material properties not yet implemented'
163 ! PRINT*,' Your Choices are: '
164 ! PRINT*,' nplane = 0, isotropic'
165 ! STOP
166  ENDIF
167  ENDDO
168 
169  RETURN
170  END
171 
subroutine vol_elem_mat(e, xnu, ci, cj, numat_vol, Integration)
blockLoc i
Definition: read.cpp:79