hc.i 2.63 KB
Newer Older
Derek Gaston's avatar
Derek Gaston committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
[Mesh]
  type = FileMesh
  file = spheres_generator_in.e
[]

[Variables]
  [temp]
    initial_condition = 573
  []
[]

[AuxVariables]
  [nek_temp]
    initial_condition = 573
  []

  [avg_flux]
    family = MONOMIAL
    order = CONSTANT
    initial_condition = 0
  []

  [heat_source]
    family = MONOMIAL
    order = CONSTANT
  []
[]

[Kernels]
  [hc]
    type = HeatConduction
    variable = temp
  []
  [heat]
    type = CoupledForce
    variable = temp
    v = heat_source
  []
[]

[AuxKernels]
  [avg_flux]
    type = FluxAverageAux
    coupled = 'temp'
    diffusivity = thermal_conductivity
    variable = avg_flux
    boundary = '1'
    execute_on = 'initial timestep_end'
  []
[]

[BCs]
  inactive = 'outside'
  [outside]
    type = DirichletBC
    variable = temp
    boundary = '1'
    value = 573
  []
  [match_nek]
    type = MatchedValueBC
    variable = temp
    boundary = '1'
    v = 'nek_temp'
  []
[]

[Materials]
  [hc]
    type = GenericConstantMaterial
    prop_values = '0.2' # 20 W/mK -> 0.2 W/cmK
    prop_names = 'thermal_conductivity'
  []
[]

[Executioner]
  type = Transient
  petsc_options_iname = '-pc_type -pc_hypre_type'
  num_steps = 10000000
  petsc_options_value = 'hypre boomeramg'
  dt = 5e-5
  nl_rel_tol = 1e-5
[]

[Postprocessors]
  [total_flux_check]
    # Should add up to the same thing as total_flux
    type = SideIntegralVariablePostprocessor
    variable = avg_flux
    boundary = 1
    execute_on = 'initial timestep_end'
  []
  [total_flux]
    type = SideFluxIntegral
    diffusivity = thermal_conductivity
    variable = 'temp'
    boundary = '1'
    execute_on = 'initial timestep_end'
  []
  [average_flux]
    type = SideFluxAverage
    diffusivity = thermal_conductivity
    variable = 'temp'
    boundary = '1'
    execute_on = 'initial timestep_end'
  []
[]

[Outputs]
  [exo]
    type = Exodus
    interval = 100
    file_base = ../../../../../../../../scratch/gastdr/coe/146_pebbles/hc_out
    execute_on = 'timestep_end'
  []
[]

[MultiApps]
  [nek]
    type = TransientMultiApp
    app_type = NekApp
    input_files = 'nek.i'
    execute_on = timestep_end
  []
[]

[Transfers]
  [nek_temp]
    type = MultiAppNearestNodeTransfer
    source_variable = temp
    direction = from_multiapp
    multi_app = nek
    variable = nek_temp
    fixed_meshes = true
  []
  [avg_flux]
    type = MultiAppNearestNodeTransfer
    source_variable = avg_flux
    direction = to_multiapp
    multi_app = nek
    variable = avg_flux
    fixed_meshes = true
  []
  [total_flux_to_nek]
    type = MultiAppPostprocessorTransfer
    to_postprocessor = total_flux
    direction = to_multiapp
    from_postprocessor = total_flux
    multi_app = nek
  []
[]