Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
01.burn_interface_data.f90
Go to the documentation of this file.
1 ! *********************************************************************
2 ! * Rocstar Simulation Suite *
3 ! * Copyright@2015, Illinois Rocstar LLC. All rights reserved. *
4 ! * *
5 ! * Illinois Rocstar LLC *
6 ! * Champaign, IL *
7 ! * www.illinoisrocstar.com *
8 ! * sales@illinoisrocstar.com *
9 ! * *
10 ! * License: See LICENSE file in top level of distribution package or *
11 ! * http://opensource.org/licenses/NCSA *
12 ! *********************************************************************
13 ! *********************************************************************
14 ! * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
15 ! * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
16 ! * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
17 ! * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
18 ! * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
19 ! * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
20 ! * Arising FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
21 ! * USE OR OTHER DEALINGS WITH THE SOFTWARE. *
22 ! *********************************************************************
24 !
25 ! This module contains the interface variables needed for all
26 ! burning rate models.
27 !
28 ! The burning rate models available are:
29 !
30 ! Rocburn_APN : Quasi-steady model using rb=a*P^n
31 ! Rcoburn_PY : Model implemented by Luca Massa
32 ! uses a pyrolysis law and large activation energy (Buckmaster)
33 ! Rocburn_ZN : Model implemented by Tang and Brewster
34 ! using Zeldovich-Novozhilov approach
35 !
36 ! Author: K-C Tang, L. Massa, X. Jiao
37 !
38 
39  IMPLICIT NONE
40 
41 
42 ! ===================
43 ! D A T A T Y P E S
44 ! ===================
45  INTEGER, PARAMETER :: DBL = SELECTED_REAL_KIND(P=14,R=30)
46 
47 !
48 ! ---------------
49 ! Block data type
50 ! ---------------
51 
52  TYPE, public :: block
53 
54 !
55 ! data for initialization
56 !
57 
58  INTEGER :: iblock ! block id
59  INTEGER :: nfaces ! number of faces
60 
61 !
62 ! ---------------------------------------------
63 ! incoming data from ROCMAN
64 !
65  REAL(DBL), POINTER :: coor(:,:)
66  REAL(DBL), POINTER :: pres(:)
67  REAL(DBL), POINTER :: qr(:), qc(:) ! not used for APN
68  REAL(DBL), POINTER :: rhoc(:) ! not used for APN
69 ! REAL(DBL), POINTER :: To(:) ! from solid if available
70 
71 ! incoming data for specific burning rate model
72 
73  REAL(DBL), POINTER :: Tg(:) ! Rocburn_PY
74  INTEGER, POINTER :: burn_flag(:) ! Rocburn_PY
75 
76 !
77 !
78 ! ---------------------------------------------
79 ! outgoing data to ROCMAN
80 !
81  REAL(DBL), POINTER :: rb(:)
82  REAL(DBL), POINTER :: Tf(:)
83 
84 ! ---------------------------------------------
85 !
86 ! internal data storage for burning rate models
87 !
88 !
89 ! independent variables; old state variables
90 !
91  REAL(DBL), POINTER :: qc_old(:), qr_old(:)
92  REAL(DBL), POINTER :: pres_old(:), Tg_old(:)
93  REAL(DBL), POINTER :: rhoc_old(:)
94 ! REAL(DBL), POINTER :: To_old(:)
95 
96 !
97 ! dependent variables
98 !
99 
100  REAL(DBL), POINTER :: temp(:,:)
101 !
102 ! data storage for specific burning rate model --- dependent varialbes
103 !
104 
105 
106  REAL(DBL), POINTER :: Toa(:) ! Rocburn_ZN
107  REAL(DBL), POINTER :: fr(:) ! Rocburn_ZN
108  REAL(DBL), POINTER :: dist(:) ! Rocburn_PY
109 
110  END TYPE block
111 
112 ! This is a placeholder for the type defined in 1D modules
113  TYPE, public :: g_burn_1d
114  INTEGER :: buf(4096)
115  END TYPE g_burn_1d
116 
117 !
118 ! -----------------------
119 ! L I N K E D L I S T S
120 ! -----------------------
121 
122  TYPE, public :: list_block
123  TYPE(block), POINTER :: blocks(:)
124 
125  INTEGER :: MPI_COMM_ROCBURN, rank
126  INTEGER :: burn_model, TBL_flag, burn_iter, burn_cell, total_cell
127 
128 ! function handles introduced for Roccom 3
129  INTEGER :: INIT, UPDATE
130  INTEGER :: INIT_0D, INIT_1D
131  INTEGER :: GET_TIME_STEP, GET_BURN_RATE, GET_FILM_COEFF
132 
133  REAL(DBL) :: To_read, pseudo_time
134  REAL(DBL), POINTER :: Tn(:) ! Buffer for 1D rocburn
135 
136  CHARACTER(LEN=80) :: mname
137 
138  TYPE(g_burn_1d), POINTER :: g_1d
139  END TYPE list_block
140 
141 CONTAINS
142 
143  SUBROUTINE associate_pointer( attr, ptr)
144  TYPE(list_block), POINTER :: attr, ptr
145  ptr => attr
146  END SUBROUTINE associate_pointer
147 
148 END MODULE m_rocburn_interface_data
149 
150 
151 
152 
153 
154 
const COM::Attribute * attr(const COM::Attribute *a) const
Obtain the attribute on the parent pane of the node.
Definition: Manifold_2.h:404
Definition: adj.h:203
subroutine associate_pointer(attr, ptr)
Aff_transformation_rep_baseS2< FT > * ptr() const