Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MP/Source/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,MatOrtho)
54 
55 !!****f* Rocfrac/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  INTEGER, DIMENSION(1:numat_vol) :: matortho
101 
102 !-----Create material constant matrices
103  DO i = 1, numat_vol
104 !----- (isotropic)
105  IF ( ( integration.EQ.0 ) ) THEN !.AND. ( MatOrtho(i) == 0 ) ) THEN
106 
107  caux = e(i) / ( (1.d0+xnu(i))*(1.d0-2.d0*xnu(i)) )
108 
109 ! -- [E]
110 !
111 ! [ c1 c2 c4 .. ]
112 ! [ c3 c5 .. ]
113 ! [ c6 .. ]
114 ! [ c7 ]
115 ! [ c8 ]
116 ! [ c9 ]
117 
118  ci(1,i) = caux*(1.d0 - xnu(i))
119  ci(2,i) = caux*xnu(i)
120  ci(3,i) = ci(1,i)
121  ci(4,i) = ci(2,i)
122  ci(5,i) = ci(2,i)
123  ci(6,i) = ci(1,i)
124  ci(7,i) = e(i)/( 2.d0 * (1.d0 + xnu(i)) )
125  ci(8,i) = ci(7,i)
126  ci(9,i) = ci(7,i)
127 
128 
129  cj(:,i) = 0.d0
130 
131  ELSE IF(integration.EQ.1)THEN
132 
133 ! -- pseudo-Reduced integration (split Cijkl)
134  ! mu
135  xmu = e(i)/( 2.d0 * (1.d0 + xnu(i)) )
136  ! lambda
137  xlambda = e(i)*xnu(i)/( (1.d0+xnu(i))*(1.d0-2.d0*xnu(i)) )
138 
139 ! -- [Emu]
140  ci(1,i) = 2.d0*xmu
141  ci(2,i) = 0.d0
142  ci(3,i) = ci(1,i)
143  ci(4,i) = ci(2,i)
144  ci(5,i) = ci(2,i)
145  ci(6,i) = ci(1,i)
146  ci(7,i) = xmu
147  ci(8,i) = ci(7,i)
148  ci(9,i) = ci(7,i)
149 
150 ! -- [Elambda]
151 
152  cj(1,i) = xlambda
153  cj(2,i) = xlambda
154  cj(3,i) = cj(1,i)
155  cj(4,i) = cj(2,i)
156  cj(5,i) = cj(2,i)
157  cj(6,i) = cj(1,i)
158  cj(7,i) = 0.d0
159  cj(8,i) = cj(7,i)
160  cj(9,i) = cj(7,i)
161 
162 !----- (orthotropic, not yet implemented)
163 ! ELSEIF (nplane.GE.1) THEN
164 ! PRINT*,'ERROR: Material properties not yet implemented'
165 ! PRINT*,' Your Choices are: '
166 ! PRINT*,' nplane = 0, isotropic'
167 ! STOP
168  ENDIF
169  ENDDO
170 
171  RETURN
172  END
173 
subroutine vol_elem_mat(e, xnu, ci, cj, numat_vol, Integration)
blockLoc i
Definition: read.cpp:79