- axial_power_profileaxial power peaking function.
C++ Type:FunctionName
Description:axial power peaking function.
- blockThe list of block ids (SubdomainID) that this object will be applied
C++ Type:std::vector
Description:The list of block ids (SubdomainID) that this object will be applied
- boundaryThe list of boundary IDs from the mesh where this boundary condition applies
C++ Type:std::vector
Description:The list of boundary IDs from the mesh where this boundary condition applies
- bubble_gb_limit1e+10grain-boundary bubble number density limit [bub/m**2]
Default:1e+10
C++ Type:double
Description:grain-boundary bubble number density limit [bub/m**2]
- burnupCoupled Burnup
C++ Type:std::vector
Description:Coupled Burnup
- burnup_functionBurnup function
C++ Type:BurnupFunctionName
Description:Burnup function
- computeTrueWhen false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
Default:True
C++ Type:bool
Description:When false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
- constant_onNONEWhen ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeSubdomainProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
Default:NONE
C++ Type:MooseEnum
Description:When ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeSubdomainProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
- cr_doped_option5Used if doping_type = 1
Default:5
C++ Type:short
Description:Used if doping_type = 1
- diff_coeff_option3Select diffusion coefficient
Default:3
C++ Type:short
Description:Select diffusion coefficient
- doping_type00 for undoped UO2, 1 for Cr2O3-doped UO2
Default:0
C++ Type:short
Description:0 for undoped UO2, 1 for Cr2O3-doped UO2
- eff_diff_coeff_option0Select effective diffusion coefficient
Default:0
C++ Type:short
Description:Select effective diffusion coefficient
- effdiffcoeff_scalef1scaling factor for intragranular effective diffusion coefficient
Default:1
C++ Type:double
Description:scaling factor for intragranular effective diffusion coefficient
- fission_gas_concCoupled Fission Gas Concentration
C++ Type:std::vector
Description:Coupled Fission Gas Concentration
- fission_rateCoupled Fission Rate
C++ Type:std::vector
Description:Coupled Fission Rate
- fract_yield0.3017fractional yield of fission gas atoms (Xe + Kr) (/)
Default:0.3017
C++ Type:double
Description:fractional yield of fission gas atoms (Xe + Kr) (/)
- gbdiffcoeff_scalef1scaling factor for grain boundary diffusion coefficient
Default:1
C++ Type:double
Description:scaling factor for grain boundary diffusion coefficient
- grain_radiusCoupled Grain Radius
C++ Type:std::vector
Description:Coupled Grain Radius
- grain_radius_const5e-06constant grain radius (m)
Default:5e-06
C++ Type:double
Description:constant grain radius (m)
- grainradius_scalef1scaling factor for grain radius
Default:1
C++ Type:double
Description:scaling factor for grain radius
- hydrostatic_stressCoupled Hydrostatic Stress
C++ Type:std::vector
Description:Coupled Hydrostatic Stress
- hydrostatic_stress_const0constant hydrostatic stress (Pa)
Default:0
C++ Type:double
Description:constant hydrostatic stress (Pa)
- ig_bubble_model0Select bubble evolution model
Default:0
C++ Type:short
Description:Select bubble evolution model
- ig_diff_algorithm0Select intra-granular diffusion algorithm
Default:0
C++ Type:short
Description:Select intra-granular diffusion algorithm
- ig_fully_coupled0Solving diffusion coupled to bubble evolution
Default:0
C++ Type:short
Description:Solving diffusion coupled to bubble evolution
- igdiffcoeff_scalef1scaling factor for intragranular diffusion coefficient
Default:1
C++ Type:double
Description:scaling factor for intragranular diffusion coefficient
- initial_porosity0.05initial fuel porosity (/)
Default:0.05
C++ Type:double
Description:initial fuel porosity (/)
- nucleation_option0Select intragranular bubble nucleation model
Default:0
C++ Type:short
Description:Select intragranular bubble nucleation model
- nuclerate_scalef1scaling factor for nucleation rate
Default:1
C++ Type:double
Description:scaling factor for nucleation rate
- pellet_brittle_zoneThe name of the UserObject that computes the width of the brittle zone in the fuel pellet
C++ Type:UserObjectName
Description:The name of the UserObject that computes the width of the brittle zone in the fuel pellet
- pellet_idCoupled Pellet ID
C++ Type:std::vector
Description:Coupled Pellet ID
- percolation_to_surface1.0Optional AuxVariable that indicates whether the local position is connected by a percolated path to a free surface to allow gas release. If this parameter is not set, path to free surface is not considered in gas release calculation.
Default:1.0
C++ Type:std::vector
Description:Optional AuxVariable that indicates whether the local position is connected by a percolated path to a free surface to allow gas release. If this parameter is not set, path to free surface is not considered in gas release calculation.
- res_param_option0Select resolution parameter
Default:0
C++ Type:short
Description:Select resolution parameter
- resolutionp_scalef1scaling factor for resolution parameter
Default:1
C++ Type:double
Description:scaling factor for resolution parameter
- rod_ave_lin_powlinear power function.
C++ Type:FunctionName
Description:linear power function.
- saturation_coverage0.5saturation coverage (/)
Default:0.5
C++ Type:double
Description:saturation coverage (/)
- tempCoupled Temperature
C++ Type:std::vector
Description:Coupled Temperature
- temperature_scalef1scaling factor for temperature
Default:1
C++ Type:double
Description:scaling factor for temperature
- transient_option0Select transient release model
Default:0
C++ Type:short
Description:Select transient release model
- trap_param_option0Select trapping parameter
Default:0
C++ Type:short
Description:Select trapping parameter
- trappingp_scalef1scaling factor for trapping parameter
Default:1
C++ Type:double
Description:scaling factor for trapping parameter
Simple Integrated Fission Gas Release and Swelling (Sifgrs) for UO2
Recommended fission gas model to account for generation of fission gasses in nuclear fuel
Description
The processes induced by the generation of the fission gases xenon and krypton in nuclear fuel have a strong impact on the thermo-mechanical performance of the fuel rods. On the one hand, the fission gases tend to precipitate into bubbles resulting in fuel swelling, which promotes pellet-cladding gap closure and the ensuing pellet-cladding mechanical interaction (PCMI). On the other hand, fission gas release (FGR) to the fuel rod free volume causes pressure build-up and thermal conductivity degradation of the rod filling gas.
The fundamental physical processes, which control the kinetics of fission gas swelling and release in irradiated fuel, may be summarized as follows. Fission gas atoms generated in the fuel grains diffuse towards the grain boundaries through repeated trapping in and irradiation-induced resolution from nanometre-size intra-granular gas bubbles. Although a part of the gas atoms that reach the grain boundaries is dissolved back to the grain interior by irradiation, the majority of the gas diffuses into grain-face gas bubbles, giving rise to grain-face swelling. Bubble growth brings about bubble coalescence and inter-connection, eventually leading to the formation of a tunnel network through which a fraction of the gas is released to the fuel rod free volume.
In BISON, fission gas behavior is computed for each integration point in the fuel finite element mesh. The gas produced at each integration point is computed by a numerical time integration of the gas production rate, given as the product of the fission rate and fractional yield of gas atoms per fission.
Physics-Based Model
The Simple Integrated Fission Gas Release and Swelling (Sifgrs) model is intended for consistently evaluating the kinetics of both fission gas swelling and release in UO2. The model incorporates the fundamental features of fission gas behavior, among which are gas diffusion and precipitation in grains, growth and coalescence of gas bubbles at grain faces, thermal, athermal, steady-state, and transient gas release. Through a direct description of the grain-face gas bubble development, the fission gas swelling and release are calculated as inherently coupled processes, on a physical basis. The level of complexity of the model is consistent with reasonable computational cost and the uncertainties inherent in engineering-scale fuel analysis. The Sifgrs model draws on and extends the approach described in Pastore et al. (2013).
Intra-granular Gas Behavior
Fission gas transport from within the fuel grains to the grain faces is computed through numerical solution of the relevant diffusion equation in one-dimensional spherical geometry ∂t∂Ct=Deffr21∂r∂(r2∂r∂Ct)+β(1) where Ct (m−3) is the intra-granular gas concentration, t (s) the time, Deff (m2s−1) the effective gas diffusion coefficient, r (m) the radial co-ordinate in the spherical grain, and β (m−3s−1) the gas generation rate. The effective diffusion coefficient, which accounts for the effects of repeated trapping in and irradiation-induced resolution from intra-granular bubbles, is calculated based on White and Tucker (1983) and Speight (1969). Eq. (1) is solved using dedicated numerical algorithms. Both the algorithm from Hermansonn and Massih (2002) and the more recent one from Pizzocri et al. (2016) are available in BISON.
In alternative to the single diffusion equation with the effective diffusion coefficient Deff, it is possible to solve the coupled equations describing gas diffusion and exchange of gas between the grain matrix and bubbles ∂t∂C=Dr21∂r∂(r2∂r∂C)−gC+bM+β(2)
∂t∂M=+gC−bM(3) where C and M (m−3) are the single gas atom concentration and the gas in bubble concentration, respectively, D (m2s−1) the single atom diffusion coefficient, g (s−1) the trapping rate, and b (s−1) the re-solution rate. This system of equations is solved in time-varying conditions by a dedicated algorithm, extending the one from Pizzocri et al. (2016). The solution of this system of equations is expected to be needed during fast transients (e.g., RIA). Nevertheless, Eq. (1) provides a good description of the intra-granular gas behavior for the wide majority of temperature and power conditions.
An empirical model (Lassmann et al., 1995) is included to consider intra-granular gas depletion in the high burnup structure (HBS). No specific model for gas release from the HBS is considered.
Evolution of Intra-grannular Bubbles
The contribution of intra-granular bubbles to fission gas swelling (intra-granular swelling), which is generally less important than the swelling due to grain-face bubbles, at least for burnup below about 45 GWd/t (Kashibe et al., 1969), is considered. In fact, a model is available to calculate the evolution during irradiation of intra-granular bubble density and radius, based on Pizzocri et al. (2018). Nucleation and re-solution may occur by different mechanisms, i.e., heterogeneous and homogeneous (Olander and Wongsawaeng, 2006). Heterogeneous nucleation and re-solution refer to the creation of new bubbles nuclei as a direct consequence of the interaction of fission fragments with the lattice and the bubbles destruction occurring en-bloc by passing fission fragments, respectively. The homogeneous mechanisms accounts for the nucleation of bubbles by diffusion-driven interactions of dissolved gas atoms and re-solution occurring gradually by ejection of individual atoms. The dominant mechanisms depend upon the nature of the interactions between fission fragments and lattice (electronic or phononic). Based on experimental and theoretical findings, the heterogeneous mechanisms is assumed as dominating in UO2. The equations for the evolution of the intra-granular gas bubble number density and gas atom concentrations are: dtdN=ν−bN(4)
∂t∂c=Dr21∂r∂(r2∂r∂c)−gc+bm−2ν+β(5)
∂t∂m=gc−bm+2ν where N (m−3) is the number density of intra-granular bubbles, n is the number of gas atoms per bubble, c and m (m−3) are the intra-granular gas concentration in the matrix and in the bubbles, respectively, t (s) the time, D (m2s−1) the single-atom gas diffusion coefficient, r (m) the radial coordinate in the spherical grain, β (m−3s−1) the gas generation rate, g (s−1) the trapping rate, b (s−1) the re-solution rate, and ν (m−3s−1) the nucleation rate, which is calculated as: ν=2αF˙(6) being α=24 (bubble/fisson-fragment) the average number of bubbles nucleated per fission fragments (e.g., Turnbull (1971)) and F˙ the fission rate.
Intra-granular bubbles radius is calculated, assuming spherical shape of the bubbles, multiplying the number of atoms per intra-granular bubble, i.e. n=Nm, by the equivalent radius associated to atoms in intra-granular bubbles (derived from experimental measurements, e.g. Olander and Wongsawaeng (2006)).
Grain-face Gas Behavior
Numerical solution of Eq. (1) allows estimating the arrival rate of gas at the grain faces, thus providing the source term for the grain-face gas behavior module. The latter computes both the fission gas swelling and release through a direct description of the grain-face bubble development, including bubble growth and coalescence (which are reflected in fuel swelling), and eventual inter-connection (leading to thermal FGR). In outline:
Peculiarities related to the presence of grain edges (where three grains meet) are neglected (e.g., Kogai (1997) and Massih and Forsberg (2008)).
The flux of gas atoms dissolved from the grain faces back to the grain interior by irradiation is neglected (Rest, 2003).
An initial number density of grain-face bubbles (nucleation centers) is considered, and further nucleation during the irradiation is neglected (one-off nucleation, e.g., White (2004)).
The absorption rate of gas at the grain-face bubbles is assumed to equal the arrival rate of gas at the grain faces (White, 2004; Olander and Uffelen, 2001).
All grain-face bubbles are considered to have, at any instant, equal size and equal lenticular shape of circular projection (e.g., Veshchunov (2008)); hence, the fractional volume grain-face fission gas swelling is given by
(VΔV)=21(1/3)rgrNgf(34πφ(Θ)Rgf3)(7) where Ngf is the number density of grain-face bubbles per unit surface, rgr the grain radius, Θ the bubble semi-dihedral angle, φ(Θ) the geometric factor relating the volume of a lenticular-shape bubble to that of a sphere, which is 1−1.5cosΘ+0.5cos3Θ, and Rgf the bubble radius of curvature. The factor 1/2 is introduced in Eq. (7) because a grain-face bubble is shared by two neighboring grains.
Bubble Growth
Bubble growth is treated using the model from Speight and Beere (1975), which describes the growth (or shrinkage) of grain-face bubbles as proceeding by absorption (or emission) of vacancies in grain boundaries, induced by the difference between the pressure of the gas in the bubble, p (Pa), and the mechanical equilibrium pressure, peq (Pa). The vacancy absorption/emission rate at a bubble is given by
dtdnv=kTS(2πDvδg)(p−peq)(8) where nv (-) is the number of vacancies in the bubble, Dv (m2⋅ s−1) the vacancy diffusion coefficient in grain boundaries, δg (m) the thickness of the diffusion layer in grain boundaries, and the parameter S (-) may be calculated as (White, 2004) S=−41[(3−Fc)⋅(1−Fc)+2ln(Fc)] with Fc being the fraction of grain faces covered by bubbles (fractional coverage). The mechanical equilibrium pressure, peq, of the gas in a lenticular bubble of circular projection is given by peq=Rgf2γ−σh(9) where γ (J⋅m−2) is the UO2 gas specific surface energy, Rgf (m) the bubble radius of curvature, and σh (Pa) the hydrostatic stress (considered to be negative if the solid medium is under compression). For describing the bubble thermodynamic state, the Van der Waals' equation of state is adopted in the following form: p(Vgf−ngω)=ngkT(10) where ng (-) is the number of fission gas atoms per bubble, k (J⋅K−1) the Boltzmann constant, T (K) the temperature, Vgf (m3) the bubble volume, and ω (m3) the Van der Waals' volume of a fission gas atom. Given that each bubble consists of vacancies and gas atoms, the volume of a bubble comprising ng fission gas atoms and nv vacancies is given by Vgf=ngω+nvΩgf(11) where Ωgf (m3) is the atomic (vacancy) volume in the bubble. The combination of Eq. (10) and Eq. (11) gives for the pressure of the gas in the bubble p=ΩgfkTnvng(12) The above approach allows computing the bubble growth rate from the rate of inflow of gas atoms along with the rate of absorption (emission) of vacancies at the bubble. The combined effects of gas atom inflow and vacancy absorption (emission) are interactive, since the addition of fission gas atoms gives rise to a change in the bubble pressure via Eq. (12). The bubble pressure affects the propensity of the bubble to absorb (or emit) vacancies through Eq. (8). Given the volume, Vgf, of a lenticular bubble of circular projection, the bubble radius of curvature is calculated as Rgf=(4πφ(Θ)3Vgf)31
Grain-Face Bubble Coalescence
The process of grain-face bubble coalescence, which leads to a progressive decrease of the bubble number density throughout irradiation, is described using an improved model of White (Pastore et al., 2013; White, 2004). According to this model, the rate of loss of bubbles by coalescence is given by
dtdNgf=−3+4NgfAgf6Ngf2dtdAgf where Ngf and Agf represent the number density and projected area of grain-face bubbles, respectively. A lower limit Ngf low equal to 1010 m−2 is set.
Bubble Number Density Saturation Condition
The release of fission gas to the fuel rod free volume following inter-connection of grain-face bubbles and consequent formation of pathways for gas venting to the fuel exterior (thermal release) is modeled based on a principle of grain face saturation. More specifically, a saturation coverage concept is adopted, namely, it is considered that once the fractional coverage, F, attains a saturation value, Fsat, the bubble number density and projected area obey the saturation coverage condition F=NgfAgf=Fsat(13) where Ngf is the bubble number density and Agf=π(sin(Θ))2Rgf2 is the bubble projected area on the grain face. The commonly accepted value for Fsat is 0.5. Eq. (13) implies that, after attainment of the saturation coverage, a fraction of the gas reaching the grain faces is released to the fuel exterior to compensate for continuing bubble growth.
Transient Gas Behavior
Experimental observations relative to both in-reactor irradiation and post-irradiation annealing of oxide nuclear fuel indicate that substantial fission gas release can occur on a small time scale during temperature transients (burst release). The rapid kinetics of the process cannot be interpreted as purely diffusion-controlled. From the available experimental evidence (Rothwell, 1962; Une and Kashibe, 1990; Sartori et al., ; Ducros et al., 2013), the following main aspects of transient fission gas behavior emerge:
Burst release occurs through grain-face separation (micro-cracking) which entails gas depletion of a fraction of the grain faces.
Release bursts are triggered by temperature variations, both heating and cooling.
The rate of gas release during bursts is a peaked function of temperature with the maximum at a 'central' temperature, which is dependent on the burnup.
An extension (transient model) of the treatment of grain-face gas behavior described in the section "Grain-face gas behavior" is available in BISON, which introduces the effect of micro-cracking on fission gas behavior (Pastore et al., 2014). According to the BISON transient model, gas depletion of a fraction of the grain faces is modeled as a reduction of the fractional coverage, F. In particular, F is scaled by a factor, f, corresponding to the fraction of non-cracked (intact) grain faces. The reduction of the fractional coverage effectively leads to a decrease of the amount of gas retained in the fuel – consequently, of fission gas swelling – and to a corresponding increase of FGR. This contribution to thermal FGR supplements the diffusion-interconnection mechanism considered in the basic model (See section "Grain-face gas behavior"). Also, the lost gas storing capacity of cracked grain faces is represented by scaling the saturation coverage, Fsat, by the factor f. Moreover, the healing process of cracked grain faces is considered as a progressive restoration of the grain-face gas storing capacity. Therefore, the fractional coverage and saturation coverage obey dtdF=[dtdF]d+F[dtdf]c
dtdFsat=Fsat([dtdf]c+[dtdf]h) where d stands for diffusion-controlled processes (basic model in the section "Grain face gas behavior"), c stands for micro-cracking, and h for micro-crack healing. The value for the maximum (initial) saturation coverage (corresponding to all intact grain faces) is Fsat,i=0.5. The calculation of the term representing the effects of micro-cracking is detailed hereinafter.
We simplify the micro-cracking process into a purely temperature-dependent behavior, characterized by a micro-cracking parameter, m. We also observe that the process can only affect intact grain faces, and write [dtdf]c=−dtdmf(14) where [dtdf]c is the reduction rate due to micro-cracking of the fraction of intact grain faces, f. The micro-cracking parameter is taken as a function of the sole temperature, hence m(T,t)=m(T(t))(15) Then, Eq. (14) can be written as [dtdf]c=−dTdmdtdTf implying [dtdf]c=0ifdtdT=0 which conforms to the experimentally observed characteristic of burst release as triggered by temperature variations. Under the condition expressed by Eq. (15), the analytic solution of Eq. (14) with initial conditions f(t0)=f0 and m(T(t0))=m0 is f(t)=f0exp[−(m(T(t))−m0)] Based on the available experimental evidence, the functional form of m is chosen as a temperature-dependent sigmoid function m(T)=1−[1+Qexp(sTspanT−Tcent)]−Q1(16) where Tcent (K) is the central temperature, Tspan (K) is a measure of the temperature-domain width of the phenomenon, Q (-) is a parameter, and s is defined as s={+1−1 if dtdT>0(heating transients) if dtdT<0(cooling transients) so that m increases during both heating and cooling transients. The following values are used for the parameters: Tspan = 5 K, Q = 33. The micro-cracking parameter, m, and the parameter derivative, dTdm, are plotted in Figure 1 for a value of Tcent=1773 K. According to Eq. (16) the absolute value of the temperature derivative for m is maximum at Tcent (see also Figure 1), thus the combined Eq. (14) and Eq. (16) reproduce the maximum rate of burst release at Tcent as temperature varies in time.
For the calculation of the parameter Tcent in the model, the following correlation from Barani et al. (2017) is used Tcent=α+β×exp(−γbu)(17) where α=1773 K, β=520 K, γ=10GWdtU−1, and bu (GWdtU−1) is the burnup at current time step. Eq. (17) is derived from the best-estimate fit of quantitative experimental data, Figure 2.

Figure 1: Micro-cracking parameter, m, and derivative, dTdm, as a function of temperature, considering a central temperature equal to 1773 K.

Figure 2: Experimental data for the temperature of maximum burst release rate from Une and Kashibe (1990) and Baker and Killeen (1987) as a function of burnup and best-estimate fitting curve.
A simple burnup-dependent model is used for micro-crack healing, which is not described here for brevity. Details can be found in Pastore et al. (2014). The above treatment of transient fission gas behavior preserves the continuity in both time and space as well as the consistent coupling of the calculated fission gas release and swelling. Extensive validation has indicated that the model is capable of consistently representing the kinetics of FGR during transient fuel irradiations (Pastore et al., 2014; Pizzocri et al., 2015; Barani et al., 2017).
Athermal Gas Release
At low temperature, the fission gas in the matrix of the solid is relatively immobile. Only the gas formed at the external surface of the solid is capable of escape, with an emission rate that is independent of temperature. This athermal contribution to FGR arises from the surface-fission release mechanisms of recoil (direct release of a fission fragment due to its high kinetic energy) and knockout (ejection of a gas atom following elastic interaction with either a primary fragment or energetic particle created in a collision cascade) (Lewis, 1987). These release mechanisms affect only the outer layer of the fuel (within about 10μm from the surface). The rate of gas atom release per unit fuel volume due to recoil and knock-out, Ra (m−3s−1), may be calculated as (Lewis, 1987) Ra=4VyF(Sgμf+2StμUko) where y (-) is the fractional yield of fission gas atoms, F the fission rate density (m−3s−1), V (m3) the volume of fuel, Sg (m2) the geometrical surface area of fuel, St (m2) the total surface area of fuel (including cracked surface), μf (m) the fission fragment range in the fuel, and μUko (m) the range of the higher order uranium knock-on in UO2.
In line with Koo et al. (2000), the number and length of cracks in each fuel pellet is estimated in a simple way. First, radial cracks are considered to cross the outer, brittle region of the fuel pellet with a temperature lower than 1200 C (Olander, 1976). Second, the number of pellet cracks is considered to increase linearly with fuel linear power (Oguma, 1983). Then, once the linear power and pellet dimensions are given, the total pellet surface area available for athermal gas release can be calculated.
Grain Growth and Grain Boundary Sweeping
Being the fission gas behavior physically dependent on the granular structure of the fuel, the Sifgrs model is coupled with the grain growth model (See section on Grain Growth in the Theory Manual Overview of Ceramic Fuels). The grain growth phenomenon affects the fission gas release in three ways. First of all, due to the low solubility of the fission gas, the moving grain boundary does not redeposit any gas in the newly-formed crystal behind it, thus acting as a filter and contributing to the collection of gas at the grain faces (_grain boundary sweeping_). This effect is taken into account in Sifgrs by adding a supplementary fractional release term (s) from within the grains to the grain faces that is equal to the volume fraction of the fuel swept by the moving boundaries: s=ri3ri3−ri−13 where the indices i−1 and i refer to the previous and current time, respectively. Secondly, the diffusion distance for the fission gas atoms created in the grains increases as the grains grow. Unlike the first consequence this tends to reduce the release rate. Thirdly, grain growth reduces the capacity of the grain boundaries to store fission gas, as it results in a decrease of the total grain surface-to-volume ratio.
Preliminary application to FBR MOX
For fast MOX fuels, higher temperatures are reached compared to LWR fuels. The associated pronounced bubble growth and coalescence can lead to the attainment of the lower limit for the number density of grain boundary bubbles systematically. Preliminary simulations of FBR MOX irradiations have indicated that a value of 1011 m−2 leads to a more accurate result in terms of both FGR and swelling compared to the default LWR UO2 value. A value of 1011 m−2 is compatible with experimental observations, e.g., (White, 2004).
Example Input Syntax
[./fission_gas_release]
type = Sifgrs
temp = temp
fission_rate = fission_rate
[../]
(test/tests/element_integral_power/fission_gas_error_check_1D.i)/Users/gardrj/projects/bison/test/tests/element_integral_power/fission_gas_error_check_1D.i
# Tests the ElementIntegralPower postprocessor
#
# A constant volumetric fission rate of 3.125e18 fissions/m^3-s is applied to a RZ cylinder
# having an inner radius of 0.01 m, outer radius of 0.0114818 m and height of 0.01 m.
# The power is thus constant with magnitude:
#
# Power = Fdot * Energy_per_fission * Volume
# = 3.125e18 * 3.2e-11 * Pi*(0.0114818^2 - 0.01^2) * 0.01
# = 100
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
type = Layered1DMesh
fuel_height = 0.01
include_clad = false
include_plenum = false
slices_per_block = 1
pellet_bottom_coor = 0
pellet_outer_radius = 0.011481768
pellet_inner_radius = 0.01
clad_gap_width = 0
clad_thickness = 0
elem_type = EDGE2
pellet_mesh_density = customize
nx_p = 1
[]
[Problem]
coord_type = RZ
[]
[Functions]
[./unity]
type = ParsedFunction
value = '1.0'
[../]
[]
[Variables]
[./temp]
initial_condition = 500.0
[../]
[]
[AuxVariables]
[./fission_rate]
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateAux
variable = fission_rate
value = 3.125e18
function = unity
execute_on = 'initial timestep_begin'
[../]
[]
[BCs]
[./left_T]
type = PresetBC
variable = temp
boundary = 13
value = 500.0
[../]
[]
[Materials]
[./fuel]
type = HeatConductionMaterial
block = fuel
temp = temp
thermal_conductivity = 10
specific_heat = 100
[../]
[./density]
type = Density
block = fuel
density = 10000
[../]
[./fission_gas_release]
type = Sifgrs
temp = temp
fission_rate = fission_rate
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 2
dt = 1.0e6
nl_abs_tol = 1e-8
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
[../]
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
[../]
[]
[Outputs]
exodus = true
[]
Input Parameters
- ath_modelFalseActivates the athermal release model
Default:False
C++ Type:bool
Options:
Description:Activates the athermal release model
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector
Options:
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Options:
Description:Set the enabled status of the MooseObject.
- gbs_modelFalseActivates the grain-boundary sweeping model
Default:False
C++ Type:bool
Options:
Description:Activates the grain-boundary sweeping model
- hbs_modelFalseActivates the high burnup structure model
Default:False
C++ Type:bool
Options:
Description:Activates the high burnup structure model
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Options:
Description:Determines whether this object is calculated using an implicit or explicit form
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Options:
Description:The seed for the master random number generator
- skip_bdr_modelFalseSkips the grain-boundary model
Default:False
C++ Type:bool
Options:
Description:Skips the grain-boundary model
- testing_outputFalseProvides an analytic reference for the value of the intra-granular fission gas release
Default:False
C++ Type:bool
Options:
Description:Provides an analytic reference for the value of the intra-granular fission gas release
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Options:
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
- output_propertiesList of material properties, from this material, to output (outputs must also be defined to an output type)
C++ Type:std::vector
Options:
Description:List of material properties, from this material, to output (outputs must also be defined to an output type)
- outputsnone Vector of output names were you would like to restrict the output of variables(s) associated with this object
Default:none
C++ Type:std::vector
Options:
Description:Vector of output names were you would like to restrict the output of variables(s) associated with this object
Outputs Parameters
Input Files
- assessment/LWR/validation/IFA_519/analysis/rod_DH/IFA_519_rod_DH.i
- test/tests/triso_failure/triso_1d_failure.i
- assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/TSQ002_1pt5.i
- assessment/LWR/validation/Riso_AN2/analysis/Riso_AN2.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM073/TM/BFM073_tm.i
- assessment/LWR/validation/IFA_431/analysis/rod2/SM/IFA_431_rod2_sm.i
- assessment/LWR/validation/Riso_AN2/analysis/SM/Riso_AN2_sm.i
- assessment/LWR/validation/IFA_562/analysis/rod15/IFA562_15.i
- assessment/LWR/validation/FUMEXII_Regate/analysis/SM/Regate_discrete_sm.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/UFE019/SM/UFE019.i
- assessment/LWR/validation/IFA_636/analysis/IFA_636_solid_swell/IFA_636_solid_swell.i
- test/tests/standard_lwr_outputs_action/two_pellet_only.i
- test/tests/standard_lwr_outputs_action/annular_mini_rod.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_second_stage.i
- assessment/LWR/validation/Riso_GE7_ZX115/analysis/Riso_GE7_smeared_tm.i
- assessment/LWR/validation/HbepR1/analysis/A184/SM/HbepR1_A184_sm.i
- assessment/LWR/validation/Riso_GE7_ZX115/analysis/Riso_GE7_smeared.i
- assessment/LWR/validation/RE_Ginna_Rodlets/analysis/RE_Ginna_rodlet-2/RE_Ginna_rodlet_2.i
- assessment/LWR/validation/Tribulation/analysis/BN1X4/BN1X4.i
- assessment/LWR/validation/Riso_GEm_STR013/analysis/SM/Riso_GEm_STR013.i
- assessment/LWR/benchmark/AREVA_idealized_case/analysis/AREVA_idealized_case_tm.i
- assessment/LWR/validation/Super_Ramp/analysis/PK62/PK62.i
- assessment/LWR/validation/IFA_431/analysis/rod3/IFA_431_rod3.i
- assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/RefinementStudy/TSQ002_1pt5_twentyslice.i
- assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_1/vitanza_tm.i
- assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_5/REP_Na_5.i
- assessment/LWR/validation/RIA_NSRR_FK/analysis/FK8/FK08.i
- examples/tensor_mechanics/2D-RZ_rodlet_10pellets/SmearedCracking_tm.i
- assessment/LWR/validation/IFA_431/analysis/rod1/SM/IFA_431_rod1_sm.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_swelling_porosity.i
- examples/tensor_mechanics/TRISO/IAEA_CRP-6_type/2D/case_10/case_10.i
- test/tests/triso_failure/triso_1d_failure_error.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFL009/TM/BFL009_tm.i
- examples/multiapp/pin2.i
- assessment/LWR/validation/RE_Ginna_Rodlets/analysis/RE_Ginna_rodlet-2/RE_Ginna_rodlet_2_tm.i
- assessment/LWR/validation/HBEP/analysis/BK365/SM/HBEP_BK365_sm.i
- assessment/LWR/validation/IFA_636/analysis/IFA_636/IFA_636.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_transient_model_bup_dependent.i
- assessment/LWR/validation/IFA_534/analysis/rod_18/SM/IFA_534_rod18_sm.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_diffusion_coefficient.i
- examples/triso_particle_2D-RZ/triso2D_accident.i
- assessment/LWR/validation/HBEP/analysis/BK370/HBEP_BK370.i
- assessment/LWR/validation/Tribulation/analysis/BN1X3/BN1X3_tm.i
- assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/RefinementStudy/TSQ002_1pt5_fortyslice.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BEN013/SM/BEN013.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/UFE067/TM/UFE067_tm.i
- assessment/LWR/validation/Super_Ramp/analysis/PK22/PK22.i
- assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ022/SM/TSQ022.i
- examples/tensor_mechanics/1.5D_rodlet_10pellets/Smeared_2D_tm.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFL031/TM/BFL031_tm.i
- assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/RefinementStudy/TSQ002_1pt5_tenslice.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_percolation_xfem.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_first_stage_restart2.i
- assessment/LWR/validation/FUMEXII_Regate/analysis/Regate_discrete.i
- assessment/LWR/validation/HbepR1/analysis/A364/HbepR1_A364.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_first_stage_restart1.i
- assessment/MOX/JOYO/MK-I/analysis/MK-I_75MW_master_old_bubble_gb_lim.i
- examples/tensor_mechanics/TRISO/IAEA_CRP-6_type/1D/case_10/case_10_1D.i
- assessment/LWR/validation/Riso_II3/analysis/SM/Riso_II3.i
- assessment/LWR/validation/IFA_432/analysis/rod1/IFA_432_rod1.i
- assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_1/vitanza.i
- assessment/LWR/validation/Super_Ramp/analysis/PK13/PK13.i
- assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_2DRZ_t.i
- assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_master.i
- assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_2/RIA/REP_Na_2_RIA.i
- assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_2a/27_2a_tm.i
- assessment/LWR/validation/HbepR1/analysis/H8364/SM/HbepR1_H8364_sm.i
- examples/tensor_mechanics/TRISO/IAEA_CRP-6_type/2D/case_11/case_11.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFL009/SM/BFL009.i
- assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_3/RIA/REP_Na_3_RIA.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM043/TM/BFM043_tm.i
- test/tests/triso/base_irradiation/triso1D_accident_truss3.i
- assessment/LWR/validation/HBEP/analysis/BK363/HBEP_BK363.i
- assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/cracking/TSQ002_tm_cracking.i
- assessment/LWR/validation/RE_Ginna_Rodlets/analysis/RE_Ginna_rodlet-4/RE_Ginna_rodlet_4_tm.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_transient_model.i
- examples/tensor_mechanics/accident_tolerant_fuel/uo2_fecral.i
- examples/experimental_design/3D_asbuiltCCM/simulation/Alloy33/final_2.i
- assessment/LWR/validation/Super_Ramp/analysis/PK11/PK11.i
- assessment/LWR/validation/IFA_535/analysis/rod_810/SM/IFA_535_rod_810_sm.i
- examples/spent_fuel/full_life_cycle_coarse/discrete.i
- assessment/MOX/JOYO/MK-II/analysis/MK-II_master_new_bubble_gb_lim.i
- assessment/LWR/validation/Tribulation/analysis/BN1X3/BN1X3.i
- test/tests/ifba_he_production/ifba_examp_template.i
- assessment/LWR/validation/FUMEXII_Regate/analysis/SM/Regate_smeared_sm.i
- assessment/LWR/validation/Riso_GEm_STR013/analysis/Riso_GEm_STR013.i
- assessment/LWR/validation/Super_Ramp/analysis/PK21/PK21.i
- assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.9/IFA_650_9_part1.i
- assessment/LWR/validation/FUMEXII_Regate/analysis/Regate_smeared.i
- assessment/LWR/validation/Riso_AN8/analysis/Riso_AN8.i
- test/tests/standard_lwr_outputs_action/mini_complete_rod.i
- assessment/LWR/validation/RIA_NSRR_FK/analysis/FK1/FK01.i
- examples/temperature_tables/1.5D_cases/1pt5D.i
- assessment/LWR/validation/IFA_432/analysis/rod2/SM/IFA_432_rod2_sm.i
- assessment/TRISO/benchmark/IAEA_CRP-6/case_11/case_11_1D.i
- assessment/MOX/JOYO/MK-I/analysis/MK-I_75MW_master_new_bubble_gb_lim.i
- assessment/LWR/validation/Tribulation/analysis/BN3X15/BN3X15.i
- assessment/LWR/validation/IFA_535/analysis/rod_812/IFA_535_rod_812.i
- test/tests/fuelrodlinevaluesampler/example_problem_smeared_test2.i
- test/tests/example_problem_test/example_problem_test.i
- assessment/LWR/validation/IFA_432/analysis/rod2/IFA_432_rod2.i
- examples/2D-RZ_rodlet_10pellets/discrete.i
- assessment/LWR/validation/RIA_NSRR_FK/analysis/FK4/FK04.i
- test/tests/standard_lwr_outputs_action/pellet_only.i
- examples/Discrete_3D_3pellets/half_symm/3d_3pellets.i
- assessment/LWR/validation/Riso_AN8/analysis/SM/Riso_AN8_sm.i
- assessment/LWR/validation/Super_Ramp/analysis/PK63/PK63.i
- assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.2/TM/IFA_650_2_tm.i
- assessment/LWR/validation/RIA_CABRI_REP_Na4/analysis/REP_Na_4/REP_Na_4_tm.i
- assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_2/REP_Na_2_tm.i
- assessment/LWR/validation/RE_Ginna_Rodlets/analysis/RE_Ginna_rodlet-4/RE_Ginna_rodlet_4.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM071/TM/BFM071_tm.i
- assessment/LWR/validation/Super_Ramp/analysis/PK12/PK12.i
- examples/3D_rodlet_3pellets/smearedTest3D.i
- test/tests/triso_failure/sub.i
- examples/experimental_design/3D_asbuiltCCM/simulation/APMT/final_2.i
- assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_2d/27_2d.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_first_stage.i
- test/tests/meso_thcond_test/sifgrs_swelling_fissiongas.i
- assessment/LWR/validation/RIA_NSRR_FK/analysis/FK9/FK09.i
- examples/2D-RZ_rodlet_10pellets/Smeared.i
- assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.10/SM/IFA_650_10_part1.i
- assessment/LWR/validation/IFA_597_3/analysis/rod_8/SM/IFA_597_rod8_frictionless_sm.i
- assessment/LWR/validation/Super_Ramp/analysis/PK23/PK23.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFG092/SM/BFG092.i
- assessment/LWR/validation/RE_Ginna_Rodlets/analysis/RE_Ginna_rodlet-4/RE_Ginna_rodlet_4_1pt5.i
- assessment/LWR/validation/HBEP/analysis/BK370/SM/HBEP_BK370_sm.i
- assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_new_DiffCoeff4.i
- assessment/LWR/validation/HbepR1/analysis/A184/HbepR1_A184.i
- assessment/LWR/validation/IFA_535/analysis/rod_810/IFA_535_rod_810.i
- assessment/LWR/validation/Riso_AN4/analysis/Riso_AN4.i
- assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_2a/27_2a.i
- assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_old.i
- examples/2D-RZ_rodlet_10pellets/fuelpingeo.i
- examples/multiapp/pin1.i
- examples/tensor_mechanics/2D-RZ_rodlet_10pellets/2Dsm_discrete_finiteStrain.i
- assessment/LWR/validation/IFA_597_3/analysis/rod_7/SM/IFA_597_rod7_frictionless_sm.i
- test/tests/meso_thcond_test/sifgrs_swelling_fissiongas_graingrowth.i
- assessment/LWR/validation/IFA_534/analysis/rod_18/IFA_534_rod18.i
- assessment/MOX/JOYO/B14/PTM003/analysis/b14_ptm003_2DRZ_t.i
- assessment/LWR/validation/OSIRIS_H09/analysis/SM/OSIRIS_H09_sm.i
- assessment/LWR/validation/IFA_597_3/analysis/rod_7/IFA_597_rod7_frictionless.i
- test/tests/GrainRadiusPorosity_test/GrainRadiusPorosity_test.i
- assessment/LWR/validation/RIA_NSRR_FK/analysis/FK7/FK07.i
- assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_2DRZ_t.i
- assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT4/SM/MT4_1-2kW_sm.i
- assessment/LWR/validation/IFA_534/analysis/rod_19/SM/IFA_534_rod19_sm.i
- examples/tensor_mechanics/TRISO/IAEA_CRP-6_type/1D/case_11/case_11_1D.i
- assessment/LWR/validation/IFA_515_RodA1/analysis/IFA515.i
- assessment/LWR/validation/Super_Ramp/analysis/PK6S/PK6S.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/UFE019/TM/UFE019_tm.i
- assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT4/MT4_1-2kW.i
- test/tests/mechanical_uo2/mechuo2_gas_swelling.i
- assessment/LWR/validation/Riso_GE7_ZX115/analysis/Riso_GE7_1pt5.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_athermal_release.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFJ027/TM/BFJ027_tm.i
- assessment/LWR/validation/Riso_GE7_ZX115/analysis/Riso_GE7_discrete.i
- assessment/LWR/validation/OSIRIS_J12/analysis/OSIRIS_J12.i
- assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT6A/SM/MT6A_1-1kW.i
- assessment/LWR/validation/Riso_AN4/analysis/SM/Riso_AN4.i
- assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT6A/SM/MT6A_1-2kW.i
- assessment/LWR/validation/HBEP/analysis/BK363/SM/HBEP_BK363_sm.i
- assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ022/TSQ022.i
- assessment/LWR/validation/IFA_677/analysis/IFA_677.1_Rod1/ifa677r1_tm.i
- assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ022/TSQ022_1pt5.i
- assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/TSQ002.i
- assessment/LWR/validation/HbepR1/analysis/A364/SM/HbepR1_A364_sm.i
- assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.10/TM/IFA_650_10_part2_tm.i
- assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_3/REP_Na_3.i
- assessment/LWR/validation/IFA_432/analysis/rod3/SM/IFA_432_rod3_sm.i
- test/tests/fuelrodlinevaluesampler/example_problem_smeared_test.i
- examples/triso_particle_2D-RZ/triso2D_accident_tm.i
- assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_10/RIA/REP_Na_10_RIA.i
- test/tests/meso_thcond_test/test.i
- assessment/LWR/validation/Super_Ramp/analysis/PK14/PK14.i
- assessment/LWR/validation/IFA_519/analysis/rod_DK/SM/IFA_519_rod_DK_sm.i
- assessment/LWR/validation/HbepR1/analysis/H8364/HbepR1_H8364.i
- assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_new_DiffCoeff4_GrainGrowth.i
- test/tests/element_integral_power/fission_gas_error_check_1D.i
- assessment/LWR/validation/RIA_CABRI_REP_Na4/analysis/REP_Na_4/RIA/REP_Na_4_tm_RIA.i
- assessment/LWR/validation/Riso_II3/analysis/Riso_II3.i
- assessment/LWR/validation/Riso_II5/analysis/SM/Riso_II5_sm.i
- assessment/LWR/validation/IFA_534/analysis/rod_19/IFA_534_rod19.i
- assessment/MOX/JOYO/MK-I/analysis/MK-I_50MW_master_old_bubble_gb_lim.i
- assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_10/REP_Na_10.i
- examples/fast_mox_sifgrs/input_single_pellet_sifgrs_mox.i
- assessment/LWR/validation/Riso_AN3/analysis/Riso_AN3.i
- examples/tensor_mechanics/1.5D_rodlet_10pellets/Smeared_2D_sm.i
- examples/IAEA_CRP-6_type/case_11/case_11.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFJ027/SM/BFJ027.i
- assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_new.i
- assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_2/REP_Na_2_1pt5.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM073/SM/BFM073.i
- assessment/LWR/validation/Riso_II5/analysis/Riso_II5.i
- examples/experimental_design/3D_asbuiltCCM/simulation/Alloy33/final_1.i
- assessment/LWR/validation/IFA_431/analysis/rod1/IFA_431_rod1.i
- assessment/MOX/JOYO/MK-I/analysis/MK-I_50MW_master_new_bubble_gb_lim.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM034/TM/BFM034_tm.i
- examples/tensor_mechanics/accident_tolerant_fuel/uo2_coated_zircaloy.i
- examples/tensor_mechanics/2D-RZ_rodlet_10pellets/Smeared_sm_smallStrain.i
- assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/RefinementStudy/TSQ002_1pt5_hundredslice.i
- assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.9/IFA_650_9_part2.i
- assessment/LWR/validation/Super_Ramp/analysis/PK24/PK24.i
- assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_new_GrainGrowth.i
- assessment/LWR/validation/IFA_431/analysis/rod2/IFA_431_rod2.i
- test/tests/meso_thcond_test/test2.i
- examples/Discrete_3D_3pellets/quarter_symm/3d_3pellets.i
- assessment/LWR/validation/IFA_519/analysis/rod_DK/IFA_519_rod_DK.i
- assessment/LWR/validation/Riso_AN3/analysis/SM/Riso_AN3.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_chromia_doped.i
- assessment/LWR/validation/RIA_NSRR_FK/analysis/FK6/FK06.i
- examples/IAEA_CRP-6_type/case_10/case_10.i
- assessment/LWR/validation/IFA_519/analysis/rod_DH/SM/IFA_519_rod_DH_sm.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BEN013/TM/BEN013_tm.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM043/SM/BFM043.i
- assessment/LWR/validation/IFA_432/analysis/rod1/SM/IFA_432_rod1_sm.i
- assessment/LWR/validation/IFA_535/analysis/rod_812/SM/IFA_535_rod_812_sm.i
- assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT4/SM/MT4_1-1kW_sm.i
- assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_2DRZ_t.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_polypole2.i
- assessment/LWR/validation/IFA_535/analysis/rod_809/SM/IFA_535_rod_809_sm.i
- examples/tensor_mechanics/2D-RZ_rodlet_10pellets/fuelpingeo_tm.i
- assessment/LWR/validation/IFA_515_RodA1/analysis/SM/IFA515_sm.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM070/TM/BFM070_tm.i
- assessment/LWR/benchmark/AREVA_idealized_case/analysis/AREVA_idealized_case.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_mechanistic_igmodel.i
- assessment/LWR/validation/RIA_NSRR_FK/analysis/FK3/FK03.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_polypole1.i
- assessment/LWR/validation/OSIRIS_J12/analysis/SM/OSIRIS_J12_sm.i
- assessment/LWR/validation/IFA_432/analysis/rod3/IFA_432_rod3.i
- assessment/LWR/validation/Riso_GE7_ZX115/analysis/cracking_creep/Riso_GE7_smeared_cracking_creep.i
- examples/tensor_mechanics/1.5D_restart/Smeared_1.5D.i
- assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT4/MT4_1-1kW.i
- doc/workshop/inputQuad8_tm.i
- examples/tensor_mechanics/2D-RZ_rodlet_10pellets/Quad8_tm.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM156/SM/BFM156.i
- assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_2b/27_2b.i
- assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/SM/TSQ002.i
- test/tests/ifba_he_production/doc/fill_gas_helium.i
- examples/tensor_mechanics/2D-RZ_rodlet_10pellets/2Dtm_discrete_finiteStrain.i
- assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT6A/MT6A_1-2kW.i
- assessment/LWR/validation/IFA_597_3/analysis/rod_8/IFA_597_rod8_frictionless.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM070/SM/BFM070.i
- assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_5/RIA/REP_Na_5_RIA.i
- examples/tensor_mechanics/2D-RZ_rodlet_10pellets/Smeared_tm_smallStrain.i
- test/tests/triso_failure/triso_1d_ipyc_failure.i
- assessment/LWR/validation/RIA_NSRR_FK/analysis/FK3/FK03_ccm.i
- assessment/LWR/validation/IFA_535/analysis/rod_811/IFA_535_rod_811.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFL031/SM/BFL031.i
- assessment/LWR/validation/HBEP/analysis/BK365/HBEP_BK365.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_grain_growth.i
- assessment/LWR/validation/Tribulation/analysis/BN1X4/BN1X4_tm.i
- assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.10/SM/IFA_650_10_part2.i
- test/tests/tensor_mechanics/uo2_eigenstrains/uo2_relocation/relo_recov_fuel_rod_tm.i
- examples/experimental_design/3D_asbuiltCCM/simulation/APMT/final.i
- assessment/LWR/validation/IFA_535/analysis/rod_811/SM/IFA_535_rod_811_sm.i
- test/tests/meso_thcond_test/test3.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_fast_mox.i
- assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.10/TM/IFA_650_10_part1_tm.i
- assessment/LWR/validation/RIA_NSRR_FK/analysis/FK2/FK02.i
- assessment/TRISO/benchmark/IAEA_CRP-6/case_10/case_10_1D.i
- assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_2/REP_Na_2.i
- test/tests/fission_gas_behavior_sifgrs/sifgrs_percolation.i
- assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_1/vitanza_1pt5.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM156/TM/BFM156_tm.i
- assessment/LWR/validation/IFA_562/analysis/rod16/IFA562_16.i
- examples/restart/Quad8.i
- assessment/LWR/validation/IFA_431/analysis/rod3/SM/IFA_431_rod3_sm.i
- assessment/MOX/JOYO/MK-II/analysis/MK-II_master_old_bubble_gb_lim.i
- examples/tensor_mechanics/1.5D_rodlet_10pellets/Smeared_1.5D.i
- test/tests/ifba_he_production/doc/fill_gas_xenon.i
- assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.2/SM/IFA_650_2.i
- test/tests/ifba_he_production/fill_gas_xenon_w_ifba.i
- assessment/LWR/validation/IFA_535/analysis/rod_809/IFA_535_rod_809.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM034/SM/BFM034.i
- assessment/LWR/validation/RIA_NSRR_FK/analysis/FK5/FK05.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/UFE067/SM/UFE067.i
- assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_2c/27_2c.i
- assessment/LWR/validation/Tribulation/analysis/BN3X15/BN3X15_tm.i
- assessment/LWR/validation/OSIRIS_H09/analysis/OSIRIS_H09.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFG092/TM/BFG092_tm.i
- assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT6A/MT6A_1-1kW.i
- assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM071/SM/BFM071.i
- assessment/LWR/validation/IFA_597_3/analysis/rod_7/SM/IFA_597_rod7_glued_sm.i
- examples/2D-RZ_rodlet_10pellets/Quad8.i
- assessment/LWR/validation/IFA_562/analysis/rod17/IFA562_17.i
- assessment/LWR/validation/IFA_597_3/analysis/rod_7/IFA_597_rod7_glued.i
assessment/LWR/validation/IFA_519/analysis/rod_DH/IFA_519_rod_DH.i
# IFA-519.9 Rod DH
[GlobalParams]
density = 10400.0 # Table 1 HWR 668
temperature = temp
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
file = IFA_519_DH_smeared.e
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
patch_update_strategy = auto
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./grain_radius]
block = 3
initial_condition = 4.68e-6 # 2D grain radius 3e-6
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = 519_DH_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
x = '-100 0 548232673 548245008'
y = '0.0298015 1 1 0.0298015'
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = 519_coolant_temp.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = '3'
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
decomposition_method = EigenSolution
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
decomposition_method = EigenSolution
[../]
[]
# Define kernels for the various terms in the PDE system (in all cases here, the axisymmetric (RZ) version is specified)
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.24644
a_lower = 0.00324
fuel_inner_radius = 0
fuel_outer_radius = 0.00465
i_enrich = '0.13 .87 0 0 0 0' # 13% enriched U-235
RPF = RPF
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 1.6e12 #(n/m2-s per W/m) taken from IFA-431
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 226456400
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = 1020 # 20
value = 0.0
[../]
[./temp]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6 # taken from IFA-431
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.59e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get inital fill gas mass
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
refab_time = 226456400
refab_pressure = 2.8e6
refab_temperature = 293
refab_volume = 9.2e-6
displacements = 'disp_x disp_y'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./density_clad]
type = Density
block = '1'
density = 6551.0
[../]
[./density_fuel]
type = Density
block = 3
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.053
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup_function = burnup
initial_fuel_density = 10400.0
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[../]
[./fuel_elasticity_and_creep]
type = ComputeThermalExpansionEigenstrain
block = 3
stress_free_temperature = 293
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0093 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 2.0e-4 #diametral gap in m
burnup_relocation_stop = 0.031254
relocation_activation1 = 5000 #initial relocation activation power in W/m
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = '1'
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = clad_inelastic_stressUpdate
[../]
[./clad_inelastic_stressUpdate]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type =stress_relief_annealed
[../]
[./clad_thermal_eigenstrain]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_eigenstrain]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 548245008
dtmax = 1e6
dtmin = 1
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 1000
linear_iteration_ratio = 100
growth_factor = 5
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = 3
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 3
[../]
[./ave_burnup]
type = ElementAverageValue
variable = burnup
block = 3
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[]
test/tests/triso_failure/triso_1d_failure.i
[GlobalParams]
density = 10810.0 # kg/m^3
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
type = TRISO1DMesh
elem_type = EDGE3
coordinates = '0 2.485e-4 3.425e-4 3.425e-4 3.835e-4 4.195e-4 4.595e-4'
mesh_density = '6 6 0 6 8 6'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[Problem]
coord_type = RSPHERICAL
[]
[Variables]
[./disp_x]
[../]
[./temp]
initial_condition = 1346.0
[../]
[]
[Functions]
[./radial_eigenstrain]
type = ParsedFunction
value = 't*(4.52013e-4/6.0*t*t*t*t*t - 8.36313e-3/5.0*t*t*t*t + 5.67549e-2/4.0*t*t*t - 1.74247e-1/3.0*t*t + 2.62692e-1/2.0*t - 1.43234e-1)'
[../]
[./tangential_eigenstrain]
type = ParsedFunction
value = 't*(1.30457e-4/4.0*t*t*t - 2.10029e-3/3.0*t*t + 9.07826e-3/2.0*t - 3.24737e-2)'
[../]
[./fission_rate]
type = ParsedFunction
value = 7.75e19 # units of fissions/m**3
[../]
[./k_function]
type = ParsedFunction
value = '4.93e-29'
[../]
[./high_fidelity_strength_crackedIPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1000000 1000000'
[../]
[./high_fidelity_strength_crackedOPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1000000 1000000'
[../]
[./stress_correlation_crackedOPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1 1'
[../]
[./stress_correlation_crackedIPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1 1'
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./burnup]
block = fuel
initial_condition = 0.0
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
initial_condition = 0.0
[../]
[./fission_rate]
block = fuel
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
factor = 1.708707e18 # n/m^2-sec
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./fission_rate]
type = FunctionAux
variable= fission_rate
block = fuel
function = fission_rate
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = IPyC_left_boundary
slave = buffer_right_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = IPyC_left_boundary
slave = buffer_right_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
# contact_pressure_input = 10e6
# quadrature = true
[../]
[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = DirichletBC
variable = temp
boundary = exterior
value = 1346.0
[../]
# exterior and internal pressures
[./exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
component = 0
factor = 0.1e6
[../]
[./PlenumPressure] # apply gas pressure on buffer and IPyC boundaries
[./plenumPressure]
boundary = buffer_IPyC_boundary
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[Materials]
[./fission_gas_release] # Sifgr fission gas release mode
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[../]
[./stress]
type = ComputeLinearElasticStress
block = 'fuel buffer SiC'
[../]
[./strain]
type = ComputeRSphericalSmallStrain
block = 'fuel buffer SiC'
eigenstrain_names = thermal_strain
[../]
[./PyC_stress]
type = PyCCreep
block = 'IPyC OPyC'
k = k_function
nu = 0.4
flux = fast_neutron_flux
temperature = temp
density = 1880.0 # kg/m^3
[../]
[./PyC_strain]
type = ComputeRSphericalIncrementalStrain
block = 'IPyC OPyC'
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
[../]
[./PyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = 'IPyC OPyC'
fluence = fast_neutron_fluence
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[../]
[./fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./PyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[../]
[./fuel_den]
type = Density
block = fuel
disp_r = disp_x
[../]
[./buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_den]
type = Density
density = 1000 #kg/m^3
block = buffer
disp_r = disp_x
[../]
[./PyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[../]
[./PyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./PyC_den]
type = Density
density = 1880.0 # kg/m^3
block = 'IPyC OPyC'
disp_r = disp_x
[../]
[./SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_den]
type = Density
density = 3200.0 # kg/m^3
block = SiC
disp_r = disp_x
[../]
[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
# petsc_options = '-snes_mf_operator -snes_ksp_ew -ksp_monitor'
# petsc_options_iname = '-pc_type -pc_hypre_type'
# petsc_options_value = 'hypre boomeramg'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
num_steps = 10
dtmax = 2e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[./burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[../]
[./volumeTotal]
type = InternalVolume
boundary = exterior
[../]
[./volumeFuel]
type = InternalVolume
boundary = fuel_right_boundary
[../]
[./volumeGas]
type = InternalVolume
boundary = 'fuel_right_boundary IPyC_left_boundary'
addition = -5.53e-11
execute_on = 'initial timestep_end'
[../]
[./volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temp
execute_on = 'initial timestep_end'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
[../]
[./tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[../]
[./strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
characteristic_strength = 9640000
[../]
[./failure_indicator_SiC]
type = WeibullFailureIndicator
block = SiC
weibull_modulus = 6
effective_mean_strength = strength_SiC
[../]
[./strength_IPyC]
type = WeibullEffectiveMeanStrength
block = IPyC
weibull_modulus = 6
characteristic_strength = 964000
[../]
[./failure_indicator_IPyC]
type = WeibullFailureIndicator
block = IPyC
weibull_modulus = 6
effective_mean_strength = strength_IPyC
[../]
[./strength_OPyC]
type = WeibullEffectiveMeanStrength
block = OPyC
weibull_modulus = 6
characteristic_strength = 964000
[../]
[./failure_indicator_OPyC]
type = WeibullFailureIndicator
block = OPyC
weibull_modulus = 6
effective_mean_strength = strength_OPyC
[../]
[./failure_indicator_SiC_crackedIPyC]
type = WeibullFailureIndicator
block = SiC
weibull_modulus = 6
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
[../]
[./failure_indicator_SiC_crackedOPyC]
type = WeibullFailureIndicator
block = SiC
weibull_modulus = 6
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedOPyC'
[../]
[./triso_failure]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
OPyC_failure = failure_indicator_OPyC
SiC_failure = failure_indicator_SiC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure_crackedOPyC = failure_indicator_SiC_crackedOPyC
[../]
[]
[Outputs]
print_linear_residuals = true
interval = 1
csv = true
perf_graph = true
[]
assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/TSQ002_1pt5.i
# Model is of a 10 slice pellet stack in 1.5D
# Top plenum height of 295.07 mm + bot_gap_height = 1.e-3 in 2D mesh
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
displacements = disp_x
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = Layered1DMesh
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
pellet_inner_radius = 0.0
pellet_outer_radius = 0.0041275
clad_gap_width = 8.89e-5
clad_thickness = 6.35e-4
fuel_height = 3.81381
plenum_height = 0.29607
slices_per_block = 10
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 300.0 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./grain_radius]
block = fuel
initial_condition = 8.7945e-6 # ((11.6+11.2+11.2+11.1)/4)/2*1.56
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_zz]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear # reads an input file containing rod average linear power vs time
data_file = TSQ002_alhr.csv
format = columns
[../]
[./axial_peaking_factors]
# reads an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = TSQ002_alhr_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
# reads an input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
x = '-100 0 141798626 141802226' # -100 @ 101326 Pa, 0 to 141798626 @ 15.517 MPa, 141802226 @ 101326 Pa
y = '.00653 1 1 .00653'
[../]
[./flux]
type = PiecewiseLinear
data_file = TSQ002_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = TSQ002_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
# reads an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = TSQ002_clad_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[./clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 15.517e6
fuel_pin_geometry = pin_geometry
[../]
[./fuel_axial_pressure]
type = ParsedFunction
value = plenum_pressure
vars = plenum_pressure
vals = plenum_pressure
[../]
[]
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = fuel # fission rate applied to the fuel only
fission_rate = fission_rate # coupling to the fission_rate aux variable
[../]
[]
[Modules]
[./TensorMechanics]
[./Layered1DMaster]
[./fuel]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = fuel
out_of_plane_pressure = fuel_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_strain fuel_volumetric_strain'
[../]
[./clad]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = clad
out_of_plane_pressure = clad_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
[../]
[../]
[../]
[]
[Burnup]
[./burnup]
block = fuel
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
a_lower = 0.00324 # checked with paraview
a_upper = 3.81705 # checked with paraview
fuel_outer_radius = .0041275 # checked with paraview
i_enrich = '0.0348 0.9652 0 0 0 0' # 3.48% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = fuel
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises_stress
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = VonMisesStress
execute_on = timestep_end
block = fuel
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xx
index_i = 0
index_j = 0
block = clad
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xy
index_i = 0
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_zz
index_i = 2
index_j = 2
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
formulation = kinematic # #changed to match 1.5d example problem
system = constraint
penalty = 1e7 #changed to match 1.5D example problem to 1e7 from 1e9
model = frictionless
#normal_smoothing_distance = 0.1 # This option does not play nicely with 1.5D
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
#normal_smoothing_distance = 0.1 # This option does not play nicely with 1.5D
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '2'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '2'
factor = 15.517e6
function = pressure_ramp # use the pressure_ramp function defined above
displacements = 'disp_x'
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.62e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup = burnup
diameter = 0.008255
linear_heat_rate_function = q
gap = 0.0001778 #diameteral gap
relocation_activation1 = 5000
burnup_relocation_stop = 0.024
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = fuel
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate #fission_rate
grain_radius = grain_radius
initial_porosity = 0.05
burnup = burnup
gbs_model = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 20.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
# controls for linear iterations
l_max_its = 100
l_tol = 1e-3
# controls for nonlinear iterations
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 141802226 #141798626+3600
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
execute_on = 'initial linear'
fuel_pin_geometry = pin_geometry
[../]
[./clad_inner_vol]
type = LayeredInternalVolumePostprocessor
boundary = 7
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./pellet_volume]
type = LayeredInternalVolumePostprocessor
boundary = 8
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./avg_clad_temp]
type = LayeredSideAverageValuePostprocessor
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
fuel_pin_geometry = pin_geometry
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./gas_volume]
type = LayeredInternalVolumePostprocessor
boundary = 9
execute_on = 'initial linear'
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./flux_from_clad]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 5
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_fuel]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.81381 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = fuel
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = fuel
[../]
[./FCT]
type = NodalVariableValue
nodeid = 264 #coords (0.0, 2.10084)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./FCT_slice4]
type = NodalVariableValue
nodeid = 231 #coords (0.0, 1.71945)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = fuel
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
## Nodal comparison values
[./gap_slice6]
type = NodalVariableValue
variable = penetration
nodeid = 328 #coords (0.0041275, 2.48222)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 295 #coords (0.0041275, 2.10084)
[../]
[./gap_slice4]
type = NodalVariableValue
variable = penetration
nodeid = 262 #coords (0.0041275, 1.71945)
[../]
[./contact_pressure_slice6]
type = NodalVariableValue
variable = contact_pressure
nodeid = 328 #coords (0.0041275, 2.48222)
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 295 #coords (0.0041275, 2.10084)
[../]
[./contact_pressure_slice4]
type = NodalVariableValue
variable = contact_pressure
nodeid = 262 #coords (0.0041275, 1.71945)
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_1'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_fuel_radial_displacement'
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./outfile_1]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./chkfile]
type = CSV
show = 'average_burnup fis_gas_percent FCT rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
[../]
[]
assessment/LWR/validation/Riso_AN2/analysis/Riso_AN2.i
[GlobalParams]
density = 10211.0 # fuel density 93% of TD 10980 kg/m3
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
volumetric_locking_correction = false
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = riso_an2.e
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
scaling = 1e2
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 4.68e-6
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = riso_an2_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = riso_an2_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 103528800 103528810 103528900 103528910 103790440 103790450'
y = '0.0065287 1 1 0.0065287 0.0065287 0.98582 0.98582 0.0065287'
[../]
[./flux]
type = PiecewiseLinear
data_file = riso_an2_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = riso_an2_clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
add_variables = false
block = pellet_type_1
strain = FINITE
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz vonmises_stress'
eigenstrain_names = 'fuel_volumetric_swelling_eigenstrain fuel_thermal_eigenstrain fuel_relocation_eigenstrain'
temperature = temp
[../]
[./clad]
add_variables = false
block = clad
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
eigenstrain_names = 'clad_irradiation_growth_eigenstrain clad_thermal_eigenstrain'
temperature = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source_]
type = NeutronHeatSource
variable = temp
block = pellet_type_1
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.54254
a_lower = 0.002
fuel_inner_radius = 0
fuel_outer_radius = 0.0045265
i_enrich = '.0295 .9705 0 0 0 0' #2.95% enriched U235
fuel_volume_ratio = 1.0
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.9e17
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e7
model = frictionless
system = CONSTRAINT
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1.552e7 #changes to 1.53e7 for bump tests
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.31e6 #changes to 2.57e6 for bump tests
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.07
[../]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = pellet_type_1
temperature = temp
[../]
[./fuel_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
temperature = temp
thermal_expansion_coeff = 10e-6
stress_free_temperature = 293
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./swelling]
type = UO2VolumetricSwellingEigenstrain
block = pellet_type_1
burnup_function = burnup
temperature = temp
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
initial_fuel_density = 10211.0
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
diameter = 0.009053
linear_heat_rate_function = q
gap = .000208 #diametral gap in m
burnup_relocation_stop = 0.029
relocation_activation1 = 5000
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[./density_fuel]
type = Density
block = pellet_type_1
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = clad
tangent_operator = elastic
inelastic_models = clad_creep
[../]
[./clad_creep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
temperature = temp
zircaloy_material_type = stress_relief_annealed
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
[../]
[./clad_thermal_eigenstrain]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 297
temperature = temp
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_growth_eigenstrain]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./density_clad]
type = Density
block = clad
density = 6551.0
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_x disp_y'
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 103791540
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = pellet_type_1
[../]
[./ave_burnup]
type = ElementAverageValue
variable = burnup
block = pellet_type_1
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_1
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'ave_burnup average_centerline_fuel_temperature fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM073/TM/BFM073_tm.i
################################################################################
#
# Description: Calvert Cliffs BFM073
#
#
#
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFM073_power.csv
# axial peaking factor file BFM073_axial_peaking.csv
# flux boundary condition file BFM073_fast_flux.csv
################################################################################
[GlobalParams]
density = 10386.93 #94.662 %TD Assume TD = 10972.65 kg/cm3
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.31914
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 3.85e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFM073_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFM073_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 179191453 179191813'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 179191453 179191813'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFM073_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0095631 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 190.5e-6 #diametral gap in m
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10386.93
total_densification = 0.01
initial_porosity = 0.05
eigenstrain_name = fuel_volumetric_strain
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 179191813
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/IFA_431/analysis/rod2/SM/IFA_431_rod2_sm.i
[GlobalParams]
density = 10431 # initial fuel density 95% of theoretical (10980 kg/m3)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa_431_rod2_fine.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 513.3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4 5'
initial_condition = 3.5e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = bol_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factor]
type = PiecewiseBilinear
data_file = bol_axial.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.029395 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factor'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = '3 4 5'
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
factor = 1.6e12 #(n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4 5'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = '3 4 5'
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
num_radial = 81
num_axial = 21
a_lower = 0.01494
a_upper = 0.57374
fuel_inner_radius = 0.00
fuel_outer_radius = 0.005264
fuel_volume_ratio = 0.992464
i_enrich = '0.1 .9 0 0 0 0' # 10% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_fuel = 2.16e-6
roughness_clad = 6.35e-7
roughness_coef = 3.2
quadrature = true
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 513.3
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0135e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = '3 4 5'
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_density]
type = Density
block = '3 4 5'
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4 5'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = '3 4 5'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
stress_free_temperature = 297
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = '3 4 5'
burnup_function = burnup
q = q
diameter = 1.0528e-2
gap = 381.0e-6
relocation_activation1 = 5000
burnup_relocation_stop = 0.00821
tensor_mechanics_compatibility = true
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
stress_free_temperature = 297
model_irradiation_growth = true
model_thermal_expansion = false
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4 5'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 80
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# Time steps set up to match halden data
n_startup_steps = 1
start_time = 0
end_time = 50400
[./TimeStepper]
type = ConstantDT
dt = 900
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3 4 5'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4 5'
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3 4 5'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
block = '3 4 5'
burnup_function = burnup
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4 5'
outputs = exodus
[../]
[./power_lower_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.075265 0'
[../]
[./power_upper_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.50389 0'
[../]
[./upper_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 8896 # paraview global node id 8897
[../]
[./lower_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 2694 # paraviw global node id 2695
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'fission_gas_released rod_total_power upper_TC_temp lower_TC_temp'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/Riso_AN2/analysis/SM/Riso_AN2_sm.i
[GlobalParams]
density = 10211.0 # fuel density 93% of TD 10980 kg/m3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
volumetric_locking_correction = false
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = riso_an2.e
patch_size = 5 #50
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
scaling = 1e2
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 4.68e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = riso_an2_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = riso_an2_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 103528800 103528810 103528900 103528910 103790440 103790450'
y = '0.0065287 1 1 0.0065287 0.0065287 0.98582 0.98582 0.0065287'
[../]
[./flux]
type = PiecewiseLinear
data_file = riso_an2_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = riso_an2_clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source_]
type = NeutronHeatSource
variable = temp
block = pellet_type_1
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.54254
a_lower = 0.002
fuel_inner_radius = 0
fuel_outer_radius = 0.0045265
i_enrich = '.0295 .9705 0 0 0 0' #2.95% enriched U235
fuel_volume_ratio = 1.0
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.9e17
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = pellet_type_1
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e7
model = frictionless
system = CONSTRAINT
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1.552e7 #changes to 1.53e7 for bump tests
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.31e6 #changes to 2.57e6 for bump tests
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = pellet_type_1
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./density_clad]
type = Density
block = clad
density = 6551.0
[../]
[./density_fuel]
type = Density
block = pellet_type_1
[../]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.07
[../]
[./fuel_creep]
type = Elastic
block = pellet_type_1
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
stress_free_temperature = 293
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = 0.009053
q = q
gap = .000208 #diametral gap
burnup_relocation_stop = 0.029
relocation_activation1 = 5000
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = clad
temp = temp
material_type = 0 # Zry-4 Stress Relieved
cold_work_factor = 0.01 #different default in tensor mechanics
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_elastic_modulus = false
stress_free_temperature = 297
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_x disp_y'
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 103791540
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = pellet_type_1
[../]
[./ave_burnup]
type = ElementAverageValue
variable = burnup
block = pellet_type_1
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = 3
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'ave_burnup average_centerline_fuel_temperature fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/IFA_562/analysis/rod15/IFA562_15.i
# Reference document HWR-247
#Last update 11/12/2015
[GlobalParams]
density = 10321.2 # initial fuel density 94% of theoretical (10980 kg/m3)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (200 MeV per fission)
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa562_15_insulator.e
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./grain_radius]
block = 'pellet_type_2'
initial_condition = 7.75e-6 # grain radius is not reported, number from IFA-515
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = IFA562_15_alhr.csv
format = columns
[../]
[./axial_peaking_factors]
type = ParsedFunction # no axial power profile
value = '1'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = IFA562_15_coolant_temp.csv
format = columns
[../]
[./axial_clad_peaking]
type = ParsedFunction # no axial clad temp
value = '1'
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.0298 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./flux]
type = PiecewiseLinear
data_file = IFA562_15_flux.csv
format = columns
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 'pellet_type_2' # fission rate applied to the fuel only
fission_rate = fission_rate # coupling to the fission_rate aux variable
[../]
[]
[Burnup]
[./burnup]
block = 'pellet_type_2'
rod_ave_lin_pow = power_profile # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 20
a_lower = 0.01101 # Checked with paraview
a_upper = 0.45351 # Checked with paraview
fuel_inner_radius = 0.001 # Checked with paraview
fuel_outer_radius = 0.0029575 # Checked with paraview
i_enrich = '0.13 0.87 0 0 0 0' # 13% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
axial_power_profile = axial_peaking_factors
function = flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 'pellet_type_2'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = 1
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
formulation = kinematic
system = constraint
normalize_penalty = true
penalty = 1e14
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact_clad]
# thermal conatact between the fuel outer radius and the clad inner wall
type = GapHeatTransferLWR
variable = temp
master = 5 # clad
slave = 10 # fuel & insulators
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
roughness_clad = 1e-6
roughness_fuel = 2e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
quadrature = true
normal_smoothing_distance = 0.1
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.40e6 # coolant pressure not reported, using the number from IFA-515
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 'pellet_type_2'
burnup = burnup
temp = temp
[../]
[./fuel_thermal]
type = ThermalFuel
block = 'pellet_type_2'
temp = temp
thermal_conductivity_model = NFIR # NFIR
burnup = burnup
initial_porosity = 0.06
[../]
[./insulator_thermal]
type = ThermalFuel
block = 'pellet_type_1 pellet_type_3'
temp = temp
thermal_conductivity_model = NFIR # NFIR
burnup_function = 0
initial_porosity = 0.06
[../]
[./fuel_creep]
type = Elastic
block = 'pellet_type_2'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
# formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 'pellet_type_2'
burnup = burnup
diameter = 0.005915
q = q
gap = 1.0e-4
relocation_activation1 = 5000
burnup_relocation_stop = 0.02524
[../]
[./insulator_creep]
type = Elastic
block = 'pellet_type_1 pellet_type_3 '
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
# formulation = NonlinearRZ
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_thermal_expansion = true
model_irradiation_growth = true
# formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = 'pellet_type_2'
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
initial_porosity = 0.06
transient_option = 2
[../]
[./clad_density]
type = Density
block = '1'
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 50
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
# Time steps set up to match halden data
start_time = -100
end_time = 84612900
dtmax = 1e6
dtmin = 1
# control for adaptive time steping
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 1000
# iteration_window = 2
growth_factor = 10
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
outputs = exodus
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
outputs = exodus
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 'pellet_type_2'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 'pellet_type_2'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 'pellet_type_2'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 'pellet_type_2'
outputs = exodus
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 'pellet_type_2'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.4425 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 'pellet_type_2'
variable = fission_rate
[../]
[./average_rod_burnup]
type = ElementAverageValue
block = 'pellet_type_2'
variable = burnup
[../]
[./FCT_ave]
type = SideAverageValue
boundary = 13
variable = temp
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_rod_burnup fis_gas_released FCT_ave rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/FUMEXII_Regate/analysis/SM/Regate_discrete_sm.i
[GlobalParams]
density = 10360
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = regate_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.675e-6
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_radial]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = regate_linear_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = regate_axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 98406792 98407164 98407291 98407445 99578736 99580326'
y = '0.00654 1 1 0.00654 0.00654 0.839 0.839 0.00654'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = regate_cladding_temperature.csv
scale_factor = 1
format = columns
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
data_file = regate_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
factor = 1
function = fast_neutron_flux_function
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
index = 2
block = 1
execute_on = timestep_end
[../]
[./creep_strain_radial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 0
block = 1
execute_on = timestep_end
[../]
[./elastic_strain_hoop]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_hoop
index = 2
block = 1
execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00324
a_upper = 0.4444
fuel_inner_radius = 0
fuel_outer_radius = 0.004096
RPF = RPF
i_enrich = '0.04487 0.955513 0 0 0 0' # 4.487% Enriched U-235
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = PENALTY
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_wall_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.5e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
initial_porosity = 0.05246
block = 3
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.008192
gap = 1.68e-5
q = q
relocation_activation1 = 5000
burnup_relocation_stop = 0.015
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = clad
temp = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
constitutive_model = combined
model_irradiation_growth = true
model_thermal_expansion = true
fast_neutron_fluence = fast_neutron_fluence
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./combined]
type = CombinedCreepPlasticity
block = clad
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = clad
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./plasticity]
type = IsotropicPlasticity
block = clad
temp = temp
yield_stress = 500e6
hardening_constant = 2.5e9
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1e-4
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 99580326
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
sync_times = '98407291'
[./console]
type = Console
max_rows = 30
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/UFE019/SM/UFE019.i
################################################################################
#
# Description: Calvert Cliffs UFE019
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file UFE019_power.csv
# axial peaking factor file UFE019_axial_peaking.csv
# flux boundary condition file UFE019_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10396.59 #94.75 %TD Assume TD = 10972.65 kg/m3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.29773
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.2e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = UFE019_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = UFE019_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 140582036 140582396'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 140582036 140582396'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = UFE019_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155
i_enrich = '0.0398 .9602 0 0 0 0' # 3.98% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elasticity_and_creep]
type = Elastic #CreepUO2
block = 3
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.0095631 # fuel pellet diamter in meters
gap = 190.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .029 # turn off relocation
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 140582396
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/IFA_636/analysis/IFA_636_solid_swell/IFA_636_solid_swell.i
[GlobalParams]
density = 10551.78
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ../IFA_636/ifa636.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = ../IFA_636/IFA_636_power_history.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = ../IFA_636/IFA_636_axial_peaking.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 213162351 213260400'
y = '0.0307 1 1 0.0307'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = ../IFA_636/IFA_636_clad_bc.csv
format = columns
scale_factor = 1
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
factor = 1.6e12
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = total_swell
execute_on = timestep_end
block = 3
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00324000
a_upper = 0.39524
fuel_volume_ratio = 1
fuel_inner_radius = 0.0
fuel_outer_radius = 0.0040975
i_enrich = '0.0425 .9575 0 0 0 0'
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.33e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
save_in = 'saved_x saved_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
solid_factor = 5.0193e-5
save_solid_swell = true
save_densification = true
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
initial_porosity = 0.039
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.008195
gap = 156.0e-6
q = q
burnup_relocation_stop = 0.029
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
initial_porosity = 0.039
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 213260400
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 15
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 3
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[./disp_y_node_zero]
type = NodalVariableValue
nodeid = 0
variable = disp_y
[../]
[./disp_y_node_one]
type = NodalVariableValue
nodeid = 1
variable = disp_y
[../]
[./disp_y_node_eight]
type = NodalVariableValue
nodeid = 8
variable = disp_y
[../]
[./disp_y_node_thirteen]
type = NodalVariableValue
nodeid = 13
variable = disp_y
[../]
[./disp_y_node_18]
type = NodalVariableValue
nodeid = 18
variable = disp_y
[../]
[./disp_y_node_23]
type = NodalVariableValue
nodeid = 23
variable = disp_y
[../]
[./disp_y_node_28]
type = NodalVariableValue
nodeid = 28
variable = disp_y
[../]
[./disp_y_node_33]
type = NodalVariableValue
nodeid = 33
variable = disp_y
[../]
[./disp_y_node_38]
type = NodalVariableValue
nodeid = 38
variable = disp_y
[../]
[./disp_y_node_43]
type = NodalVariableValue
nodeid = 43
variable = disp_y
[../]
[./disp_y_node_48]
type = NodalVariableValue
nodeid = 48
variable = disp_y
[../]
[./disp_y_node_53]
type = NodalVariableValue
nodeid = 53
variable = disp_y
[../]
[./fuel_disp_y_average]
type = AverageNodalVariableValue
boundary = 21
variable = disp_y
[../]
[./volumetric_strain]
type = ElementAverageValue
block = 3
variable = deltav_v0_swe
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fis_gas_released fuel_disp_y_average rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
test/tests/standard_lwr_outputs_action/two_pellet_only.i
[GlobalParams]
density = 10431.0
initial_porosity = 0.05
energy_per_fission = 3.2e-11 # J/fission
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = two_pellet_only.e
patch_size = 10
patch_update_strategy = auto
[]
[Variables]
[./temperature]
initial_condition = 293
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
x = '0 100 1e8'
y = '0 20000 20000'
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
add_variables = true
strain = SMALL
incremental = true
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temperature
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = 'pellet_type_1 pellet_type_2'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_upper = 0.01496
a_lower = 0.00226
fuel_inner_radius = 0.0
fuel_outer_radius = 0.005305
RPF = RPF
[../]
[]
[BCs]
[./fuel_wall_temp]
type = DirichletBC
variable = temperature
boundary = '10'
value = 673
[../]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 'pellet_type_1 pellet_type_2'
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'pellet_type_1 pellet_type_2'
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 'pellet_type_1 pellet_type_2'
[../]
[./fission_gas_release]
type = Sifgrs
block = 'pellet_type_1 pellet_type_2'
temp = temperature
burnup_function = burnup
[../]
[./fuel_density]
type = Density
block = 'pellet_type_1 pellet_type_2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
dtmax = 200
dtmin = 200
end_time = 800
[]
[StandardLWRFuelRodOutputs]
mechanics_system = tensor
rod_component = fuel
fuel_pellet_blocks = 'pellet_type_1'
[]
[Outputs]
perf_graph = true
exodus = false
color = false
csv = true
[]
test/tests/standard_lwr_outputs_action/annular_mini_rod.i
[GlobalParams]
density = 10431.0
initial_porosity = 0.05
energy_per_fission = 3.2e-11 # J/fission
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = annular_mini_rodlet.e
[]
[Variables]
[./temperature]
initial_condition = 580.0
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0.000000 10800'
y = '0.000000 16404.200000' #LHR5
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
x = '0.00324 3.77797'
y = '0.000000 10800'
z = '1.0 1.0 1.0 1.0'
axis = 1
scale_factor = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
scale_factor = 1
x = '0 10800.0'
y = '0.00651 1.0'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
add_variables = true
strain = SMALL
incremental = true
[../]
[./clad]
block = clad
add_variables = true
strain = SMALL
incremental = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temperature
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
block = pellet_type_1
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 6
num_axial = 2
a_lower = 0.00351
a_upper = 0.02723
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 1.0
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '9 13'
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature ## generated by the standard outputs action
volume = plenum_volume ## generated by the standard outputs action
material_input = fission_gas_released ## generated by the standard outputs action
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temperature
inlet_temperature = 580
inlet_pressure = 15.5e6
inlet_massflux = 3800
rod_diameter = 0.948e-2
rod_pitch = 1.26e-2
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeFiniteStrainElasticStress
block = clad
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temperature
burnup_function = burnup
gbs_model = false
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Postprocessors]
[./uncorrected_pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./uncorrected_plenum_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = 0
end_time = 200
dtmax = 200
dtmin = 200
[]
[StandardLWRFuelRodOutputs]
mechanics_system = tensor
rod_component = both
[]
[Outputs]
exodus = false
color = false
csv = true
perf_graph = true
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_second_stage.i
# @Requirement F2.40
# This test is for evaluating the second stage of the FGR process in the Sifgrs fission gas behavior model. The second stage involves the calculation of the gas behavior at grain boundaries and release to the fuel rod free volume.
# Sifgrs calculates the grain-boundary gas bubble kinetics, including bubble growth and coalescence driven by gas atoms and vacancies inflow at the bubbles, and release of a fraction of the grain-boundary gas after grain-boundary saturation. The saturation condition reads Fc = 0.5, with Fc being the fractional coverage of grain boundary surface by bubbles.
# This test is aimed at demonstrating how FGR commences upon attainment of the saturation condition (which occurs for this case after 8E+06 s), and how the saturation condition Fc = 0.5 is maintained from that moment on (see also attached file regression_tests_sifgrs.xlsx).
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = '1400'
[../]
[./Fiss_func]
type = ParsedFunction
value = '1.e19'
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 1400
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = 'initial linear'
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[../]
[]
[Materials]
[./UO2]
type = HeatConductionMaterial
block = 1
temp = T
thermal_conductivity = 1.0
specific_heat = 1.0
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 1
temp = T
fission_rate = fission_rate
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
end_time = 5e7
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
assessment/LWR/validation/Riso_GE7_ZX115/analysis/Riso_GE7_smeared_tm.i
[GlobalParams]
displacements = 'disp_x disp_y'
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = ge7_smeared.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
scaling = 1e3
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 6e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = riso_ge7_zx115_linear_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = riso_ge7_zx115_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 161748936 161756676 161813271 161814651'
y = '.013995 1 1 .994475 .994475 .013995'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = riso_ge7_zx115_clad_temperature.csv
format = columns
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
data_file = riso_ge7_zx115_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
add_variables = false
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
[../]
[./clad]
block = clad
add_variables = false
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = pellet_type_1
fission_rate = fission_rate
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
density = 10431.0
num_radial = 80
num_axial = 11
a_upper = 0.76446
a_lower = 0.01494
fuel_inner_radius = 0
fuel_outer_radius = 0.005205
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
factor = 1
function = fast_neutron_flux_function
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
penalty = 1e14
formulation = penalty
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_wall_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.24e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 0.29e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup = burnup
diameter = 0.01041
linear_heat_rate_function = q
gap = 220.0e-6 # diametral gap
relocation_activation1 = 5000
burnup_relocation_stop = 0.03
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_1
burnup_function = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
density = 10431.0
block = pellet_type_1
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 161756676 # End of base irradiation
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = SEVENTH
[../]
[]
[Postprocessors]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block =pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = pellet_type_1
variable = fission_rate
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.74952 # rod height
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = pellet_type_1
fission_rate = fission_rate
variable = temp
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet_type_1
variable = burnup
[../]
[./max_penetration]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = penetration
execute_on = 'initial timestep_end'
[../]
[./min_penetration]
type = NodalExtremeValue
block = pellet_type_1
value_type = min
variable = penetration
execute_on = 'initial timestep_end'
[../]
[./max_contact_pressure]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = contact_pressure
[../]
[./min_contact_pressure]
type = NodalExtremeValue
block = pellet_type_1
value_type = min
variable = contact_pressure
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = pellet_type_1
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
# Nodal comparisons
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 14796 #coords (0.005205, 0.340252)
use_displaced_mesh = true
[../]
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 14796 #coords (0.005205, 0.340252)
use_displaced_mesh = true
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 14825 #coords (0.0, 0.340252)
execute_on = 'initial timestep_end'
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = TENSOR
fuel_pellet_blocks = 'pellet_type_1'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
sync_times = '161756676 161760846 161765136 161765976 161767595.9 161767655.9 161767716.1 161767775.9 161767839 161767896.1 161768000.3 161770475.9 161770583.9 161771136.1 161771189.8 161772036.1 161772083.5 161772936.1 161772958.2 161773056 161773093.9 161773836.1 161773889.8 161774736.1 161774758.2 161796696.1 161796702.4 161797236.1 161797283.5 161797356 161797523.4 161797716 161797788.6 161797835.9 161797876.9 161797956.1 161798019.3 161812536.1 161812595.9 161812716.1 161812836 161813270.9'
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
show_material_props = true
[]
assessment/LWR/validation/HbepR1/analysis/A184/SM/HbepR1_A184_sm.i
################################################################################
#
# Description: HbepR1 Rod 30 - Rod ID A184
#
#
#
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file A184-power.csv
# axial peaking factor file A184-axial-profile.csv
# flux boundary condition file A184-axial-tempprofile.csv
#
# Revision History:
# Last update: 5/20/2016
#
################################################################################
[GlobalParams]
density = 10490 #94.882 %TD Assume TD = 10972.65 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.95e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .0049695
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.68
ny_cl = 3
clad_top_gap_height = 0.24682
clad_gap_width = 1.005e-4
elem_type = QUAD8
patch_size = 100 # 1000 lowering this and setting the strategy to auto will reduce the amount of memory required to run the job.
patch_update_strategy = iteration#auto
partitioner = centroid # this will help with run time
centroid_partitioner_direction = y # this will help with run time
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 273 #K
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5.148e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = A184-power.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = A184-axial-profile.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '-100 0 166323600 166327200' #
y = '0.014429 1 1 0.014429'
[../]
[./temp_ramp]
type = PiecewiseBilinear
data_file = A184-axial-tempprofile.csv
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3 # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate # coupling to the fission_rate aux variable
save_in = saved_t
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
factor = 1.68664e13 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.68478
fuel_inner_radius = 0.0
fuel_outer_radius = .0049695 # m
i_enrich = '0.0233 .9767 0 0 0 0'
RPF = RPF
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 1.1e-6
roughness_clad = 3.5e-7
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = '12'
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 # Pa
function = pressure_ramp
[../]
[../]
[./coolant_temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = temp_ramp
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9 # clad interior + fuel exterior
initial_pressure = 0.375e6 # Pa
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = plenum_temperature # coupling to post processor to get gas temperature approximation
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
total_densification = .0043
tensor_mechanics_compatibility = true
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
initial_porosity = 0.04
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_and_creep]
type = Elastic
dep_matl_props = deltav_v0_bd
block = 3
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.00507
clad_outer_radius = 0.005865
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.00939 # fuel pellet diamter in meters
gap = 100.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .047 # turn off relocation
relocation_activation1 = 5000
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
stress_free_temperature = 273
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
material_type = 1
youngs_modulus = 7.5e10
poissons_ratio = 0.3
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[]
[UserObjects]
[./integral_burnup] # Added the computation of the average fuel rod burnup
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 166327200
dtmax = 1e6
dtmin = 0.1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
# Clad postprocessor (The rest are created with StandardLWRFuelRodOutputs)
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
[../]
[./clad_fuel_gap]
type = NodalMaxValue
variable = penetration
boundary = 10
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
interval = 1
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Riso_GE7_ZX115/analysis/Riso_GE7_smeared.i
[GlobalParams]
density = 10431.0
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = ge7_smeared.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
scaling = 1e3
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 6e-6
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_elastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_elastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = riso_ge7_zx115_linear_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = riso_ge7_zx115_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 161748936 161756676 161813271 161814651'
y = '.013995 1 1 .994475 .994475 .013995'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = riso_ge7_zx115_clad_temperature.csv
format = columns
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
data_file = riso_ge7_zx115_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = pellet_type_1
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.76446
a_lower = 0.01494
fuel_inner_radius = 0
fuel_outer_radius = 0.005205
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
factor = 1
function = fast_neutron_flux_function
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises_stress]
type = MaterialTensorAux
tensor = stress
variable = vonmises_stress
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
block = clad
variable = creep_strain_hoop
index = 2
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./total_hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_hoop_strain
index = 2
execute_on = timestep_end
block = clad
[../]
[./total_axial_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_axial_strain
index = 1
execute_on = timestep_end
block = clad
[../]
[./hoop_elastic_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_elastic_strain
index = 2
execute_on = timestep_end
block = clad
[../]
[./axial_elastic_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_elastic_strain
index = 1
execute_on = timestep_end
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
penalty = 1e14
formulation = penalty
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_wall_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.24e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 0.29e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = pellet_type_1
burnup_function = burnup
temp = temp
[../]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = pellet_type_1
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
stress_free_temperature = 293.0
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
model_volumetric_scaling = false
burnup_function = burnup
diameter = 0.01041
gap = 220.0e-6 # diametral gap
q = q
relocation_activation1 = 5000
burnup_relocation_stop = 0.03
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./clad_solid_mechanics]
type = MechZry
block = clad
temp = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
stress_free_temperature = 293.0
model_irradiation_growth = true
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
model_thermal_expansion = false
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 161756676 # End of base irradiation
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 1e6
force_step_every_function_point = true
[../]
[./Quadrature]
order = SEVENTH
[../]
[]
[Postprocessors]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block =pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = pellet_type_1
variable = fission_rate
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.74952 # rod height
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = pellet_type_1
burnup_function = burnup
variable = temp
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet_type_1
variable = burnup
[../]
[./max_penetration]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = penetration
execute_on = 'initial timestep_end'
[../]
[./min_penetration]
type = NodalExtremeValue
block = pellet_type_1
value_type = min
variable = penetration
execute_on = 'initial timestep_end'
[../]
[./max_contact_pressure]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = contact_pressure
[../]
[./min_contact_pressure]
type = NodalExtremeValue
block = pellet_type_1
value_type = min
variable = contact_pressure
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = pellet_type_1
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
# Nodal comparisons
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 14796 #coords (0.005205, 0.340252)
use_displaced_mesh = true
[../]
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 14796 #coords (0.005205, 0.340252)
use_displaced_mesh = true
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 14825 #coords (0.0, 0.340252)
execute_on = 'initial timestep_end'
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = 'pellet_type_1'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
sync_times = '161756676 161760846 161765136 161765976 161767595.9 161767655.9 161767716.1 161767775.9 161767839 161767896.1 161768000.3 161770475.9 161770583.9 161771136.1 161771189.8 161772036.1 161772083.5 161772936.1 161772958.2 161773056 161773093.9 161773836.1 161773889.8 161774736.1 161774758.2 161796696.1 161796702.4 161797236.1 161797283.5 161797356 161797523.4 161797716 161797788.6 161797835.9 161797876.9 161797956.1 161798019.3 161812536.1 161812595.9 161812716.1 161812836 161813270.9'
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
show_material_props = true
[]
assessment/LWR/validation/RE_Ginna_Rodlets/analysis/RE_Ginna_rodlet-2/RE_Ginna_rodlet_2.i
[GlobalParams]
density = 10321.2 #94% TD = 10980
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = rodlet2_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 11e-6 # 2D grain radius 11.0e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = rodlet2_power.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = rodlet2_axial_peaking.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 115266861.8 115267221.8'
y = '0.006533 1 1 0.006533'
[../]
[./flux]
type = PiecewiseLinear
data_file = rodlet2_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_temp_bc]
type = PiecewiseBilinear
data_file = rodlet2_clad_bc.csv
axis = 1
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises_stress]
type = MaterialTensorAux
tensor = stress
variable = vonmises_stress
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_zz]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_zz
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00324
a_upper = 0.545022
fuel_outer_radius = 0.0044515
i_enrich = '0.0352 .9648 0 0 0 0' # 3.52% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.1e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
stress_free_temperature = 293.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
model_volumetric_scaling = false # this defaults to true and was set to false for SM-TM comparisons
burnup_function = burnup
diameter = 0.008903
gap = 1.9e-4
q = q
burnup_relocation_stop = 0.0186
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
stress_free_temperature = 293.0
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 115267221.8
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = 1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = 1
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = '3'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Tribulation/analysis/BN1X4/BN1X4.i
[GlobalParams]
density = 10373 # 94.747 % TD assuming TS 10980
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
initial_porosity = 0.05526
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
type = SmearedPelletMesh
dim = 2
pellet_quantity = 1
pellet_height = 0.9976
pellet_outer_radius = 0.00402
pellet_mesh_density = customize
nx_p = 11
ny_p = 243
clad_bot_gap_height = 0.001
clad_gap_width = 100.0e-6
clad_thickness = 0.00063
clad_mesh_density = customize
nx_c = 4
ny_c = 249
top_bot_clad_height = 0.00224
clad_top_gap_height = 0.0934
elem_type = QUAD8
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 8.58e-6 # 2D grain radius 11e-6/2*1.56
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseBilinear
data_file = BN1X4_power.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 34462368 34548768 34635168 90055584 90141984'
y = '0.0073804 1 1 0.0073804 1 1 0.0073804'
[../]
[./flux]
type = PiecewiseBilinear
data_file = BN1X4_fast_flux.csv
axis = 1
[../]
[./clad_temp_bc]
type = PiecewiseBilinear
data_file = BN1X4_clad_temp.csv
axis = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./timestep_function]
type = PiecewiseLinear
data_file = BN1X4_time_function.csv
format = columns
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
i_enrich = '0.0825 0.9175 0 0 0 0' # 8.25% enriched U-235
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 0.3e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 13.729e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.96133e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
q = power_history
burnup_relocation_stop = 0.025
relocation_activation1 = 5000
fuel_pin_geometry = pin_geometry
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 0
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 60
l_tol = 8e-3
nl_max_its = 30
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 90141984
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 20
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = timestep_function
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[./fuel_max_temp]
type = ElementExtremeValue
block = 3
variable = temp
[../]
[./fuel_average_temp]
type = ElementAverageValue
block = 3
variable = temp
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage fuel_average_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
assessment/LWR/validation/Riso_GEm_STR013/analysis/SM/Riso_GEm_STR013.i
[GlobalParams]
density = 10511.0 #Assuming a TD of 10980.
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = riso_gem.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 9.5e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = riso_gem_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = riso_gem_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 91454400 91454410 91458000 91458010 91716840 91716850'
y = '0.0138 1 1 0.0138 0.0138 0.994 0.994 0.0138'
[../]
[./flux]
type = PiecewiseLinear
data_file = riso_gem_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = riso_gem_clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = pellet_type_1
burnup_function = burnup
fraction = 0.95238095
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
density = 10511.0
num_radial = 80
num_axial = 11
a_upper = 0.28433
a_lower = 0.01339
fuel_inner_radius = 0
fuel_outer_radius = 0.005445
fuel_volume_ratio = 0.9993
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
axial_power_profile = axial_peaking_factors
function = flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = pellet_type_1
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = clad
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = clad
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = clad
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = clad
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 1.6e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 91454410
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.24e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.7e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 91454410
refab_pressure = 4.9e5
refab_temperature = 273.0
refab_volume = 7.2e-6
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = pellet_type_1
burnup_function = burnup
temp = temp
[../]
[./density_clad]
type = Density
block = clad
density = 6551.0
[../]
[./density_fuel]
type = Density
block = pellet_type_1
density = 10511.0
[../]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic
block = pellet_type_1
temp = temp
youngs_modulus = 2.e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
stress_free_temperature = 297
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = 0.01089
q = q
gap = 2.286e-4
burnup_relocation_stop = 0.029
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = clad
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
stress_free_temperature = 297
model_irradiation_growth = true
model_thermal_expansion = false
formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.0427
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 91715050
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
force_step_every_function_point = true
timestep_limiting_function = power_profile
optimal_iterations = 15
iteration_window = 4
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='pellet_type_1'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = pellet_type_1
[../]
[./input_rod_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = pellet_type_1
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
[./chkfile]
type = CSV
show = 'ave_fission_rate average_centerline_fuel_temperature fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/benchmark/AREVA_idealized_case/analysis/AREVA_idealized_case_tm.i
[GlobalParams]
density = 10431.0 #95% TD (TD = 10980)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = AREVA_idealized_case_mesh_coarse.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 7.8e-6
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = power_history.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./average_fast_flux]
type = PiecewiseLinear
data_file = average_fast_flux.csv
scale_factor = 1
format = columns
[../]
[./axial_fast_flux_peaking_factors]
type = PiecewiseBilinear
data_file = axial_fast_flux_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./fast_flux]
type = CompositeFunction
functions = 'average_fast_flux axial_fast_flux_peaking_factors'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.0065371 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_upper = 3.65324
a_lower = 0.00324
fuel_inner_radius = 0.0
fuel_outer_radius = 0.0040425
i_enrich = '.045 .955 0 0 0 0' # 4.5% enriched U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = 3
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = fast_flux
block = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
penalty = 1e7
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.6e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 555
inlet_pressure = 15.5e6
inlet_massflux = 3700
rod_diameter = 9.5e-3
rod_pitch = 1.43e-2 # ASSUMED: NOT SPECIFIED
linear_heat_rate = power_profile
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup = burnup
diameter = 0.008255
linear_heat_rate_function = q
gap = 0.0001778 #diameteral gap
relocation_activation1 = 5000
burnup_relocation_stop = 0.024
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius # coupled grain radius
gbs_model = true
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = 1
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 100.0
[../]
[./limitx]
type = MaxIncrement
variable = disp_x
max_increment = 1e-5
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 1e-3
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
dtmax = 1e6
dtmin = 1
end_time = 185056065
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 20
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
force_step_every_function_point = true
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
outputs = exodus
[../]
[./int_flux_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./int_flux_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./average_fissionrate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = '3'
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = 1
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
assessment/LWR/validation/Super_Ramp/analysis/PK62/PK62.i
[GlobalParams]
density = 10420.0
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = false
initial_porosity = 0.049
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temperature'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 10
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 29
pellet_height = 0.010862
pellet_outer_radius = 4.57e-3
pellet_mesh_density = customize
nx_p = 11
ny_p = 84
clad_mesh_density = customize
nx_c = 4
ny_c = 84
clad_gap_width = 75.0e-6
clad_thickness = 0.725e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 15.5e-3
clad_top_gap_height = 32.5e-3
ny_cu = 3
ny_cl = 3
elem_type = QUAD8
[]
[Variables]
[./temperature]
initial_condition = 293.15
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = alhr_history.csv
format = columns
[../]
[./axial_power_factors]
type = PiecewiseBilinear
data_file = axial_lhr_factors.csv
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_power_factors'
[../]
[./clad_out_temp]
type = PiecewiseLinear
data_file = temp_outer_clad_history.csv
format = columns
[../]
[./axial_temp_factors]
type = PiecewiseBilinear
data_file = axial_temp_factors.csv
axis = 1
[../]
[./clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = pressure_coolant.csv
format = columns
[../]
[./fast_flux]
type = PiecewiseLinear
data_file = fast_neutron_flux.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = 3
initial_condition = 17.16e-6
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
block = 3
initial_condition = 0.049
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain
fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy
stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz
creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx
strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temperature
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temperature
execute_on = linear
[../]
[./porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
a_lower = 0.0165
a_upper = 0.331498
number_pellets = 29
execute_on = initial
[../]
[./oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./layered_average_contact_pressure]
type = SpatialUserObjectAux
block = 3
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = 3
execute_on = nonlinear
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 80
num_axial = 20
i_enrich = '0.02985 0.97015 0.0 0.0 0.0 0.0'
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1.0e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
formulation = KINEMATIC
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temperature
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = 5
outer_surfaces = 10
temp = temperature
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temperature
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.25e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temperature
burnup_function = burnup
initial_fuel_density = 10420
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = 3
temperature = temperature
burnup_function = burnup
grain_radius = 17.16e-6
[../]
[./fuel_stress]
type = ComputeSmearedCrackingStress
block = 3
cracking_stress = 2.5e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
linear_heat_rate_function = power_history
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = true
max_relocation_recovery_fraction = 0.5
relocation_scaling_factor = 1
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
output_properties = 'relocation_strain recovered_relocation_strain'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
diff_coeff_option = 3
transient_option = 2
res_param_option = 0
temp = temperature
fission_rate = fission_rate
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6550.0
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temperature
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
fuel_pin_geometry = pin_geometry
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-4
nl_max_its = 30
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
start_time = 0.0
n_startup_steps = 1
end_time = 76630068.0
dtmax = 1.0e6
dtmin = 1.0
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 15
iteration_window = 3
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./avg_gap_conductance]
type = SideAverageValue
boundary = 10
variable = gap_cond
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temperature
nodeid = 3110 #Mesh dependent!
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = strain_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = stress_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 3141 # Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./total_rod_integral_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = 3
[../]
[./total_rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.376004 # rod height
[../]
[./vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = TENSOR
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage central_fuel_temp midplane_contact_pressure'
execute_on = 'FINAL'
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temperature
fuel_pin_geometry = pin_geometry
number_pellets = 29
execute_on = 'initial linear'
[../]
[./layered_average_contact_pressure]
type = LayeredSideAverage
variable = contact_pressure
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[../]
[]
assessment/LWR/validation/IFA_431/analysis/rod3/IFA_431_rod3.i
[GlobalParams]
density = 10431 # initial fuel density 95% of theoretical (10980 kg/m3)
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa_431_rod3_fine.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 513.3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4 5'
initial_condition = 3.5e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = bol_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factor]
type = PiecewiseBilinear
data_file = bol_axial.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.029395 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factor'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[Modules/TensorMechanics/Master]
[./fuel]
block = '3 4 5'
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = '3 4 5'
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
factor = 1.6e12 #(n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4 5'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hydrostatic_stress]
block = '3'
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = hydrostatic
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = '3 4 5'
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
num_radial = 81
num_axial = 21
a_lower = 0.01494
a_upper = 0.57374
fuel_inner_radius = 0.00
fuel_outer_radius = 0.005429
fuel_volume_ratio = 0.992916
i_enrich = '0.1 .9 0 0 0 0' # 10% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_fuel = 2.16e-6
roughness_clad = 6.35e-7
roughness_coef = 3.2
quadrature = true
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = PresetBC
boundary = '1 2 3'
variable = temp
value = 513.3
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0135e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = '3 4 5'
thermal_conductivity_model = NFIR
initial_porosity = 0.05
temp = temp
burnup_function = burnup
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4 5'
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = '3 4 5'
temperature = temp
[../]
[./fuel_elasticity_and_creep]
type = ComputeThermalExpansionEigenstrain
block = '3 4 5'
temperature = temp
stress_free_temperature = 297
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4 5'
burnup_function = burnup
diameter = 1.0858e-2
gap = 51.0e-6
linear_heat_rate_function = q
burnup_relocation_stop = 0.00821
relocation_activation1 = 5000
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_inelastic_stressUpdate] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type =stress_relief_annealed
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
temperature = temp
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
[../]
[./clad_inelastic_stress] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = clad_inelastic_stressUpdate
[../]
[./clad_thermal_eigenstrain] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ComputeThermalExpansionEigenstrain
block = 1
temperature = temp
stress_free_temperature = 297
eigenstrain_name = 'clad_thermal_eigenstrain'
thermal_expansion_coeff = 5.0e-6
[../]
[./clad_irradiation_eigenstrain] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '3 4 5'
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4 5'
burnup = burnup
temperature = temp
initial_fuel_density = 10431
total_densification = .0043
#incremental_form = true
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4 5'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 80
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# Time steps set up to match halden data
n_startup_steps = 1
start_time = 0
end_time = 50400
[./TimeStepper]
type = ConstantDT
dt = 900
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3 4 5'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4 5'
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3 4 5'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
block = '3 4 5'
burnup_function = burnup
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4 5'
outputs = exodus
[../]
[./power_lower_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.075265 0'
[../]
[./power_upper_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.50389 0'
[../]
[./upper_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 8896 # paraview global node id 8897
[../]
[./lower_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 2694 # paraviw global node id 2695
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = TENSOR
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'fission_gas_released rod_total_power upper_TC_temp lower_TC_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'temp disp_x disp_y'
show_var_residual_norms = true
[]
assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/RefinementStudy/TSQ002_1pt5_twentyslice.i
# Model is of a 20 slice pellet stack in 1.5D
# Top plenum height of 295.07 mm + bot_gap_height = 1.e-3 in 2D mesh
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
displacements = disp_x
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = Layered1DMesh
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
pellet_inner_radius = 0.0
pellet_outer_radius = 0.0041275
clad_gap_width = 8.89e-5
clad_thickness = 6.35e-4
fuel_height = 3.81381
plenum_height = 0.29607
slices_per_block = 20
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 300.0 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./grain_radius]
block = fuel
initial_condition = 8.7945e-6 # ((11.6+11.2+11.2+11.1)/4)/2*1.56
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_zz]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear # reads an input file containing rod average linear power vs time
data_file = TSQ002_alhr.csv
format = columns
[../]
[./axial_peaking_factors]
# reads an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = TSQ002_alhr_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
# reads an input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
x = '-100 0 141798626 141802226' # -100 @ 101326 Pa, 0 to 141798626 @ 15.517 MPa, 141802226 @ 101326 Pa
y = '.00653 1 1 .00653'
[../]
[./flux]
type = PiecewiseLinear
data_file = TSQ002_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = TSQ002_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
# reads an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = TSQ002_clad_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[./clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 15.517e6
fuel_pin_geometry = pin_geometry
[../]
[./fuel_axial_pressure]
type = ParsedFunction
value = plenum_pressure
vars = plenum_pressure
vals = plenum_pressure
[../]
[]
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = fuel # fission rate applied to the fuel only
fission_rate = fission_rate # coupling to the fission_rate aux variable
[../]
[]
[Modules]
[./TensorMechanics]
[./Layered1DMaster]
[./fuel]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = fuel
out_of_plane_pressure = fuel_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_strain fuel_volumetric_strain'
[../]
[./clad]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = clad
out_of_plane_pressure = clad_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
[../]
[../]
[../]
[]
[Burnup]
[./burnup]
block = fuel
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
fuel_pin_geometry = pin_geometry
i_enrich = '0.0348 0.9652 0 0 0 0' # 3.48% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = fuel
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises_stress
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = VonMisesStress
execute_on = timestep_end
block = fuel
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xx
index_i = 0
index_j = 0
block = clad
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xy
index_i = 0
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_zz
index_i = 2
index_j = 2
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
formulation = kinematic
system = constraint
penalty = 1e7
model = frictionless
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '2'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '2'
factor = 15.517e6
function = pressure_ramp # use the pressure_ramp function defined above
displacements = 'disp_x'
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.62e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup = burnup
linear_heat_rate_function = q
fuel_pin_geometry = pin_geometry
relocation_activation1 = 5000
burnup_relocation_stop = 0.024
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = fuel
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
initial_porosity = 0.05
burnup = burnup
gbs_model = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 7.5e10
poissons_ratio = 0.3
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 20.0
variable = temp
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = ' lu'
line_search = 'none'
# controls for linear iterations
l_max_its = 100
l_tol = 1e-4 #8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 141802226 #141798626+3600
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
force_step_every_function_point = true
timestep_limiting_function = power_history
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
execute_on = 'initial linear'
fuel_pin_geometry = pin_geometry
[../]
[./clad_inner_vol]
type = LayeredInternalVolumePostprocessor
boundary = 7
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./pellet_volume]
type = LayeredInternalVolumePostprocessor
boundary = 8
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./avg_clad_temp]
type = LayeredSideAverageValuePostprocessor
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
fuel_pin_geometry = pin_geometry
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./gas_volume]
type = LayeredInternalVolumePostprocessor
boundary = 9
execute_on = 'initial linear'
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./flux_from_clad]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 5
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_fuel]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.81 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = fuel
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = fuel
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 231 # Global node id 232, at coordinates (0.0, 1.71774, 0.0)
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[./max_penetration]
type = NodalExtremeValue
block = fuel
value_type = max
variable = penetration
[../]
[./min_penetration]
type = NodalExtremeValue
block = fuel
value_type = min
variable = penetration
[../]
[./max_contact_pressure]
type = NodalExtremeValue
block = fuel
value_type = max
variable = contact_pressure
[../]
[./min_contact_pressure]
type = NodalExtremeValue
block = fuel
value_type = min
variable = contact_pressure
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = fuel
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
## Nodal comparison values
[./top_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 847 #coords (0.0041275, 3.62274)
[../]
[./top_disp_r_clad]
type = NodalVariableValue
variable = disp_x
nodeid = 153 #coords (0.0042164, 3.62274)
[../]
[./plenum_disp_r_clad]
type = NodalVariableValue
variable = disp_x
nodeid = 180 #coords (0.0042164, 3.96053)
[../]
[./top_radial_strain_fuel]
type = ElementalVariableValue
variable = strain_xx
elementid = 403
[../]
[./top_axial_strain_fuel]
type = ElementalVariableValue
elementid = 403
variable = strain_yy
[../]
[./top_radial_strain_clad]
type = ElementalVariableValue
variable = strain_xx
elementid = 72
[../]
[./top_axial_strain_clad]
type = ElementalVariableValue
variable = strain_yy
elementid = 72
[../]
[./plenum_radial_strain_clad]
type = ElementalVariableValue
variable = strain_xx
elementid = 80
[../]
[./plenum_axial_strain_clad]
type = ElementalVariableValue
variable = strain_yy
elementid = 80
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_1'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_fuel_radial_displacement'
[../]
#Uncomment to print out axial FCT and PST at every timestep
#[./pellet_temp]
# type = NodalValueSampler
# variable = temp
# boundary = 10
# sort_by = y
# outputs = 'outfile_fuel_surface_temp'
#[../]
#[./pellet_center_temp]
# type = NodalValueSampler
# variable = temp
# boundary = 12
# sort_by = y
# outputs = 'outfile_FCT'
#[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./outfile_1]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
#Uncomment to print out axial FCT and PST at every timestep
#[./outfile_fuel_surface_temp]
# type = CSV
# execute_on = linear
#[../]
#[./outfile_FCT]
# type = CSV
# execute_on = linear
#[../]
[./console]
type = Console
max_rows = 25
[../]
[]
assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_1/vitanza_tm.i
[GlobalParams]
density = 10431.0
order = SECOND
family = LAGRANGE
energy_per_fission = 3.20435313e-11
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'temp'
reference_residual_variables = 'saved_t'
[]
[Mesh]
file = 27_1_mesh.e
patch_size = 10
patch_update_strategy = auto
[]
[Variables]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 7.5e-6
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
x = '-100 0 100 1e8'
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_upper = 0.01496
a_lower = 0.00226
fuel_inner_radius = 0.0
fuel_outer_radius = 0.005305
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = 3
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[]
[BCs]
[./fuel_wall_temp]
type = DirichletBC
variable = temp
boundary = '10'
value = 673
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
dtmax = 1e6
dtmin = 1
end_time = 2e8
[./Quadrature]
order = fifth
side_order = seventh
[../]
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 6
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = '3'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = '3'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
block = 3
execute_on = linear
burnup_function = burnup
type = ElementIntegralPower
variable = temp
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.0127
[../]
[./ave_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./fuel_center_temperature]
type = NodalVariableValue
nodeid = 174 # Paraview GlobalNodeID 175 at (0.0, 0.00862374)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = false
print_linear_residuals = true
[./csv]
type = CSV
execute_on = final
[../]
[./chkfile]
type = CSV
show = 'burnup fis_gas_percent fuel_center_temperature rod_total_power pellet_volume'
execute_on = final
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'fis_gas_percent >= 0.01'
[../]
[]
assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_5/REP_Na_5.i
# REP Na 5 Rodlet Base Irradiation
[GlobalParams]
density = 10476.35 # assumed TD = 10970
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 30
acceptable_multiplier = 10
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
nx_p = 11
ny_p = 164
ny_cu = 3
ny_c = 170
ny_cl = 3
nx_c = 4
clad_thickness = 0.00057825
pellet_outer_radius = 0.0040959
pellet_quantity = 41
pellet_height = 0.0137414
clad_top_gap_height = 0.04081553
clad_bot_gap_height = 0.003
clad_gap_width = 82.0e-6
top_bot_clad_height = 0.0015
elem_type = QUAD8
patch_size = 40
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.15
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./grain_radius]
block = 3
initial_condition = 5.0e-6 # Assume Grain size 10 microns
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fuel_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./stress_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_htype]
order = CONSTANT
family = MONOMIAL
[../]
[./critical_heat_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./plastic_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./oxywtfract_total]
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = REPNa5_power_history_Full.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = REPNa5_axial_peaking_Full.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # inlet coolant pressure evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 101325
8640 15499970
124675200 15499970
124718400 101325
125193600 101325
125193610 101325
125193650 500008
125193700 500008
125193900 500008
125194000 101325
125194100 101325'
[../]
[./temp_ramp] # inlet coolant temp evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 293.15
8640 560.15
124675200 560.15
124761600 293.15
125193600 293.15
125193610 293.15
125193650 553.15
125193700 553.15
125193900 553.15
125194000 293.15
125194100 293.15'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./Fuel_CTE_function] #Fuel CTE as a function of temp from MATPRO data
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = ' 0 1.000E-05
300 1.000E-05
350 1.000E-05
400 1.000E-05
450 1.000E-05
500 1.001E-05
550 1.002E-05
600 1.003E-05
650 1.005E-05
700 1.008E-05
750 1.011E-05
800 1.015E-05
850 1.020E-05
900 1.026E-05
950 1.032E-05
1000 1.039E-05
1050 1.046E-05
1100 1.053E-05
1150 1.061E-05
1200 1.069E-05
1250 1.077E-05
1300 1.085E-05
1350 1.094E-05
1400 1.102E-05
1450 1.111E-05
1500 1.119E-05
1550 1.127E-05
1600 1.135E-05
1650 1.143E-05
1700 1.151E-05
1750 1.158E-05
1800 1.166E-05
1850 1.173E-05
1900 1.180E-05
1950 1.187E-05
2000 1.193E-05
2050 1.199E-05
2100 1.205E-05
2150 1.211E-05
2200 1.217E-05
2250 1.222E-05
2300 1.227E-05
2350 1.232E-05
2400 1.237E-05
2450 1.242E-05
2500 1.246E-05
2550 1.250E-05
2600 1.254E-05
2650 1.258E-05
2700 1.262E-05
2750 1.265E-05
2800 1.268E-05
2850 1.271E-05
2900 1.274E-05
2950 1.277E-05
3000 1.280E-05
3050 1.282E-05
3100 1.285E-05'
[../]
[./burnup_GWd]
type = ParsedFunction
value = bu*950
vars = 'bu'
vals = 'average_burnup'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 42
a_upper = 0.5678974
a_lower = 0.0045
fuel_inner_radius = 0
fuel_outer_radius = 0.0040959
fuel_volume_ratio = 1
i_enrich = '0.0449 0.9551 0 0 0 0'
RPF = RPF
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_profile
factor = 3e13 #n/m2-s
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./fuel_conductance]
type = MaterialRealAux
property = thermal_conductivity
variable = fuel_cond
block = 3
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = total_swell
execute_on = timestep_end
block = 3
[../]
[./stress_hoop]
type = MaterialTensorAux
tensor = stress
variable = stress_hoop
quantity = Hoop
execute_on = timestep_end
[../]
[./stress_axial]
type = MaterialTensorAux
tensor = stress
variable = stress_axial
quantity = Axial
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./plastic_strain_hoop]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./plastic_strain_axial]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./total_hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_hoop_strain
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./total_axial_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_axial_strain
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./elastic_strain_hoop]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./elastic_strain_axial]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./clad_coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = clad_coolant_htc
boundary = 2
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = 2
[../]
[./clad_coolant_flux]
type = MaterialRealAux
property = output_heat_flux
variable = clad_coolant_flux
boundary = 2
[../]
[./coolant_channel_hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = coolant_channel_hmode
boundary = 2
[../]
[./coolant_channel_htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = coolant_channel_htype
boundary = 2
[../]
[./critical_heat_flux]
type = MaterialRealAux
property = critical_heat_flux
variable = critical_heat_flux
boundary = 2
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./plastic_strain_mag]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
[../]
[./ofract_total]
type = MaterialRealAux
variable = oxywtfract_total
property = current_oxygen_weight_frac_total
execute_on = timestep_end
boundary = 2
[../]
[./ofgain_total]
type = MaterialRealAux
variable = oxywtfgain_total
property = oxygen_weight_frac_gained_total
execute_on = timestep_end
boundary = 2
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e10
formulation = penalty
normalize_penalty = false
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2.0e-6
roughness_clad = 0.5e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
emissivity_fuel = 0.797698
emissivity_clad = 0.325
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 125107200
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_temperature = 293.15
initial_pressure = 2.60e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
refab_time = 125107200
refab_pressure = 0.302e6
refab_temperature = 293.15
refab_volume = 2.4e-6
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface_water]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp # K
inlet_pressure = pressure_ramp # Pa
inlet_massflux = 3244.044104 # kg/m^2-sec
rod_diameter = 0.00951 # m
rod_pitch = 1.26e-2 # m
coolant_material = 'water'
compute_enthalpy = true
oxide_thickness = oxide_thickness # coupled oxide_thickness
number_axial_zone = 50
[../]
# [./convective_clad_surface_sodium] # apply convective boundary to clad outer surface
# boundary = '1 2 3'
# variable = temp
# inlet_temperature = temp_ramp # K
# inlet_pressure = pressure_ramp # Pa
# inlet_massflux = 3533 # kg/m^2-sec Based on flow rate provided and flow area and estimated density of 885.1 kg/m^3
# flow_area = 8.74855e-5 #m^2
# heated_diameter = 1.172526e-2 #m
# hydraulic_diameter = 4.7e-3 #m
# heated_perimeter = 2.984513e-2 #m
# coolant_material = 'sodium'
# compute_enthalpy = true
# heat_transfer_mode = 0
# oxide_thickness = oxide_thickness # coupled oxide_thickness
# number_axial_zone = 50
# rod_pitch = 1.26e-2 # m
# rod_diameter = 0.0095 # m
# [../]
[]
[Materials]
[./density_fuel]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.045
[../]
[./fuel_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2e11
poissons_ratio = 0.345
#thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
thermal_expansion_function = Fuel_CTE_function
stress_free_temperature = 293.15
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.00819179 #Fuel pellet diameter in m
q = q
gap = 164.0e-6 #diametral gap in m
burnup_relocation_stop = 0.0223
relocation_activation1 = 5000 #initial relocation activation power in W/m
[../]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
save_solid_swell = true
save_densification = true
total_densification = 0.00675
initial_porosity = 0.045
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
initial_porosity = 0.045
grain_radius = grain_radius
#grain_radius_const = 5.0e-6
gbs_model = true
transient_option = 0
[../]
[./density_clad]
type = Density
block = '1'
density = 6550
[../]
[./clad_thermal]
type = ThermalZry
block = '1'
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
formulation = NonlinearRZ
large_strain = 1
constitutive_model = combined
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
model_irradiation_growth = 1
model_thermal_expansion = 1
model_elastic_modulus = 1
stress_free_temperature = 293.15
compute_JIntegral = true
oxygen_concentration = 0.0
max_inelastic_increment = 1.0e-4
compute_material_timestep_limit = true
[../]
[./combined]
type = CombinedCreepPlasticity
block = 1
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = 1
model_primary_creep = 1
model_thermal_creep = 1
model_thermal_creep_loca = 0
[../]
[./plasticity]
type = ZryPlasticity
block = clad
temp = temp
cold_work_factor = 0.5
fast_neutron_fluence = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
use_matpro = true
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0041178
clad_outer_radius = 0.0047549
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./phase]
type = ZrPhase
block = 1
temperature = temp
numerical_method = 2
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
[./contact_slip]
type = ContactSlipDamper
master = 5
slave = 10
min_damping_factor = 0.05
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1e-3
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = 0
end_time = 125193600
dtmax = 1e6
dtmin = 1e-7
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e3
optimal_iterations = 10
iteration_window = 4
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
max_function_change = 1e6
force_step_every_function_point = true
timestep_limiting_postprocessor = material_timestep_control
time_t = '125193610 125193620 125193630 125193640 125193650 125193660 125193670 125193680'
time_dt = '10 10 10 10 10 10 10 10'
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
#Used during RIA to be mainly the cladding temperature at the top of the plenum
# [./ave_temp_interior]
# type = NodalVariableValue
# variable = temp
# nodeid = 2497
# execute_on = 'initial linear'
# [../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./1_rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./burnup_GWd]
type = FunctionValuePostprocessor
function = burnup_GWd
[../]
#######################################
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 5780
use_displaced_mesh = 1
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 5780
use_displaced_mesh = 1
[../]
[./gap_cond]
type = ElementalVariableValue
variable = gap_cond
elementid = 1737
use_displaced_mesh = 1
[../]
[./creep_hoop_strain]
type = ElementalVariableValue
variable = creep_strain_hoop
elementid = 388
use_displaced_mesh = 1
[../]
[./elastic_hoop_strain]
type = ElementalVariableValue
variable = elastic_strain_hoop
elementid = 388
use_displaced_mesh = 1
[../]
[./plastic_hoop_strain]
type = ElementalVariableValue
variable = plastic_strain_hoop
elementid = 388
use_displaced_mesh = 1
[../]
[./total_hoop_strain]
type = ElementalVariableValue
variable = total_hoop_strain
elementid = 388
use_displaced_mesh = 1
[../]
[./clad_hoop_stress]
type = ElementalVariableValue
variable = stress_hoop
elementid = 388
use_displaced_mesh = 1
[../]
[./clad_axial_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 2591
use_displaced_mesh = 1
[../]
[./clad_oxide_thickness]
type = ElementalVariableValue
variable = oxide_thickness
elementid = 388
use_displaced_mesh = 1
[../]
[./clad_coolant_htc]
type = ElementalVariableValue
variable = clad_coolant_htc
elementid = 388
use_displaced_mesh = 1
[../]
[./coolant_temp]
type = ElementalVariableValue
variable = coolant_temp
elementid = 388
use_displaced_mesh = 1
[../]
[./fuel_centerline_temp]
type = NodalVariableValue
variable = temp
nodeid = 5749
[../]
[./fuel_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 5780
[../]
[./clad_inner_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 1349
[../]
[./clad_outer_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 1359
[../]
[./fuel_axial_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 8475
[../]
[./clad_radial_elongation]
type = NodalVariableValue
variable = disp_x
nodeid = 1359
[../]
[./fuel_radial_elongation]
type = NodalVariableValue
variable = disp_x
nodeid = 5780
[../]
[./SED_PPN_O]
type = ElementalVariableValue
variable = SED
elementid = 388
use_displaced_mesh = 1
[../]
[./SED_PPN_I]
type = ElementalVariableValue
variable = SED
elementid = 385
use_displaced_mesh = 1
[../]
[./OFract_PPN_O]
type = ElementalVariableValue
variable = oxywtfract_total
elementid = 388
use_displaced_mesh = 1
[../]
[./OGain_PPN_O]
type = ElementalVariableValue
variable = oxywtfgain_total
elementid = 388
use_displaced_mesh = 1
[../]
#######################################
[./max_fuel_temp]
type = NodalMaxValue
block = 3
variable = temp
[../]
[./max_clad_temp]
type = NodalMaxValue
block = clad
variable = temp
[../]
[./max_clad_SED]
type = ElementExtremeValue
block = clad
variable = SED
value_type = max
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[./material_timestep_control]
type = MaterialTimeStepPostprocessor
block = 1
[../]
[]
[VectorPostprocessors]
[./ox_thick]
type = SideValueSampler
variable = oxide_thickness
boundary = 2
sort_by = y
outputs = 'outfile_2'
[../]
[./rad_temp]
type = LineValueSampler
end_point = '0.0040959 0.3 0.0'
start_point = '0.0 0.3 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = 3
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
[./outfile_2]
type = CSV
sync_times = '125193600 125194100'
sync_only = true
[../]
[./dummy]
type = CSV
enable = false
[../]
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
sync_times = '125193600'
sync_only = true
[../]
[./chkfile]
type = CSV
show = 'plenum_temperature fission_gas_released_percentage average_centerline_fuel_temperature average_burnup'
execute_on = 'FINAL'
[../]
[./exodus]
type = Exodus
interval = 4
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
show_material_props = true
[]
assessment/LWR/validation/RIA_NSRR_FK/analysis/FK8/FK08.i
# This file was created using BIF with the following inputs:
# FK06/FK06.var - md5sum: 5a60c05af67ba840a89caacf70b852e2
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
[GlobalParams]
density = 10310.8809782
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
displacements = 'disp_x disp_y'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
displacements = 'disp_x disp_y'
patch_size = 5
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
top_bot_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.05265
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[AuxVariables]
[./BuTC]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gap]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./fission_rate]
initial_condition = 0
[../]
[./grain_radius]
block = 3
initial_condition = 5.96e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./integral_burnup]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_radial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.0592261881186
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[../]
[./flux]
type = ConstantFunction
value = 0.0
[../]
[./axial_peaking_factors]
type = ConstantFunction
value = 1
[../]
[./coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[../]
[./linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[../]
[./axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[../]
[./burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[../]
[./radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[../]
[./radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[../]
[./initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
i_enrich = '0.045 0.955 0.0 0.0 0.0 0.0'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
save_in = saved_t
block = 3
[../]
[]
[AuxKernels]
[./BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[../]
[./gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[../]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = timestep_begin
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_begin
[../]
[./radial_stress]
type = MaterialTensorAux
tensor = stress
variable = radial_stress
index = 0
execute_on = timestep_begin
[../]
[./axial_stress]
type = MaterialTensorAux
tensor = stress
variable = axial_stress
index = 1
execute_on = timestep_begin
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
index = 2
execute_on = timestep_begin
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./axial_strain]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = stress
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./elastic_radial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = radial_strain
index = 0
execute_on = timestep_begin
[../]
[./elastic_axial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_strain
index = 1
execute_on = timestep_begin
[../]
[./elastic_hoop_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_strain
index = 2
execute_on = timestep_begin
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_begin
[../]
[./creep_strain_radial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 0
execute_on = timestep_begin
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
index = 1
execute_on = timestep_begin
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 2
execute_on = timestep_begin
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
friction_coefficient = 2.5
normal_smoothing_distance = 0.1
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
roughness_coef = 3.2
roughness_fuel = 1.5e-6
roughness_clad = 1.75e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
initial_gas_fractions = '0.25 0.75 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0'
gas_released = fission_gas_released
tangential_tolerance = 1.0e-6
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '10 5'
initial_pressure = 0.1e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
block = 3
temp = temp
burnup = BuTC
initial_porosity = 0.0592261881186
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
temp = temp
burnup = burnup
total_densification = 0.006
gas_swelling_type = SIFGRS
[../]
[./fuel_mech]
type = MechUO2
block = 3
temp = temp
burnup = BuTC
fission_rate = fission_rate
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 5.56e-06
oxy_to_metal_ratio = 2.0
model_thermal_expansion = true
model_swelling = true
name_swelling_model = fuel_swelling
model_relocation = false
name_relocation_model = fuel_relocation
model_creep = false
model_hotpressing = false
has_hotpressing_plasticity = false # used to turn on plasticity models
matpro_youngs_modulus = false
matpro_poissons_ratio = false
dep_matl_props = deltav_v0_bd
# input_yield_stress = 100e6 # used to turn on plasticity models
# input_hardening_modulus = 2e9 # used to turn on plasticity models
# transition_temperature = 1273 # used to change the hot presing temperature
# isotropic_cracking = true # used for isotropic softening model
# rod_ave_lin_pow = linear_heat_rate_profile # used for isotropic softening model
# cracking_stress = 120e6 # used for smeared cracking model
# cracking_release = exponential # used for smeared cracking model
# cracking_residual_stress = 0.1 # used for smeared cracking model
# cracking_beta = 0.01 # used for smeared cracking model
# compute_method = ShearRetention # used for smeared cracking model
# max_cracks = 3 # used for smeared cracking model
# active_crack_planes = '0 1 2' # used for smeared cracking model
stress_free_temperature = 293
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = buavg
q = linear_heat_generation_rate
diameter = 0.01054
gap = 1e-05
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
creeprate_scalef = 1
cold_work_factor = 0.01
material_type = 0
model_irradiation_growth = false
model_thermal_expansion = true
model_elastic_modulus = true
constitutive_model = plasticity
compute_JIntegral = true
formulation = NonlinearRZ
[../]
[./combined]
type = CombinedCreepPlasticity
block = clad
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = clad
temp = temp
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
material_type = 0
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
[../]
[./plasticity]
type = ZryPlasticity
block = 1
temp = temp
initial_fast_fluence = 1.30e26
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
use_matpro = true
output_properties = yield_stress
outputs = all
scale_factor = 1.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = 2
[../]
[./clad_density]
type = Density
block = 1
density = 6551
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[UserObjects]
[./avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[../]
[./integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[./contactslip]
type = ContactSlipDamper
master = 5
slave = 8
min_damping_factor = 0.05
[../]
[]
[Postprocessors]
[./average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[]
[VectorPostprocessors]
[./rad_temp]
type = LineValueSampler
end_point = '0.00527 0.0503 0.0'
start_point = '0.0 0.0503 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
output_linear = true
[../]
[./dummy]
type = CSV
enable = true
[../]
[]
examples/tensor_mechanics/2D-RZ_rodlet_10pellets/SmearedCracking_tm.i
# This model is a higher order, smeared 10 pellet fuel stack (pellet).
[GlobalParams]
density = 10431.0
initial_porosity = 0.05
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 10
pellet_height = 0.01186
pellet_outer_radius = 4.1e-3
pellet_mesh_density = coarse
clad_mesh_density = coarse
clad_gap_width = 160.0e-6
clad_thickness = 0.56e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 2.6e-2
elem_type = QUAD8
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet
initial_condition = 10e-6
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 1.0e4 1.0e08'
y = '0 2.5e4 2.5e04'
scale_factor = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
fuel_pin_geometry = pin_geometry
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580
inlet_pressure = 15.5e6
inlet_massflux = 3800
rod_diameter = 0.948e-2
rod_pitch = 1.26e-2
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./elastic_stress]
type = ComputeSmearedCrackingStress
block = pellet
cracking_stress = 1.68e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = pellet
temperature = temp
fission_rate = fission_rate
grain_radius = 7.5e-6
oxygen_to_metal_ratio = 2.0
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet
burnup_function = burnup
linear_heat_rate_function = q
burnup_relocation_stop = 0.035
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup_function = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
verbose = false
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 1.0e8
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
outputs = exodus
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
outputs = exodus
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./center_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 2579 # mesh dependent, at (0.0041, 0.0744)
[../]
[./center_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 2579 # mesh dependent, at (0.0041, 0.0744)
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[]
# [VectorPostprocessors]
# [./clad]
# type = NodalValueSampler
# variable = disp_x
# boundary = 2
# sort_by = y
# outputs = 'outfile_clad_radial_displacement'
# [../]
# [./pellet]
# type = NodalValueSampler
# variable = disp_x
# boundary = 10
# sort_by = y
# outputs = 'outfile_fuel_radial_displacement'
# [../]
# []
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./console]
type = Console
max_rows = 25
[../]
# [./outfile_clad_radial_displacement]
# type = CSV
# execute_on = 'FINAL'
# [../]
# [./outfile_fuel_radial_displacement]
# type = CSV
# execute_on = 'FINAL'
# [../]
[]
assessment/LWR/validation/IFA_431/analysis/rod1/SM/IFA_431_rod1_sm.i
[GlobalParams]
density = 10431 # initial fuel density 95% of theoretical (10980 kg/m3)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa_431_rod1_fine.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 513.3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4 5'
initial_condition = 3.5e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = bol_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factor]
type = PiecewiseBilinear
data_file = bol_axial.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.029395 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factor'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = '3 4 5'
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
factor = 1.6e12 #(n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4 5'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = '3 4 5'
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
num_radial = 81
num_axial = 21
a_lower = 0.01494
a_upper = 0.58644
fuel_inner_radius = 0.00
fuel_outer_radius = 0.005339
fuel_volume_ratio = 0.992245
i_enrich = '0.1 .9 0 0 0 0' # 10% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_fuel = 2.16e-6
roughness_clad = 6.35e-7
roughness_coef = 3.2
quadrature = true
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 513.3
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0135e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = '3 4 5'
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_density]
type = Density
block = '3 4 5'
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4 5'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = '3 4 5'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
stress_free_temperature = 297
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = '3 4 5'
burnup_function = burnup
q = q
diameter = 1.0678e-2
gap = 230.0e-6
relocation_activation1 = 5000
burnup_relocation_stop = 0.00821
tensor_mechanics_compatibility = true
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
stress_free_temperature = 297
model_irradiation_growth = true
model_thermal_expansion = false
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4 5'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 80
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# Time steps set up to match halden data
n_startup_steps = 1
start_time = 0
end_time = 50400
[./TimeStepper]
type = ConstantDT
dt = 900
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3 4 5'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4 5'
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3 4 5'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
block = '3 4 5'
burnup_function = burnup
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4 5'
outputs = exodus
[../]
[./power_lower_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.075265 0'
[../]
[./power_upper_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.50389 0'
[../]
[./upper_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 9080 # paraview global node id 9081
[../]
[./lower_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 2750 # paraviw global node id 2751
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'fission_gas_released rod_total_power upper_TC_temp lower_TC_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'temp disp_x disp_y'
show_var_residual_norms = true
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_swelling_porosity.i
# This test is for the fuel swelling and porosity computation in the Sifgrs fission gas behavior model for UO2.
# As complementary to the fission gas release process, the fission gas swelling is related to gas retention in the fuel in the form of bubbles. Through a direct description of the gas bubble development, the fission gas swelling and release are modeled as inherently coupled processes, on a physical basis. Only the fission gas swelling due to grain-face bubbles is considered.
# In a comprehensive treatment of fission gas release and fuel swelling, Sifgrs also incorporates empirical models for the swelling due to solid fission products and the fuel densification.
# Moreover, the different contributions to fuel porosity, namely, those due to fabrication pores, gas bubbles (thus associated with fission gas swelling) , and sintering (densification), are computed consistently with the swelling calculations. Then, the fuel total porosity in each mesh location can be tracked (auxkernel PorosityAuxUO2), and considered in the computation of other relevant material properties like the fuel thermal conductivity (material model ThermalFuel).
# This test aims at demonstrating the above model capabilities. The considered case involves a single-element cubic domain, constant temperature (1400 K) and fission rate (1e19 f/(m**3s)), and a irradiation time of 1e8 s. The Sifgrs model is adopted for calculating the fission gas release and fuel swelling. Starting from a typical as-fabricated value of 5%, the fuel porosity evolves consistently with the swelling. The fuel thermal conductivity is calculated as coupled with porosity, which allows taking into account the conductivity degradation due to progressive increase of gaseous porosity (see also the attached file regression_tests_sifgrs.xlsx).
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = cube_111.e
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = '1400.'
[../]
[./Fiss_func]
type = ParsedFunction
value = '1.e19'
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 1400.
[../]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./burnup]
order = FIRST
family = LAGRANGE
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.05
[../]
[./density]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_sl]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_dn]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
[../]
[./fabrication_porosity]
order = CONSTANT
family = MONOMIAL
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
[../]
[./sintering_porosity]
order = CONSTANT
family = MONOMIAL
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
add_variables = false
strain = FINITE
eigenstrain_names = 'fuel_volumetric_strain'
volumetric_locking_correction = false
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./frate]
type = FissionRateAux
variable = fission_rate
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./brnp]
type = BurnupAux
variable = burnup
fission_rate = fission_rate
density = 10417.
execute_on = 'initial timestep_begin'
[../]
[./por]
type = PorosityAuxUO2
variable = porosity
execute_on = 'initial linear'
[../]
[./rho]
type = MaterialRealAux
variable = density
property = density
execute_on = 'initial linear'
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./dvv0sl]
type = MaterialRealAux
variable = deltav_v0_sl
property = solid_swelling
[../]
[./dvv0dn]
type = MaterialRealAux
variable = deltav_v0_dn
property = densification
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = volumetric_swelling_strain
[../]
[./fabpor]
type = MaterialRealAux
variable = fabrication_porosity
property = fabrication_porosity
execute_on = 'initial linear'
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./sinpor]
type = MaterialRealAux
variable = sintering_porosity
property = sintering_porosity
[../]
[./thcond]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
execute_on = 'initial linear'
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[../]
[./x_disp]
type = DirichletBC
variable = disp_x
value = 0
boundary = 1
[../]
[./y_disp]
type = DirichletBC
variable = disp_y
value = 0
boundary = 2
[../]
[./z_disp]
type = DirichletBC
variable = disp_z
value = 0
boundary = 3
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
temp = temp
burnup = burnup
initial_porosity = 0.05
porosity = porosity
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.0e11
poissons_ratio = 0.3
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
temperature = temp
burnup = burnup
initial_fuel_density = 10417.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./density]
type = Density
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
density = 10417.
[../]
[./fission_gas_release_and_swelling]
type = Sifgrs
temp = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.05
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-05
nl_rel_tol = 1.e-05
start_time = 0.
num_steps = 100
dt = 1.e+06
end_time = 1.e+08
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
examples/tensor_mechanics/TRISO/IAEA_CRP-6_type/2D/case_10/case_10.i
[GlobalParams]
density = 10810.0 # kg/m^3
order = SECOND
family = LAGRANGE
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Mesh]
file = case_10.e
[]
[Problem]
coord_type = RZ
[]
[Variables]
[./temp]
initial_condition = 1346.0
[../]
[]
[AuxVariables]
[./fluence]
[../]
[./fast_neutron_flux]
[../]
[./fission_rate]
block = fuel
[../]
[./burnup]
block = fuel
[../]
[./grain_radius]
initial_condition = 5.0e-6
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = fuel
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./buffer]
block = buffer
add_variables = true
strain = FINITE
eigenstrain_names = 'buffer_thermal_strain buffer_eigenstrain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./IPyC]
block = IPyC
add_variables = true
strain = FINITE
eigenstrain_names = 'IPyC_eigenstrain IPyC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./SiC]
block = SiC
add_variables = true
strain = FINITE
eigenstrain_names = 'SiC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./OPyC]
block = OPyC
add_variables = true
strain = FINITE
eigenstrain_names = 'OPyC_eigenstrain OPyC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[]
[Functions]
[./fast_neutron_flux]
type = ParsedFunction
value = 1.708707e18
[../]
[./fission_rate]
type = ParsedFunction
value = 7.75e19 # units of fissions/m**3
[../]
[]
[Kernels]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fluence]
type = FastNeutronFluenceAux
variable = fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./fast_neutron_flux]
type = FunctionAux
variable = fast_neutron_flux
function = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fission_rate]
type = FunctionAux
variable= fission_rate
block = fuel
function = fission_rate
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[../]
[./grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temp = temp
execute_on = linear
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 15
slave = 17
penalty = 1e5
model = frictionless
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 15
slave = 17
initial_moles = initial_moles
gas_released = 'fis_gas_released co_production'
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
[../]
[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
[./no_disp_y]
type = DirichletBC
variable = disp_y
boundary = yzero
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = DirichletBC
variable = temp
boundary = exterior
value = 1346
[../]
# exterior and internal pressures
[./exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
component = 0
factor = 0.1e6
[../]
[./exterior_pressure_y]
type = Pressure
variable = disp_y
boundary = exterior
component = 1
factor = 0.1e6
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 'PyCGapBndry BufferGapBndry'
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = volumeGas
material_input = 'fis_gas_released co_production'
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
temp = temp
thermal_conductivity_model = FINK_LUCUTA
initial_porosity = 0.0
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e8
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 1346.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
[../]
[./buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2.0e8
poissons_ratio = 0.345
[../]
[./buffer_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = buffer
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_density]
type = Density
density = 1000.0 #kg/m^3
block = buffer
[../]
[./buffer_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = buffer
thermal_expansion_coeff = 5.5e-6
temperature = temp
stress_free_temperature = 1346.0
eigenstrain_name = buffer_thermal_strain
[../]
[./buffer_irraditation]
type = PyCIrradiationEigenstrain
block = buffer
fluence = fluence
pyc_type = buffer
eigenstrain_name = buffer_eigenstrain
[../]
[./IPyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = IPyC
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[../]
[./IPyC_stress]
type = PyCCreep
block = IPyC
flux = fast_neutron_flux
temperature = temp
density = 1880.0
[../]
[./IPyC_temp]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./IPyC_den]
type = Density
density = 1880.0 # kg/m^3
block = IPyC
[../]
[./IPyC_densification]
type = PyCIrradiationEigenstrain
block = IPyC
fluence = fluence
pyc_type = dense
eigenstrain_name = IPyC_eigenstrain
[../]
[./IPyC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = IPyC
thermal_expansion_coeff = 5.5e-6
temperature = temp
stress_free_temperature = 1346.0
eigenstrain_name = IPyC_thermal_strain
[../]
[./SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[../]
[./SiC_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_den]
type = Density
density = 3200.0 # kg/m^3
block = SiC
[../]
[./SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temp
stress_free_temperature = 1346.0
eigenstrain_name = SiC_thermal_strain
[../]
[./OPyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = OPyC
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[../]
[./OPyC_stress]
type = PyCCreep
block = OPyC
flux = fast_neutron_flux
temperature = temp
density = 1880.0
[../]
[./OPyC_temp]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./OPyC_den]
type = Density
density = 1880.0 # kg/m^3
block = OPyC
[../]
[./OPyC_densification]
type = PyCIrradiationEigenstrain
block = OPyC
fluence = fluence
pyc_type = dense
eigenstrain_name = OPyC_eigenstrain
[../]
[./OPyC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = OPyC
thermal_expansion_coeff = 5.5e-6
temperature = temp
stress_free_temperature = 1346.0
eigenstrain_name = OPyC_thermal_strain
[../]
[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 20
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 3.10176e7
dtmax = 2e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 10
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./max_xx_IPyC]
type = ElementExtremeValue
variable = stress_xx
block = IPyC
[../]
[./max_yy_IPyC]
type = ElementExtremeValue
variable = stress_yy
block = IPyC
[../]
[./min_zz_IPyC]
type = ElementExtremeValue
variable = stress_zz
block = IPyC
value_type = min
[../]
[./max_xx_SiC]
type = ElementExtremeValue
variable = stress_xx
block = SiC
[../]
[./max_yy_SiC]
type = ElementExtremeValue
variable = stress_yy
block = SiC
[../]
[./min_zz_SiC]
type = ElementExtremeValue
variable = stress_zz
block = SiC
value_type = min
[../]
[./max_xx_OPyC]
type = ElementExtremeValue
variable = stress_xx
block = OPyC
[../]
[./max_yy_OPyC]
type = ElementExtremeValue
variable = stress_yy
block = OPyC
[../]
[./min_zz_OPyC]
type = ElementExtremeValue
variable = stress_zz
block = OPyC
value_type = min
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = 'initial linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = 'initial linear'
[../]
[./volumeTotal]
type = InternalVolume
component = 0
boundary = exterior
execute_on = 'initial TIMESTEP_END'
[../]
[./volumeFuel]
type = InternalVolume
component = 0
boundary = fuel
execute_on = 'initial TIMESTEP_END'
[../]
[./volumeGas]
type = InternalVolume
component = 0
boundary = BufferGapVol
addition = -5.53e-11
execute_on = 'initial TIMESTEP_END'
[../]
[./volumeBufferShell]
type = InternalVolume
component = 0
boundary = BufferGapVol
execute_on = 'initial TIMESTEP_END'
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = BufferGapVol
variable = temp
execute_on = 'INITIAL TIMESTEP_END'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'INITIAL TIMESTEP_END'
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
execute_on = 'INITIAL TIMESTEP_END'
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
execute_on = 'INITIAL TIMESTEP_END'
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
execute_on = 'INITIAL TIMESTEP_END'
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
execute_on = 'INITIAL TIMESTEP_END'
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[./chkfile]
type = CSV
execute_on = Final
show = 'max_xx_IPyC max_yy_IPyC min_zz_IPyC max_xx_SiC max_yy_SiC min_zz_SiC co_production fis_gas_released avg_surface_temp'
[../]
[]
test/tests/triso_failure/triso_1d_failure_error.i
[GlobalParams]
density = 10810.0 # kg/m^3
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
type = TRISO1DMesh
elem_type = EDGE3
coordinates = '0 2.485e-4 3.425e-4 3.425e-4 3.835e-4 4.195e-4 4.595e-4'
mesh_density = '6 6 0 6 8 6'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[Problem]
coord_type = RSPHERICAL
[]
[Variables]
[./disp_x]
[../]
[./temp]
initial_condition = 1346.0
[../]
[]
[Functions]
[./radial_eigenstrain]
type = ParsedFunction
value = 't*(4.52013e-4/6.0*t*t*t*t*t - 8.36313e-3/5.0*t*t*t*t + 5.67549e-2/4.0*t*t*t - 1.74247e-1/3.0*t*t + 2.62692e-1/2.0*t - 1.43234e-1)'
[../]
[./tangential_eigenstrain]
type = ParsedFunction
value = 't*(1.30457e-4/4.0*t*t*t - 2.10029e-3/3.0*t*t + 9.07826e-3/2.0*t - 3.24737e-2)'
[../]
[./fission_rate]
type = ParsedFunction
value = 7.75e19 # units of fissions/m**3
[../]
[./k_function]
type = ParsedFunction
value = '4.93e-29'
[../]
[./high_fidelity_strength_crackedIPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1000000 1000000'
[../]
[./high_fidelity_strength_crackedOPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1000000 1000000'
[../]
[./stress_correlation_crackedOPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1 1'
[../]
[./stress_correlation_crackedIPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1 1'
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./burnup]
block = fuel
initial_condition = 0.0
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
initial_condition = 0.0
[../]
[./fission_rate]
block = fuel
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
factor = 1.708707e18 # n/m^2-sec
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./fission_rate]
type = FunctionAux
variable= fission_rate
block = fuel
function = fission_rate
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = IPyC_left_boundary
slave = buffer_right_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = IPyC_left_boundary
slave = buffer_right_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
# contact_pressure_input = 10e6
# quadrature = true
[../]
[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = DirichletBC
variable = temp
boundary = exterior
value = 1346.0
[../]
# exterior and internal pressures
[./exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
component = 0
factor = 0.1e6
[../]
[./PlenumPressure] # apply gas pressure on buffer and IPyC boundaries
[./plenumPressure]
boundary = buffer_IPyC_boundary
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[Materials]
[./fission_gas_release] # Sifgr fission gas release mode
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[../]
[./stress]
type = ComputeLinearElasticStress
block = 'fuel buffer SiC'
[../]
[./strain]
type = ComputeRSphericalSmallStrain
block = 'fuel buffer SiC'
eigenstrain_names = thermal_strain
[../]
[./PyC_stress]
type = PyCCreep
block = 'IPyC OPyC'
k = k_function
nu = 0.4
flux = fast_neutron_flux
temperature = temp
density = 1880.0 # kg/m^3
[../]
[./PyC_strain]
type = ComputeRSphericalIncrementalStrain
block = 'IPyC OPyC'
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
[../]
[./PyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = 'IPyC OPyC'
fluence = fast_neutron_fluence
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[../]
[./fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./PyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[../]
[./fuel_den]
type = Density
block = fuel
disp_r = disp_x
[../]
[./buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_den]
type = Density
density = 1000 #kg/m^3
block = buffer
disp_r = disp_x
[../]
[./PyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[../]
[./PyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./PyC_den]
type = Density
density = 1880.0 # kg/m^3
block = 'IPyC OPyC'
disp_r = disp_x
[../]
[./SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_den]
type = Density
density = 3200.0 # kg/m^3
block = SiC
disp_r = disp_x
[../]
[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
# petsc_options = '-snes_mf_operator -snes_ksp_ew -ksp_monitor'
# petsc_options_iname = '-pc_type -pc_hypre_type'
# petsc_options_value = 'hypre boomeramg'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
num_steps = 10
dtmax = 2e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[./burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[../]
[./volumeTotal]
type = InternalVolume
boundary = exterior
[../]
[./volumeFuel]
type = InternalVolume
boundary = fuel_right_boundary
[../]
[./volumeGas]
type = InternalVolume
boundary = 'fuel_right_boundary IPyC_left_boundary'
addition = -5.53e-11
execute_on = 'initial timestep_end'
[../]
[./volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temp
execute_on = 'initial timestep_end'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
[../]
[./tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[../]
[./strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
characteristic_strength = 9640000
[../]
[./failure_indicator_SiC]
type = WeibullFailureIndicator
block = SiC
weibull_modulus = 6
[../]
[./strength_IPyC]
type = WeibullEffectiveMeanStrength
block = IPyC
weibull_modulus = 6
characteristic_strength = 964000
[../]
[./failure_indicator_IPyC]
type = WeibullFailureIndicator
block = IPyC
weibull_modulus = 6
effective_mean_strength = strength_IPyC
[../]
[./strength_OPyC]
type = WeibullEffectiveMeanStrength
block = OPyC
weibull_modulus = 6
characteristic_strength = 964000
[../]
[./failure_indicator_OPyC]
type = WeibullFailureIndicator
block = OPyC
weibull_modulus = 6
effective_mean_strength = strength_OPyC
[../]
[./failure_indicator_SiC_crackedIPyC]
type = WeibullFailureIndicator
block = SiC
weibull_modulus = 6
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
[../]
[./failure_indicator_SiC_crackedOPyC]
type = WeibullFailureIndicator
block = SiC
weibull_modulus = 6
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedOPyC'
[../]
[./triso_failure]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
OPyC_failure = failure_indicator_OPyC
SiC_failure = failure_indicator_SiC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure_crackedOPyC = failure_indicator_SiC_crackedOPyC
[../]
[]
[Outputs]
print_linear_residuals = true
interval = 1
csv = true
perf_graph = true
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFL009/TM/BFL009_tm.i
################################################################################
#
# Description: Calvert Cliffs BFL009
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFL009_power.csv
# axial peaking factor file BFL009_axial_peaking.csv
# flux boundary condition file BFL009_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10460.45 #95.332 %TD Assume TD = 10972.65 kg/cm3
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
file = BFL009_mesh.e
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 3.85e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFL009_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFL009_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 167148794 167149154'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 167148794 167149154'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFL009_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0013589
fuel_outer_radius = 0.00478155 # m
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '9 13'
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0095631 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 190.5e-6 #diametral gap in m
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10460.45
total_densification = 0.01
initial_porosity = 0.05
eigenstrain_name = fuel_volumetric_strain
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200
min_value = 273
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 167149154
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_2984]
type = NodalVariableValue
nodeid = 2983
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
examples/multiapp/pin2.i
##In this example the multiapp system is called to run another BISON simulation. (input1.i calls input2.i) An application of this might be multiple fuel pins in an assembly. This example also demonstrates the internal mesh maker.
[GlobalParams]
density = 10200
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
a_lower = 0.06951
a_upper = 3.72711
initial_porosity = 0.04
[]
# ==================================================== #
# Mesh (and Geometry, internally-meshed)
# ==================================================== #
[Mesh]
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 10
patch_update_strategy = auto
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
clad_thickness = 0.0005
pellet_outer_radius = 0.0041
clad_bot_gap_height = 0.00152
clad_top_gap_height = 0.16
pellet_quantity = 1
pellet_height = 3.6576
clad_gap_width = 8.0e-05
top_bot_clad_height = 0.0167
nx_p = 6 # number of radial elements in the fuel
ny_p = 48 # number of axial elements in the fuel
nx_c = 3 # number of elements in the clad thickness
ny_c = 48 # number of elements in the axially in the clad
ny_cu = 1
ny_cl = 1
intervals = '0.03866 0.08211 0.08211 0.08211 0.08212 0.08211 0.08211 0.08211 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.079212 0.079212 0.079212 0.079212 0.079212'
elem_type = QUAD4
[]
[DefaultElementQuality]
aspect_ratio_upper_bound = 493
[]
# ==================================================== #
# Dimensions and Primary Variables
# ==================================================== #
[Problem]
coord_type = RZ
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 3.000000e+02
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
[../]
[]
# ==================================================== #
# Auxiliary Variables
# ==================================================== #
[AuxVariables]
# ================================================== #
# Nodal Quantities
# ================================================== #
[./htcl]
initial_condition = 500.0
[../]
[./htcv]
initial_condition = 0.0
[../]
[./Tl]
initial_condition = 565.0
[../]
[./Tv]
initial_condition = 565.0
[../]
[./burnup]
block = 3
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5.240000e-06
[../]
# ================================================== #
# Constant Monomial Quantities (Mechanics)
# ================================================== #
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_radial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
# ================================================== #
# Constant Monomial Quantities (Non-Mechanics)
# ================================================== #
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./axial_fission_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_burnup]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_temperature]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.04
[../]
[]
# ==================================================== #
# Time- and Space-Dependent Source and BCs
# ==================================================== #
[Functions]
[./linear_heat_rate_profile]
type = PiecewiseLinear
x = '-100 0 5000'
y = '0 0 25000'
scale_factor = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./coolant_temperature]
type = PiecewiseLinear
x = '-100 0'
y = '293 565'
axis = y
[../]
[./coolant_pressure_ramp]
# used in coolantPressure BC
type = PiecewiseLinear
scale_factor = 1
x = '0 10000.0'
y = '0 1.0'
[../]
[./q]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[../]
[]
# ==================================================== #
# Burnup Equation Set
# ==================================================== #
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.0041
fuel_volume_ratio = 1.0
i_enrich = '3.100e-02 9.690e-01 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00'
RPF = RPF
[../]
[]
# ==================================================== #
# Primary Kernels used in Heat Transfer
# ==================================================== #
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
[../]
[./heat_ie]
# time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
block = 3
[../]
[]
[AuxKernels]
# ================================================== #
# Pre-Defined Types
# ================================================== #
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
factor = 1.27e+14 # (n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
execute_on = linear
[../]
# ================================================== #
# General Mechanics Types
# ================================================== #
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
index = 2
execute_on = timestep_begin
[../]
[./radial_stress]
type = MaterialTensorAux
tensor = stress
variable = radial_stress
index = 0
execute_on = timestep_begin
[../]
[./axial_stress]
type = MaterialTensorAux
tensor = stress
variable = axial_stress
index = 1
execute_on = timestep_begin
[../]
[./radial]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_end
[../]
[./axial]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_end
[../]
[./hoop]
type = MaterialTensorAux
tensor = stress
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_end
[../]
[./elastic_radial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = radial_strain
index = 0
execute_on = timestep_end
[../]
[./elastic_axial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_strain
index = 1
execute_on = timestep_end
[../]
[./elastic_hoop_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_strain
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_radial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 0
execute_on = timestep_end
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
index = 1
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 2
execute_on = timestep_begin
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
execute_on = linear
[../]
# ================================================== #
# Other General Types
# ================================================== #
[./axial_burnup]
type = SpatialUserObjectAux
block = 3
variable = axial_burnup
user_object = axial_burnup
execute_on = timestep_begin
[../]
[./axial_temperature]
type = SpatialUserObjectAux
block = 3
variable = axial_temperature
user_object = axial_temperature
execute_on = timestep_begin
[../]
[]
# ==================================================== #
# Mechanical and Thermal Contact
# ==================================================== #
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
penalty = 1e+14
normalize_penalty = true
normal_smoothing_distance = 0.1
model = frictionless
system = Constraint
formulation = Kinematic
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5 # clad
slave = 10 # fuel
roughness_coef = 3.200000e+00
roughness_fuel = 1.8e-06
roughness_clad = 8e-07
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
initial_gas_fractions = '1.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00'
gas_released = fis_gas_released
tangential_tolerance = 0.0001
normal_smoothing_distance = 0.1
order = FIRST
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./convective_clad_surface_bottom]
type = ConvectiveFluxBC
boundary = '1 2 3'
variable = temp
rate = 38200.0 #convection coefficient (h)
initial = 565.0
final = 585.0
duration = 1.0e4 #duration of initial power ramp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1.55132e+07
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9 # '10 5'
initial_pressure = 1.99948e+06
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get temperature for plenum gas
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
# ==================================================== #
# Specification of Material Properties
# ==================================================== #
[Materials]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
block = 3
temp = temp
burnup = burnup
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
temp = temp
burnup = burnup
total_densification = 1.00000e-02
gas_swelling_type = Sifgrs
[../]
[./fuel_mech]
type = MechUO2
block = 3
temp = temp
burnup = burnup
fission_rate = fission_rate
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 2.5e-06
oxy_to_metal_ratio = 2.0
model_thermal_expansion = true
model_swelling = true
name_swelling_model = fuel_swelling
model_relocation = true
name_relocation_model = fuel_relocation
model_creep = true
matpro_youngs_modulus = true
matpro_poissons_ratio = true
dep_matl_props = deltav_v0_bd
[../]
[./fuel_relocation]
type = RelocationUO2
model = ESCORE
block = 3
burnup = burnup
q = q
diameter = 0.008192
gap = 0.000168
relocation_activation1 = 16404
# Average burnup at which fuel comes into contact with clad at 25kW/m
burnup_relocation_stop = 0.0315
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
material_type = 0
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
model_irradiation_growth = true
model_thermal_expansion = true
model_elastic_modulus = true
cold_work_factor = 0.048127
oxygen_concentration = 0
[../]
[./fission_gas_release]
type = Sifgrs
axial_power_profile = axial_peaking_factors
block = 3
burnup = burnup
fission_rate = fission_rate
hydrostatic_stress = hydrostatic_stress
grain_radius = grain_radius
pellet_brittle_zone = pbz
pellet_id = pellet_id
rod_ave_lin_pow = linear_heat_rate_profile
temp = temp
[../]
[./clad_density]
type = Density
block = 1
density = 7833
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
# ==================================================== #
# User Objects for Output Processing
# ==================================================== #
[UserObjects]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temp
pellet_radius = 0.0041
number_pellets = 1
execute_on = linear
[../]
[./averagefissionrate]
type = LayeredAverage
block = 3
variable = fission_rate
direction = y
num_layers = 49
execute_on = timestep_begin
[../]
[./average_temp]
type = LayeredAverage
block = 3
variable = temp
direction = y
num_layers = 49
execute_on = timestep_begin
[../]
[./averagebu]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 49
execute_on = timestep_begin
[../]
[./casl_average_fission_rate]
variable = fission_rate
type = LayeredAverage
block = 3
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[../]
[./surface_temp]
type = LayeredSideAverage
boundary = 2
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
use_displaced_mesh = 0
execute_on = timestep_begin
[../]
[./axial_temperature]
type = LayeredAverage
block = 3
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[../]
[./axial_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[../]
[./integral_temperature]
type = LayeredAverage
block = 3
variable = temp
direction = y
num_layers = 1
execute_on = timestep_begin
[../]
[./integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
execute_on = timestep_begin
[../]
[./average]
type = LayeredAverage
block = 3
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[../]
[./axial_surface_temperature]
type = LayeredSideAverage
boundary = 2
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
use_displaced_mesh = 0
execute_on = timestep_begin
[../]
[./rod_avg_fast_fluence]
type = LayeredSideAverage
boundary = 2
variable = fast_neutron_fluence
direction = y
num_layers = 1
use_displaced_mesh = 0
execute_on = timestep_begin
[../]
[./casl_clad_surface_heat_flux]
type = LayeredSideFluxAverage
variable = temp
boundary = 2
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
diffusivity = thermal_conductivity
execute_on = timestep_begin
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200
min_value = 0
[../]
[]
# ==================================================== #
# Solver Options
# ==================================================== #
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
verbose = true
line_search = 'none'
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 0.0001
nl_abs_tol = 1e-10
# ================================================== #
# Time Step Control
# ================================================== #
start_time = -100
end_time = 5e6
dtmin = 0.1
dtmax = 1e6
dt = 10
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 1000
time_t = '0 1.0e4 53200 1.0e5'
time_dt = '1.0e3 1.0e3 1.0e3 1.0e5'
[../]
[]
[Postprocessors]
# ================================================== #
# Required for Fission Gas Release Models
# ================================================== #
[./ave_temp_interior]
# used to compute temperature of plenum
type = SideAverageValue
boundary = 9
variable = temp
outputs = exodus
execute_on = 'initial linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
outputs = exodus
execute_on = linear
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
outputs = exodus
execute_on = 'initial linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
execute_on = linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
execute_on = linear
[../]
[./_dt]
type = TimestepSize
execute_on = timestep_end
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[]
# ==================================================== #
# Location and format of output
# ==================================================== #
[Outputs]
perf_graph = true
exodus = true
file_base = pin2_output
interval = 1
[./console]
type = Console
max_rows = 25
output_linear = true
[../]
[]
assessment/LWR/validation/RE_Ginna_Rodlets/analysis/RE_Ginna_rodlet-2/RE_Ginna_rodlet_2_tm.i
[GlobalParams]
density = 10321.2 #94% TD = 10980
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = rodlet2_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 11e-6 # 2D grain radius 11.0e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = rodlet2_power.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = rodlet2_axial_peaking.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 115266861.8 115267221.8'
y = '0.006533 1 1 0.006533'
[../]
[./flux]
type = PiecewiseLinear
data_file = rodlet2_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_temp_bc]
type = PiecewiseBilinear
data_file = rodlet2_clad_bc.csv
axis = 1
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
temperature = temp
eigenstrain_names = 'fuel_thermal_strain fuel_swelling_strain fuel_relocation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz hydrostatic_stress'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
temperature = temp
eigenstrain_names = 'clad_thermal_strain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00324
a_upper = 0.545022
fuel_outer_radius = 0.0044515
i_enrich = '0.0352 .9648 0 0 0 0' # 3.52% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.1e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation] # relocation strain measure for UO2
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
linear_heat_rate_function = q
gap = 1.9e-4
diameter = 0.008903
burnup_relocation_stop = 0.0186
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temp
burnup_function = burnup
initial_fuel_density = 10321.2
eigenstrain_name = fuel_swelling_strain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor] # isotropic elasticity tensor for Zry cladding
type = ZryElasticityTensor
block = 1
[../]
[./clad_stress] # stress update class to govern the return mapping algorithm for creep
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_creep'
block = 1
[../]
[./clad_creep] # creep for zircaloy cladding
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_strain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 115267221.8
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = 1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = 1
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = '3'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/HBEP/analysis/BK365/SM/HBEP_BK365_sm.i
[GlobalParams]
density = 10233 #93.2% of TD (TD assumed to be 10980)
initial_porosity = 0.068
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = HBEP.e
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 10.60e-6 # must be the same as the initial value in Sifgr
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
# reads and interpolates an input file containing rod average linear power vs time
type = PiecewiseLinear
data_file = BK365_linear_power.csv
format = columns
[../]
[./axial_peaking_factors]
# reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = BK365_power_peaking_factors.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
# reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
#Ambient for initial build @ 0.101353 MPa, PWR @ 13.73 MPa and PIE @ 0.101353 MPa
x = '-100 0 137115360'
y = '0.007382 1 0.007382'
[../]
[./flux]
type = PiecewiseLinear
data_file = BK365_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = BK365_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
# reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = BK365_clad_temp_peaking_factors.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1 # fission rate applied to the fuel only
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
a_lower = 0.00324
a_upper = 1.02024
fuel_outer_radius = 4.095e-3
fuel_inner_radius = 1.24e-3
i_enrich = '0.0707 0.9293 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = pellet_type_1
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = '1'
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = '1'
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./hydrostatic_stress]
block = pellet_type_1
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
# computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
index = 0
execute_on = timestep_end
block = 1
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
index = 1
execute_on = timestep_end
block = 1
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
index = 3
execute_on = timestep_end
block = 1
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
index = 2
execute_on = timestep_end
block = 1
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = 1
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
system = constraint
penalty = 1e7
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = .955e-6
roughness_fuel = 1.5e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 13.73e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.88e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = plenum_temperature
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = pellet_type_1
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic
dep_matl_props = deltav_v0_bd
block = pellet_type_1
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = .00819
q = q
gap = 1.7e-4 #diameteral gap
relocation_activation1 = 5000 # intial relocation activation power set to 5kW/m
burnup_relocation_stop = .04
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_thermal_expansion = true
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
diff_coeff_option = 2
transient_option = 2
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 50
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 137115360
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_history
max_function_change = 2e6
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block =pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.017 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = pellet_type_1
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = pellet_type_1
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 4784
[../]
[./maxFuelPenetration]
type = NodalMaxValue
boundary = 10 # pellet_centerline
variable = penetration
[../]
[./minFuelPenetration]
type = NodalExtremeValue
boundary = 10 # pellet_centerline
value_type = min
variable = penetration
[../]
[./clad_fuel_gap]
type = NodalMaxValue
variable = penetration
boundary = 10
[../]
[./max_cont_press]
type = NodalMaxValue
variable = contact_pressure
boundary = 10
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/IFA_636/analysis/IFA_636/IFA_636.i
[GlobalParams]
density = 10551.78
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa636.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = IFA_636_power_history.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = IFA_636_axial_peaking.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 213162351 213260400'
y = '0.0307 1 1 0.0307'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = IFA_636_clad_bc.csv
format = columns
scale_factor = 1
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
factor = 1.6e12
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = total_swell
execute_on = timestep_end
block = 3
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00324000
a_upper = 0.39524
fuel_volume_ratio = 1
fuel_inner_radius = 0.0
fuel_outer_radius = 0.0040975
i_enrich = '0.0425 .9575 0 0 0 0'
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.33e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
save_in = 'saved_x saved_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
save_solid_swell = true
save_densification = true
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
initial_porosity = 0.039
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.008195
gap = 156.0e-6
q = q
burnup_relocation_stop = 0.029
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
initial_porosity = 0.039
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 213260400
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 15
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 3
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[./disp_y_node_zero]
type = NodalVariableValue
nodeid = 0
variable = disp_y
[../]
[./disp_y_node_one]
type = NodalVariableValue
nodeid = 1
variable = disp_y
[../]
[./disp_y_node_eight]
type = NodalVariableValue
nodeid = 8
variable = disp_y
[../]
[./disp_y_node_thirteen]
type = NodalVariableValue
nodeid = 13
variable = disp_y
[../]
[./disp_y_node_18]
type = NodalVariableValue
nodeid = 18
variable = disp_y
[../]
[./disp_y_node_23]
type = NodalVariableValue
nodeid = 23
variable = disp_y
[../]
[./disp_y_node_28]
type = NodalVariableValue
nodeid = 28
variable = disp_y
[../]
[./disp_y_node_33]
type = NodalVariableValue
nodeid = 33
variable = disp_y
[../]
[./disp_y_node_38]
type = NodalVariableValue
nodeid = 38
variable = disp_y
[../]
[./disp_y_node_43]
type = NodalVariableValue
nodeid = 43
variable = disp_y
[../]
[./disp_y_node_48]
type = NodalVariableValue
nodeid = 48
variable = disp_y
[../]
[./disp_y_node_53]
type = NodalVariableValue
nodeid = 53
variable = disp_y
[../]
[./fuel_disp_y_average]
type = AverageNodalVariableValue
boundary = 21
variable = disp_y
[../]
[./volumetric_strain]
type = ElementAverageValue
block = 3
variable = deltav_v0_swe
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fis_gas_released fuel_disp_y_average rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_transient_model_bup_dependent.i
# This is a test for the transient capability included in the Sifgrs fission gas behavior model. This test the option for considering a
# burnup-dependent central temperature, which account for the gradual weakening of grain boundaries due to irradiation-created defects.
# The option for the burnup-dependent transient release model is transient_option = 1.
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Temp_func]
type = PiecewiseLinear
x = '0. 10000000. 10000500. 10010500. 10011000. 100000000. 100000500. 100010500. 100011000.'
y = '1000. 1000. 2300. 2300. 1000. 1000. 2300. 2300. 1000.'
[../]
[./Fiss_func]
type = PiecewiseLinear
x = '0. 10000000. 10000500. 10010500. 10011000. 100000000. 100000500. 100010500. 100011000.'
y = '1.e19 1.e19 3.e19 3.e19 1.e19 1.e19 3.e19 3.e19 1.e19'
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 1000.
[../]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./burnup]
order = FIRST
family = LAGRANGE
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.0626
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
add_variables = false
strain = FINITE
eigenstrain_names = 'fuel_volumetric_strain'
volumetric_locking_correction = false
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./brnp]
type = BurnupAux
variable = burnup
block = 1
fission_rate = fission_rate
density = 10417.
execute_on = 'initial timestep_begin'
[../]
[./porosity]
type = PorosityAuxUO2
block = 1
variable = porosity
execute_on = 'initial linear'
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
block = 1
execute_on = 'linear'
[../]
[./fractcov]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
block = 1
execute_on = 'initial linear'
[../]
[./satcov]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
block = 1
execute_on = 'initial linear'
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[../]
[./x]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0
[../]
[./y]
type = DirichletBC
variable = disp_y
boundary = '1 2'
value = 0
[../]
[./z]
type = DirichletBC
variable = disp_z
boundary = '1 2'
value = 0
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 1
temp = T
burnup = burnup
initial_porosity = 0.05
porosity = porosity
thermal_conductivity_model = NFIR
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 1
temp = T
fission_rate = fission_rate
transient_option = 1
burnup = burnup
diff_coeff_option = 3
[../]
[./density]
type = Density
block = 1
density = 10417.
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
temperature = T
burnup = burnup
initial_fuel_density = 10417.0
eigenstrain_name = fuel_volumetric_strain
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.
end_time = 100011000
num_steps = 5000
dtmax = 100000
dtmin = 1
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100000
optimal_iterations = 10
iteration_window = 4
growth_factor = 1
linear_iteration_ratio = 100
time_t = '0 100000000 100000500 100010500'
time_dt = '100000 100 1000 100'
[../]
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[./burnup]
type = ElementAverageValue
variable = burnup
block = 1
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
assessment/LWR/validation/IFA_534/analysis/rod_18/SM/IFA_534_rod18_sm.i
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
disp_x = disp_x
disp_y = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = IFA534_rod18.e
patch_size = 5 # 20 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 11.05e-6 # must be the same as the initial value in Sifgr
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = IFA534_linear_power_rod18.csv
format = columns
[../]
[./axial_peaking_factors]
# reads and interpolates an input file containing the axial power profile vs time
type = ParsedFunction
value = 1
[../]
[./pressure_ramp]
# reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
#Ambient for initial build @ 0.101353 MPa, Base irradiation in a PWR @ 15.5 MPa, Ambient for refab @ 0.101353 MPa, Ramp testing done in the Halden Rx @ 3.2 MPa, Ambient for PIE @ 0.101353 MPa
x = '-100 0 127353600 127357200 127425420 127432620 136365300 136368900'
y = '0.006539 1 1 0.006539 0.006539 0.20645 0.20645 0.006539'
[../]
[./flux]
type = PiecewiseLinear
data_file = IFA534_fast_flux_rod18.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_bc]
type = PiecewiseLinear
data_file = IFA534_clad_temp_rod18.csv
format = columns
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1 # fission rate applied to the fuel only
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
a_lower = 0.00324
a_upper = .407
fuel_outer_radius = .00456
fuel_inner_radius = 0
i_enrich = '0.0384 0.9616 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = pellet_type_1
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = '1'
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = '1'
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./hydrostatic_stress]
block = pellet_type_1
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
# computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
index = 0
execute_on = timestep_end
block = 1
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
index = 1
execute_on = timestep_end
block = 1
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
index = 3
execute_on = timestep_end
block = 1
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
index = 2
execute_on = timestep_end
block = 1
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = 1
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
disp_x = disp_x
disp_y = disp_y
system = constraint
penalty = 1e7
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 127360800
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.15e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = plenum_temperature
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
refab_time = 127360800
refab_pressure = 2.15e6
refab_temperature = 293
refab_volume = 5.1e-6
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic
dep_matl_props = deltav_v0_bd
block = 3
disp_r = disp_x
disp_z = disp_y
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = .00912
q = q
gap = 170e-6 #diameteral gap
relocation_activation1 = 5000 # intial relocation activation power set to 5kW/m
burnup_relocation_stop = .029
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
disp_r = disp_x
disp_z = disp_y
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
model_thermal_expansion = false
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
initial_porosity = 0.05
gbs_model = true
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
disp_r = disp_x
disp_z = disp_y
[../]
[./fuel_density]
type = Density
block = 3
disp_r = disp_x
disp_z = disp_y
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 136369000
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_history
max_function_change = 2e6
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = .407 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = pellet_type_1
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 1700
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_diffusion_coefficient.i
# Analytical test for the diffusion coefficient of the Sifgrs fission gas behavior model.
#
# For the purpose of verifying the implementation of the diffusion coefficient, the BISON results are compared with an independent calculations (see attached file regression_tests_sifgrs.xlsx).
# The formulation for the diffusion coefficient adopted in the Sifgrs model is based on the formulation of Turnbull et al. (JNM 107, 168, 1982; Preston, England, September 18-22, 1988).
#
# Variable definitions
# T = temperature in K
# F = Fission rate in fissions/(m^3*s)
# k = Boltzmann constant in J/K = 1.380651e-23
# Zo = fragment influence; fission fragment range of influence in meters = 1e-9
# lf = fragment range; fission fragment travel distance before coming to rest in meters = 6e-6
#
# Equations and sample calculations
#
# Use T = 1700 K, F = 2.5e19 fission/m^3s
#
# Diffusion coefficient terms (m^2/s)
#
# D1 = intrinsic term = 7.6e-10 * exp(-4.8599e-19/kT)
# D1 = 7.73e-19
#
# D2 = enhanced vacancy term = 1.41e-25 * exp(-1.9053e-19/kT) * sqrt(F)
# D2 = 2.10e-19
#
# The purely rating dependent term D3 is neglected (see, e.g., P. Losonen JNM, 304, 29, 2002)
#
# D = single gas atom diffusion coefficient = D1 + 4*D2
# D = 1.61e-18
#
# Based on the formulation of Speight (Nuclear Science and Engineering 37, 180, 1969), include effects of intragranular trapping and resolution to compute an effective diffusion coefficient. The trapping and resolution rates are computed using relations from White and Tucker (JNM 118, p1, 1983)
#
# R = Intragranular bubble radius in m = 5e-10*(1 + 106*exp(-8703/T))
# R = 8.17e-10
#
# Radius_sum = intragranular bubble radius + fragment influence = R + Zo in m
# Radius_sum = 1.82e-09
#
# CBtot = intragranular bubble concentration in 1/m^3 = 1.52e+27 / T - 3.3e+23
# CBtot = 5.64e+23
#
# g = trapping rate = 4 * pi * R * D * CBtot
# g = 5.70e-03
#
# b = resolution rate = 3.03 * F * pi * lf * Radius_sum^2
# b = 4.71e-03
#
# Deff = effective diffusion coefficient = D*b/(b + g)
# Deff = 5.41e-19
#
# Example problem description
#
# A single hex 8 element is used to solve the heat equation with no source term. One boundary of the block is insulated while the
# boundary opposite to the insulated boundary is assigned a prescibed Dirichlet boundary condition defined by a function.
# The function increases the temperature, starting at 800 K increasing linearly to 1700 K. At the same time, the fission rate is increasing linearly from 1e19 to 2.5e19. At the final time in this calculation, Deff should equal 5.41e-19.
# See also the sheet sifgr_diffusion_coefficient of the attached file (regression_tests_sifgrs.xlsx), which plots Deff values from this calculation and independent calculations. One should be able to reproduce that plot with the results from this test.
#
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Temp_func]
type = PiecewiseLinear
x = '0 1.2e7'
y = '800 1700'
scale_factor = 1
[../]
[./Fiss_func]
type = PiecewiseLinear
x = '0 1.2e7'
y = '1e19 2.5e19'
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 800.0
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./diffusion_coefficient]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[../]
[]
[Materials]
[./UO2]
type = HeatConductionMaterial
block = 1
temp = T
thermal_conductivity = 1.0
specific_heat = 1.0
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 1
temp = T
fission_rate = fission_rate
testing_output = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 12
dt = 1e6
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 1
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[]
[Outputs]
exodus = true
[]
examples/triso_particle_2D-RZ/triso2D_accident.i
# This example is 2D-RZ analysis of a TRISO fuel particle. Fully coupled
# heat transfer and solid mechanics, plus diffusion of the fission product
# species cesium (Cs) are simulated. The mesh includes contact surfaces
# between the buffer and IPyC layers to facilitate a gap opening between
# these layers. These surfaces are initially in mechanical contact but
# are assumed to have no strength in tension. A coarse mesh is used to
# provide a short run time.
# The calculation simulates fuel-life in three steps. The first step is an
# irradiation period, where constant power and a fixed particle surface
# temperature (1500 K) are assumed over a lifetime of 76 Ms (2.4 yrs).
# For the second step, fuel removal and storage are simulated by setting
# the reactor power and Cs source terms to zero, reducing the particle
# surface temperature to ambient (300 K), and then holding it at ambient
# temperature for 100 days. A third and final step simulates accident
# behavior by increasing the particle surface temperature from ambient
# to 2073 K over 2 hrs, and then holding it at this elevated temperature
# for an additional 200 hrs. At the particle outer boundary, the Cs
# concentration is held at zero and the pressure at ambient during the
# entire simulation. The particle is assumed to be stress-free at an
# initial temperature of 1500 K.
#
# Details about this simulation are given in Section 4 of the following
# article: J. D. Hales, R. L. Williamson, S. R. Novascone, D. M. Perez,
# B. W. Spencer and G. Pastore, "Multidimensional multiphysics simulation
# of TRISO particle fuel", Journal on Nuclear Materials, Vol. 443, p. 531,
# 2013.
[GlobalParams]
density = 11000.0 # kg/m^3
order = SECOND
family = LAGRANGE
disp_x = disp_x
disp_y = disp_y
displacements = 'disp_x disp_y'
[]
[Mesh]
file = triso2Dmed.e
[]
[Problem]
coord_type = RZ
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 1500.0
[../]
[./conc]
initial_condition = 0.0
scaling = 1e18
[../]
[]
[AuxVariables]
[./fluence]
[../]
[./fast_neutron_flux]
[../]
[./fission_rate]
block = fuel
[../]
[./burnup]
block = fuel
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_condSlave]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[../]
[./temp_bc]
type = PiecewiseLinear
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[../]
[./k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[../]
[./d1_function]
type = ParsedFunction
value = 'exp(t/4.5e25)'
[../]
[./d_gap]
type = PiecewiseLinear
x = '1500 2100'
y = '1e-14 1e-12'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
disp_r = disp_x
disp_z = disp_y
[../]
[]
[Kernels]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[./mass_ie]
type = TimeDerivative
variable = conc
[../]
[./mass]
type = ArrheniusDiffusion
variable = conc
[../]
[./mass_source]
type = BodyForce
variable = conc
function = power_history
value = 1.22e-5 # units of moles/m**3-s
block = fuel
[../]
[./mass_decay]
type = Decay
variable = conc
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = power_history
factor = 5e17
execute_on = timestep_begin
[../]
[./fluence]
type = FastNeutronFluenceAux
variable = fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fission_rate]
type = FissionRateAux
variable = fission_rate
block = fuel
function = power_history
value = 3.89e19
execute_on = timestep_begin
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./stress_xy]
type = MaterialTensorAux
tensor = stress
variable = stress_xy
index = 3
execute_on = timestep_end
[../]
[./stress_yz]
type = MaterialTensorAux
tensor = stress
variable = stress_yz
index = 4
execute_on = timestep_end
[../]
[./stress_xz]
type = MaterialTensorAux
tensor = stress
variable = stress_xz
index = 5
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./creep_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_xx
index = 0
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[../]
[./creep_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_yy
index = 1
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[../]
[./creep_zz]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_zz
index = 2
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[../]
[./conductanceSlave]
type = MaterialRealAux
property = gap_conductance
variable = gap_condSlave
boundary = BufferGapBndry
execute_on = linear
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 15
slave = 17
penalty = 1e5
model = frictionless
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 15
slave = 17
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
#quadrature = true
[../]
[./cesium_contact]
type = GapHeatTransfer
variable = conc
master = 15
slave = 17
tangential_tolerance = 1e-6
gap_conductivity_function = d_gap
gap_conductivity_function_variable = temp
appended_property_name = _conc
#quadrature = true
[../]
[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
[./no_disp_y]
type = DirichletBC
variable = disp_y
boundary = yzero #1
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = FunctionDirichletBC
variable = temp
boundary = exterior
function = temp_bc
[../]
# fix concentration on free surface
[./freesurf_conc]
type = PresetBC
variable = conc
boundary = exterior
value = 0.0
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = BufferGapVol
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[Materials]
[./fission_gas_release] # Sifgrs fission gas release mode
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temp = temp
burnup = burnup
initial_porosity = 0.0
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = MATPRO
block = fuel
temp = temp
burnup = burnup
[../]
[./fuel_disp] # thermal and irradiation creep for UO2 (BISON kernel)
type = Elastic
block = fuel
disp_r = disp_x
disp_z = disp_y
temp = temp
youngs_modulus = 2.2e11
poissons_ratio = .345
thermal_expansion = 10e-6
[../]
[./fuel_den]
type = Density
block = fuel
[../]
[./fuel_conc]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
[./PyCBuffer]
type = PyCIrradiationStrain
block = buffer
fluence = fluence
pyc_type = buffer
[../]
[./buffer_disp]
type = CreepPyC
block = buffer
temp = temp
youngs_modulus = 2.0e10
poissons_ratio = 0.23
thermal_expansion = 5.65e-6
disp_r = disp_x
disp_z = disp_y
flux = fast_neutron_flux
density = 1000.0 #kg/m^3
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_den]
type = Density
density = 1000.0 #kg/m^3
block = buffer
[../]
[./buffer_conc]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
[./IPyC_densify]
type = PyCIrradiationStrain
block = IPyC
fluence = fluence
pyc_type = dense
[../]
[./IPyC_disp]
type = CreepPyC
block = IPyC
temp = temp
youngs_modulus = 4.74e10
poissons_ratio = 0.23
thermal_expansion = 5.65e-6
disp_r = disp_x
disp_z = disp_y
flux = fast_neutron_flux
density = 1900.0 # kg/m^3
[../]
[./IPyC_temp]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./IPyC_den]
type = Density
density = 1900.0 # kg/m^3
block = IPyC
[../]
[./IPyC_conc]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
[./SiC_disp]
type = CreepSiC
block = SiC
disp_r = disp_x
disp_z = disp_y
temp = temp
k_function = k_function
fast_neutron_flux = fast_neutron_flux
youngs_modulus = 3.4e11
poissons_ratio = .13
thermal_expansion = 4.9e-6
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_den]
type = Density
density = 3180.0 # kg/m^3
block = SiC
[../]
[./SiC_conc]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
[./OPyC_densify]
type = PyCIrradiationStrain
block = OPyC
fluence = fluence
pyc_type = dense
[../]
[./OPyC_disp]
type = CreepPyC
block = OPyC
temp = temp
youngs_modulus = 4.74e10
poissons_ratio = 0.23
thermal_expansion = 5.65e-6
disp_r = disp_x
disp_z = disp_y
flux = fast_neutron_flux
density = 1900.0 # kg/m^3
[../]
[./OPyC_temp]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./OPyC_den]
type = Density
density = 1900.0 # kg/m^3
block = OPyC
[../]
[./OPyC_conc]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 5e-4
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 85.3682e6
dt = 20
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 6
growth_factor = 1.5
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[../]
[./Quadrature]
order = THIRD
[../]
[]
[Postprocessors]
[./Cs_release]
type = SideIntegralMassFlux
variable = conc
boundary = exterior
execute_on = timestep_end
[../]
[./dt]
type = TimestepSize
execute_on = timestep_end
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./volumeTotal]
type = InternalVolume
boundary = exterior
execute_on = 'initial timestep_end'
[../]
[./volumeFuel]
type = InternalVolume
boundary = fuel
execute_on = 'initial timestep_end'
[../]
[./volumeGas]
type = InternalVolume
boundary = BufferGapVol
# ro = 3.125e-4
# ri = 2.125e-4
# vb = 4/3*pi*(ro^3-ri^3) = 8.76e-11
# buffer density = 1000
# PyC density = 1900
# fill ratio = 10/19
# vb*10/19 = 4.6e-11
# Must remove 4.6e-11 m^3 from the volume
addition = -4.6e-11
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./volumeBufferShell]
type = InternalVolume
boundary = BufferGapVol
execute_on = 'initial timestep_end'
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = BufferGapVol
variable = temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[]
[Outputs]
perf_graph = true
exodus = true
[./console]
type = Console
max_rows = 25
[../]
[]
assessment/LWR/validation/HBEP/analysis/BK370/HBEP_BK370.i
[GlobalParams]
density = 10233 #93.2% of TD (TD assumed to be 10980)
initial_porosity = 0.068
displacements = 'disp_x disp_y'
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = HBEP.e
patch_size = 5 # 20 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 10.60e-6
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
# reads and interpolates an input file containing rod average linear power vs time
type = PiecewiseLinear
data_file = BK370_linear_power.csv
format = columns
[../]
[./axial_peaking_factors]
# reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = BK370_power_peaking_factors.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
# reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
#Ambient for initial build @ 0.101353 MPa, PWR @ 13.73 MPa and PIE @ 0.101353 MPa
x = '-100 0 108313920'
y = '0.007382 1 0.007382'
[../]
[./flux]
type = PiecewiseLinear
data_file = BK370_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear #PiecewiseConstant
data_file = BK370_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
# reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = BK370_clad_temp_peaking_factors.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
decomposition_method = EigenSolution
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
[../]
[./clad]
block = clad
strain = FINITE
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
decomposition_method = EigenSolution
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz creep_strain_xx
creep_strain_xy creep_strain_yy vonmises_stress'
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3 # fission rate applied to the fuel only
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
a_lower = 0.00324
a_upper = 1.02024
fuel_outer_radius = 4.095e-3
fuel_inner_radius = 1.24e-3
i_enrich = '0.0707 0.9293 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = 3
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./hydrostatic_stress]
block = 3
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = hydrostatic
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_hoop
index_i = 2
index_j = 2
execute_on = timestep_end
block = clad
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = clad
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
system = constraint
penalty = 1e7
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = .955e-6
roughness_fuel = 1.5e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionPresetBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 13.73e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.88e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = plenum_temperature
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[Materials]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup_function = burnup
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
initial_fuel_density = 10233
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
stress_free_temperature = 300
thermal_expansion_coeff = 10e-6
eigenstrain_name = fuel_thermal_eigenstrain
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = .00819
linear_heat_rate_function = q
gap = 1.7e-4 #diameteral gap
relocation_activation1 = 5000 # intial relocation activation power set to 5kW/m
burnup_relocation_stop = .04
eigenstrain_name = fuel_relocation_eigenstrain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = clad
tangent_operator = elastic
inelastic_models ='clad_creep_stress'
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = clad_irradiation_growth_eigenstrain
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 300
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
diff_coeff_option = 2
transient_option = 2
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 50
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 108313920
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_history
max_function_change = 2e6
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block =3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.017 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 3
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = 3
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 4784
[../]
[./maxFuelPenetration]
type = NodalMaxValue
boundary = 10 # pellet_centerline
variable = penetration
[../]
[./minFuelPenetration]
type = NodalExtremeValue
boundary = 10 # pellet_centerline
value_type = min
variable = penetration
[../]
[./clad_fuel_gap]
type = NodalMaxValue
variable = penetration
boundary = 10
[../]
[./max_cont_press]
type = NodalMaxValue
variable = contact_pressure
boundary = 10
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/Tribulation/analysis/BN1X3/BN1X3_tm.i
[GlobalParams]
density = 10408
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
initial_porosity = 0.05345
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
type = SmearedPelletMesh
dim = 2
pellet_quantity = 1
pellet_height = 1.0019
pellet_outer_radius = 0.00402
pellet_mesh_density = customize
nx_p = 11
ny_p = 243
clad_bot_gap_height = 0.001
clad_gap_width = 100.0e-6
clad_thickness = 0.00063
clad_mesh_density = customize
nx_c = 4
ny_c = 249
top_bot_clad_height = 0.00224
clad_top_gap_height = 0.0883
elem_type = QUAD8
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = 3
initial_condition = 8.58e-6 # 2D grain radius 11e-6/2*1.56
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseBilinear
data_file = BN1X3_power.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 34462368 34548768 34635168 35176032 35262432 35348832 90228384 90314784'
y = '0.0073804 1 1 0.0073804 1.01974 1.01974 0.0073804 1 1 0.0073804'
[../]
[./flux]
type = PiecewiseBilinear
data_file = BN1X3_fast_flux.csv
axis = 1
[../]
[./clad_temp_bc]
type = PiecewiseBilinear
data_file = BN1X3_clad_temp.csv
axis = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./timestep_function]
type = PiecewiseLinear
data_file = BN1X3_time_function.csv
format = columns
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
i_enrich = '0.0825 0.9175 0 0 0 0' # 8.25% enriched U-235
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 0.3e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 13.729e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.96133e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup = burnup
linear_heat_rate_function = power_history
relocation_activation1 = 5000
burnup_relocation_stop = 0.0205
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10393
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 60
l_tol = 8e-3
nl_max_its = 30
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 90314784
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 20
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = timestep_function
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[./fuel_max_temp]
type = ElementExtremeValue
block = 3
variable = temp
[../]
[./fuel_average_temp]
type = ElementAverageValue
block = 3
variable = temp
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage fuel_average_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/RefinementStudy/TSQ002_1pt5_fortyslice.i
# Model is of a 40 slice pellet stack in 1.5D
# Top plenum height of 295.07 mm + bot_gap_height = 1.e-3 in 2D mesh
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
displacements = disp_x
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = Layered1DMesh
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
pellet_inner_radius = 0.0
pellet_outer_radius = 0.0041275
clad_gap_width = 8.89e-5
clad_thickness = 6.35e-4
fuel_height = 3.81381
plenum_height = 0.29607
slices_per_block = 40
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 300.0 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./grain_radius]
block = fuel
initial_condition = 8.7945e-6 # ((11.6+11.2+11.2+11.1)/4)/2*1.56
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_zz]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear # reads an input file containing rod average linear power vs time
data_file = TSQ002_alhr.csv
format = columns
[../]
[./axial_peaking_factors]
# reads an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = TSQ002_alhr_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
# reads an input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
x = '-100 0 141798626 141802226' # -100 @ 101326 Pa, 0 to 141798626 @ 15.517 MPa, 141802226 @ 101326 Pa
y = '.00653 1 1 .00653'
[../]
[./flux]
type = PiecewiseLinear
data_file = TSQ002_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = TSQ002_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
# reads an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = TSQ002_clad_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[./clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 15.517e6
fuel_pin_geometry = pin_geometry
[../]
[./fuel_axial_pressure]
type = ParsedFunction
value = plenum_pressure
vars = plenum_pressure
vals = plenum_pressure
[../]
[]
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = fuel # fission rate applied to the fuel only
fission_rate = fission_rate # coupling to the fission_rate aux variable
[../]
[]
[Modules]
[./TensorMechanics]
[./Layered1DMaster]
[./fuel]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = fuel
out_of_plane_pressure = fuel_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_strain fuel_volumetric_strain'
[../]
[./clad]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = clad
out_of_plane_pressure = clad_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
[../]
[../]
[../]
[]
[Burnup]
[./burnup]
block = fuel
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
fuel_pin_geometry = pin_geometry
i_enrich = '0.0348 0.9652 0 0 0 0' # 3.48% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = fuel
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises_stress
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = VonMisesStress
execute_on = timestep_end
block = fuel
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xx
index_i = 0
index_j = 0
block = clad
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xy
index_i = 0
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_zz
index_i = 2
index_j = 2
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
formulation = kinematic
system = constraint
penalty = 1e7
model = frictionless
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '2'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '2'
factor = 15.517e6
function = pressure_ramp # use the pressure_ramp function defined above
displacements = 'disp_x'
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.62e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup = burnup
linear_heat_rate_function = q
fuel_pin_geometry = pin_geometry
relocation_activation1 = 5000
burnup_relocation_stop = 0.024
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = fuel
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
initial_porosity = 0.05
burnup = burnup
gbs_model = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 7.5e10
poissons_ratio = 0.3
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 20.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type'
petsc_options_value = ' lu'
line_search = 'none'
# controls for linear iterations
l_max_its = 100
l_tol = 1e-4 #8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 141802226 #141798626+3600
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
force_step_every_function_point = true
timestep_limiting_function = power_history
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
execute_on = 'initial linear'
fuel_pin_geometry = pin_geometry
[../]
[./clad_inner_vol]
type = LayeredInternalVolumePostprocessor
boundary = 7
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./pellet_volume]
type = LayeredInternalVolumePostprocessor
boundary = 8
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./avg_clad_temp]
type = LayeredSideAverageValuePostprocessor
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
fuel_pin_geometry = pin_geometry
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./gas_volume]
type = LayeredInternalVolumePostprocessor
boundary = 9
execute_on = 'initial linear'
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./flux_from_clad]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 5
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_fuel]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.81 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = fuel
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = fuel
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 231 # Global node id 232, at coordinates (0.0, 1.71774, 0.0)
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[./max_penetration]
type = NodalExtremeValue
block = fuel
value_type = max
variable = penetration
[../]
[./min_penetration]
type = NodalExtremeValue
block = fuel
value_type = min
variable = penetration
[../]
[./max_contact_pressure]
type = NodalExtremeValue
block = fuel
value_type = max
variable = contact_pressure
[../]
[./min_contact_pressure]
type = NodalExtremeValue
block = fuel
value_type = min
variable = contact_pressure
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = fuel
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
## Nodal comparison values
[./top_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 1654 #coords (0.0041275, 3.62274)
[../]
[./top_disp_r_clad]
type = NodalVariableValue
variable = disp_x
nodeid = 306 #coords (0.0042164, 3.62274)
[../]
[./plenum_disp_r_clad]
type = NodalVariableValue
variable = disp_x
nodeid = 351 #coords (0.0042164, 3.96053)
[../]
[./top_radial_strain_fuel]
type = ElementalVariableValue
variable = strain_xx
elementid = 787
[../]
[./top_axial_strain_fuel]
type = ElementalVariableValue
elementid = 787
variable = strain_yy
[../]
[./top_radial_strain_clad]
type = ElementalVariableValue
variable = strain_xx
elementid = 136
[../]
[./top_axial_strain_clad]
type = ElementalVariableValue
variable = strain_yy
elementid = 136
[../]
[./plenum_radial_strain_clad]
type = ElementalVariableValue
variable = strain_xx
elementid = 156
[../]
[./plenum_axial_strain_clad]
type = ElementalVariableValue
variable = strain_yy
elementid = 156
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_1'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_fuel_radial_displacement'
[../]
#Uncomment to print out axial FCT and PST at every timestep
#[./pellet_temp]
# type = NodalValueSampler
# variable = temp
# boundary = 10
# sort_by = y
# outputs = 'outfile_fuel_surface_temp'
#[../]
#[./pellet_center_temp]
# type = NodalValueSampler
# variable = temp
# boundary = 12
# sort_by = y
# outputs = 'outfile_FCT'
#[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./outfile_1]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
#Uncomment to print out axial FCT and PST at every timestep
#[./outfile_fuel_surface_temp]
# type = CSV
# execute_on = linear
#[../]
#[./outfile_FCT]
# type = CSV
# execute_on = linear
#[../]
[./console]
type = Console
max_rows = 25
[../]
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BEN013/SM/BEN013.i
################################################################################
#
# Description: Calvert Cliffs BEN013
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BEN013_power.csv
# axial peaking factor file BEN013_axial_peaking.csv
# flux boundary condition file BEN013_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10411.07 #94.882 %TD Assume TD = 10972.65 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.28581
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.2e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BEN013_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BEN013_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 177922434 177922794'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 177922434 177922794'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BEN013_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elasticity_and_creep]
type = Elastic #CreepUO2
block = 3
temp = temp
# fission_rate = fission_rate
# cracking_stress = 130e6
# max_cracks = 1
# active_crack_planes = 2
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
# grain_radius = 6.0e-6
# grain_radius = 10.0e-6 # set larger than 6 microns (see ForMas) to impove convergence
# oxy_to_metal_ratio = 2.0
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.0095631 # fuel pellet diamter in meters
gap = 190.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .029 # turn off relocation
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 177922794
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
# execute_on = 'FINAL'
sync_times = '3600 7200 10800 14400 177922434 177922794'
sync_only = true
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/UFE067/TM/UFE067_tm.i
################################################################################
#
# Description: Calvert Cliffs UFE067
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file UFE067_power.csv
# axial peaking factor file UFE067_axial_peaking.csv
# flux boundary condition file UFE067_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10396.59 #94.75 %TD Assume TD = 10972.65 kg/m3
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.30013
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.2e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = UFE067_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = UFE067_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 141158832 141159192'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 141158832 141159192'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = UFE067_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155
i_enrich = '0.0398 .9602 0 0 0 0' # 3.98% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 2e8
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 5e-6
al_incremental_slip_tolerance = 1e-4
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0095631 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 190.5e-6 #diametral gap in m
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10411.07
total_densification = 0.01
initial_porosity = 0.05
eigenstrain_name = fuel_volumetric_strain
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 60
l_tol = 8e-3
nl_max_its = 60
nl_rel_tol = 1e-4
nl_abs_tol = 1e-7
start_time = -100
end_time = 141159192
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Super_Ramp/analysis/PK22/PK22.i
[GlobalParams]
density = 10340.0
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = false
initial_porosity = 0.057
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temperature'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 10
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 28
pellet_height = 0.011143
pellet_outer_radius = 4.57e-3
pellet_mesh_density = customize
nx_p = 11
ny_p = 84
clad_mesh_density = customize
nx_c = 4
ny_c = 84
clad_gap_width = 70.0e-6
clad_thickness = 0.735e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 15.5e-3
clad_top_gap_height = 33.0e-3
ny_cu = 3
ny_cl = 3
elem_type = QUAD8
[]
[Variables]
[./temperature]
initial_condition = 293.15
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = alhr_history.csv
format = columns
[../]
[./axial_power_factors]
type = PiecewiseBilinear
data_file = axial_lhr_factors.csv
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_power_factors'
[../]
[./clad_out_temp]
type = PiecewiseLinear
data_file = temp_outer_clad_history.csv
format = columns
[../]
[./axial_temp_factors]
type = PiecewiseBilinear
data_file = axial_temp_factors.csv
axis = 1
[../]
[./clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = pressure_coolant.csv
format = columns
[../]
[./fast_flux]
type = PiecewiseLinear
data_file = fast_neutron_flux.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = 3
initial_condition = 4.29e-6
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
block = 3
initial_condition = 0.057
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain
fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy
stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz
creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx
strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temperature
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temperature
execute_on = linear
[../]
[./porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
a_lower = 0.0165
a_upper = 0.328504
number_pellets = 28
execute_on = initial
[../]
[./oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./layered_average_contact_pressure]
type = SpatialUserObjectAux
block = 3
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = 3
execute_on = nonlinear
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 80
num_axial = 20
i_enrich = '0.0321 0.9679 0.0 0.0 0.0 0.0'
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1.0e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
formulation = KINEMATIC
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temperature
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = 5
outer_surfaces = 10
temp = temperature
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temperature
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.25e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temperature
burnup_function = burnup
initial_fuel_density = 10340
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = 3
temperature = temperature
burnup_function = burnup
grain_radius = 4.29e-6
[../]
[./fuel_stress]
type = ComputeSmearedCrackingStress
block = 3
cracking_stress = 3.0e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
linear_heat_rate_function = power_history
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = true
max_relocation_recovery_fraction = 0.5
relocation_scaling_factor = 1
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
output_properties = 'relocation_strain recovered_relocation_strain'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
diff_coeff_option = 3
transient_option = 2
res_param_option = 0
temp = temperature
fission_rate = fission_rate
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6550.0
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temperature
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
fuel_pin_geometry = pin_geometry
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-4
nl_max_its = 30
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
start_time = 0.0
n_startup_steps = 1
end_time = 101359908.0
dtmax = 1.0e6
dtmin = 1.0
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 15
iteration_window = 3
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./avg_gap_conductance]
type = SideAverageValue
boundary = 10
variable = gap_cond
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temperature
nodeid = 3110 #Mesh dependent!
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = strain_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = stress_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 3141 # Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./total_rod_integral_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = 3
[../]
[./total_rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.376004 # rod height
[../]
[./vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = TENSOR
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage central_fuel_temp midplane_contact_pressure'
execute_on = 'FINAL'
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temperature
fuel_pin_geometry = pin_geometry
number_pellets = 28
execute_on = 'initial linear'
[../]
[./layered_average_contact_pressure]
type = LayeredSideAverage
variable = contact_pressure
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[../]
[]
assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ022/SM/TSQ022.i
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = tsq022_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 8.892e-6 # ((11.1+10.9+12.2)/3)/2*1.56
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = TSQ022_alhr.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = TSQ022_alhr_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 141789874 141793474' # -100 @ 101326 Pa, 0 to 141789874 @ 15.517 MPa, 141793474 @ 101326 Pa
y = '.00653 1 1 .00653'
[../]
[./flux]
type = PiecewiseLinear
data_file = TSQ022_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = TSQ022_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
type = PiecewiseBilinear
data_file = TSQ022_clad_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1
fission_rate = fission_rate
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
a_lower = 0.00324
a_upper = 3.81705
fuel_outer_radius = 0.0041275
fuel_inner_radius = 0.0011684
i_enrich = '0.0348 0.9652 0 0 0 0' # 3.48% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = pellet_type_1
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./hydrostatic_stress]
block = pellet_type_1
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
index = 0
execute_on = timestep_end
block = clad
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
index = 1
execute_on = timestep_end
block = clad
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
index = 3
execute_on = timestep_end
block = clad
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
index = 2
execute_on = timestep_end
block = clad
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = clad
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = constraint
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10
initial_moles = initial_moles
master = 5
gas_released = fission_gas_released
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.517e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.62e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic
dep_matl_props = deltav_v0_bd
block = pellet_type_1
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
stress_free_temperature = 300.0
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup = burnup
diameter = 0.008255
q = q
gap = 0.0001778 #diameteral gap
relocation_activation1 = 5000
burnup_relocation_stop = .029
model = ESCORE_modified
[../]
[./swelling]
type = VSwellingUO2
block = pellet_type_1
burnup = burnup
temp = temp
gas_swelling_type = SIFGRS
density = 10431.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
initial_porosity = 0.05
burnup = burnup
gbs_model = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = clad
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
model_thermal_expansion = true
stress_free_temperature = 300.0
model_irradiation_growth = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 20.0
variable = temp
[../]
[]
[Preconditioning]
[./smp]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1e-3
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 141793474 #141789874+3600
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.81381 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = pellet_type_1
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = pellet_type_1
[../]
[./FCT]
type = NodalVariableValue
nodeid = 30330 #coords (0.0011684, 2.10133)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./FCT_slice4]
type = NodalVariableValue
nodeid = 37085 #coords (0.0011684, 1.71896)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = pellet_type_1
variable = vonmises
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises
[../]
## Nodal comparison values
[./gap_slice6]
type = NodalVariableValue
variable = penetration
nodeid = 23579 #coords (0.0041275, 2.48172)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 30299 #coords (0.0041275, 2.10133)
[../]
[./gap_slice4]
type = NodalVariableValue
variable = penetration
nodeid = 37054 #coords (0.0041275, 1.71896)
[../]
[./contact_pressure_slice6]
type = NodalVariableValue
variable = contact_pressure
nodeid = 23579 #coords (0.0041275, 2.48172)
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 30299 #coords (0.0041275, 2.10133)
[../]
[./contact_pressure_slice4]
type = NodalVariableValue
variable = contact_pressure
nodeid = 37054 #coords (0.0041275, 1.71896)
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
temperature = temp
fuel_pellet_blocks = pellet_type_1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
examples/tensor_mechanics/1.5D_rodlet_10pellets/Smeared_2D_tm.i
# Model is of a 10 pellet stack of smeared fuel (pellet_type_2).
[GlobalParams]
density = 10431.0
initial_porosity = 0.05
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = smeared.e
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./solid_swell]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./gas_swell]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./densification]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./relocation]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Kernels]
[./TensorMechanics] #continuum mechanics stress divergence
use_displaced_mesh = true #Incremental formulation
save_in = 'saved_x saved_y'
[../]
#[./gravity] # body force term in stress equilibrium equation
# type = Gravity
# variable = disp_y
# value = -9.81
#[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 0.00324 # mesh dependent
a_upper = 0.12184 # mesh dependent
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 1.0 # for use with dished pellets (ratio of actual volume to cylinder volume)
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_j = 0
index_i = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain
block = clad
execute_on = timestep_end
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./creep_strain_rate]
type = MaterialRealAux
property = creep_rate
variable = creep_strain_rate
block = clad
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[./solid_swell]
type = MaterialRealAux
variable = solid_swell
property = solid_swelling
execute_on = timestep_end
block = pellet_type_1
[../]
[./gas_swell]
type = MaterialRealAux
variable = gas_swell
property = gas_swelling
execute_on = timestep_end
block = pellet_type_1
[../]
[./densification]
type = MaterialRealAux
variable = densification
property = densification
execute_on = timestep_end
block = pellet_type_1
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
execute_on = timestep_end
block = pellet_type_1
[../]
[./relocation_strain]
type = MaterialRealAux
variable = relocation
property = relocation_strain
execute_on = timestep_end
block = pellet_type_1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
quadrature = true
contact_pressure = contact_pressure
[../]
[]
[BCs]
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./fuel_strain]
type = ComputeAxisymmetricRZFiniteStrain
block = pellet_type_1
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
diameter = 0.0082
linear_heat_rate_function = q
gap = 160.0e-6 #diametral gap
burnup_relocation_stop = 0.024
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_1
temperature = temp
burnup_function = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./clad_thermal] # general thermal property input
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_strain]
type = ComputeAxisymmetricRZFiniteStrain
block = clad
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
# PETSC options:
# petsc_options
# petsc_options_iname
# petsc_options_value
#
# controls for linear iterations
# l_max_its
# l_tol
#
# controls for nonlinear iterations
# nl_max_its
# nl_rel_tol
# nl_abs_tol
#
# time control
# start_time
# dt
# optimal_iterations
# iteration_window
# linear_iteration_ratio
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-5
nl_abs_tol = 1e-7
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
# outputs = exodus
execute_on = 'initial linear'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
# outputs = exodus
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial linear'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fisson_gas_release]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./_dt] # time step
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temp
nodeid = 584 # !! Mesh dependent (0.0041, 0.0546333)
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
[../]
### Comparisons for 1.5D work, mesh specific ####################
# von Mises Stress
[./top_vonMises_fuel]
type = ElementalVariableValue
elementid = 77 # mesh dependent (contains pt. 0.0041, 0.0902133)
variable = vonmises
[../]
[./center_vonMises_fuel]
type = ElementalVariableValue
elementid = 176 # mesh dependent (contains pt. 0.0041, 0.0546333)
variable = vonmises
[../]
[./bottom_vonMises_fuel]
type = ElementalVariableValue
elementid = 275 # mesh dependent (contains pt. 0.0041, 0.0190533)
variable = vonmises
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises
block = pellet_type_1
[../]
[./top_vonMises_clad_inner]
type = ElementalVariableValue
elementid = 401 # mesh dependent (contains pt. 0.00418, 0.0896)
variable = vonmises
[../]
[./top_vonMises_clad_outer]
type = ElementalVariableValue
elementid = 398 # mesh dependent (contains pt. 0.00474, 0.0896)
variable = vonmises
[../]
[./center_vonMises_clad_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent (contains pt. 0.00418, 0.0556267)
variable = vonmises
[../]
[./center_vonMises_clad_outer]
type = ElementalVariableValue
elementid = 426 # mesh dependent (contains pt. 0.00474, 0.0556267)
variable = vonmises
[../]
[./bottom_vonMises_clad_inner]
type = ElementalVariableValue
elementid = 461 # mesh dependent (contains pt. 0.00418, 0.0216533)
variable = vonmises
[../]
[./bottom_vonMises_clad_outer]
type = ElementalVariableValue
elementid = 458 # mesh dependent (contains pt. 0.00474, 0.0216533)
variable = vonmises
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises
block = clad
[../]
# radial stress
[./top_stress_rr_fuel]
type = ElementalVariableValue
elementid = 77 # mesh dependent (contains pt. 0.0041, 0.0902133)
variable = stress_xx
[../]
[./center_stress_rr_fuel]
type = ElementalVariableValue
elementid = 176 # mesh dependent (contains pt. 0.0041, 0.0546333)
variable = stress_xx
[../]
[./bottom_stress_rr_fuel]
type = ElementalVariableValue
elementid = 275 # mesh dependent (contains pt. 0.0041, 0.0190533)
variable = stress_xx
[../]
[./average_stress_rr_fuel]
type = ElementAverageValue
variable = stress_xx
block = pellet_type_1
[../]
[./top_stress_rr_clad_inner]
type = ElementalVariableValue
elementid = 401 # mesh dependent (contains pt. 0.00418, 0.0896)
variable = stress_xx
[../]
[./top_stress_rr_clad_outer]
type = ElementalVariableValue
elementid = 398 # mesh dependent (contains pt. 0.00474, 0.0896)
variable = stress_xx
[../]
[./center_stress_rr_clad_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent (contains pt. 0.00418, 0.0556267)
variable = stress_xx
[../]
[./center_stress_rr_clad_outer]
type = ElementalVariableValue
elementid = 426 # mesh dependent (contains pt. 0.00474, 0.0556267)
variable = stress_xx
[../]
[./bottom_stress_rr_clad_inner]
type = ElementalVariableValue
elementid = 461 # mesh dependent (contains pt. 0.00418, 0.0216533)
variable = stress_xx
[../]
[./bottom_stress_rr_clad_outer]
type = ElementalVariableValue
elementid = 458 # mesh dependent (contains pt. 0.00474, 0.0216533)
variable = stress_xx
[../]
[./average_stress_rr_clad]
type = ElementAverageValue
variable = stress_xx
block = clad
[../]
# radial strain
[./top_strain_rr_fuel]
type = ElementalVariableValue
elementid = 77 # mesh dependent (contains pt. 0.0041, 0.0902133)
variable = strain_xx
[../]
[./center_strain_rr_fuel]
type = ElementalVariableValue
elementid = 176 # mesh dependent (contains pt. 0.0041, 0.0546333)
variable = strain_xx
[../]
[./bottom_strain_rr_fuel]
type = ElementalVariableValue
elementid = 275 # mesh dependent (contains pt. 0.0041, 0.0190533)
variable = strain_xx
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = strain_xx
block = pellet_type_1
[../]
[./top_strain_rr_clad_inner]
type = ElementalVariableValue
elementid = 401 # mesh dependent (contains pt. 0.00418, 0.0896)
variable = strain_xx
[../]
[./top_strain_rr_clad_outer]
type = ElementalVariableValue
elementid = 398 # mesh dependent (contains pt. 0.00474, 0.0896)
variable = strain_xx
[../]
[./center_strain_rr_clad_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent (contains pt. 0.00418, 0.0556267)
variable = strain_xx
[../]
[./center_strain_rr_clad_outer]
type = ElementalVariableValue
elementid = 426 # mesh dependent (contains pt. 0.00474, 0.0556267)
variable = strain_xx
[../]
[./bottom_strain_rr_clad_inner]
type = ElementalVariableValue
elementid = 461 # mesh dependent (contains pt. 0.00418, 0.0216533)
variable = strain_xx
[../]
[./bottom_strain_rr_clad_outer]
type = ElementalVariableValue
elementid = 458 # mesh dependent (contains pt. 0.00474, 0.0216533)
variable = strain_xx
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = strain_xx
block = clad
[../]
# effective creep strain
[./top_creep_strain_clad_inner]
type = ElementalVariableValue
elementid = 401 # mesh dependent (contains pt. 0.00418, 0.0896)
variable = creep_strain
[../]
[./top_creep_strain_clad_outer]
type = ElementalVariableValue
elementid = 398 # mesh dependent (contains pt. 0.00474, 0.0896)
variable = creep_strain
[../]
[./center_creep_strain_clad_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent (contains pt. 0.00418, 0.0556267)
variable = creep_strain
[../]
[./center_creep_strain_clad_outer]
type = ElementalVariableValue
elementid = 426 # mesh dependent (contains pt. 0.00474, 0.0556267)
variable = creep_strain
[../]
[./bottom_creep_strain_clad_inner]
type = ElementalVariableValue
elementid = 461 # mesh dependent (contains pt. 0.00418, 0.0216533)
variable = creep_strain
[../]
[./bottom_creep_strain_clad_outer]
type = ElementalVariableValue
elementid = 458 # mesh dependent (contains pt. 0.00474, 0.0216533)
variable = creep_strain
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = creep_strain
block = clad
[../]
### Nodal displacements
[./top_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 269 # mesh dependent, at (0.0041, 0.0902133)
[../]
[./center_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
[../]
[./bottom_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 899 # mesh dependent, at (0.0041, 0.0190533)
[../]
[./top_disp_r_clad_inner]
type = NodalVariableValue
variable = disp_x
nodeid = 1342 #mesh dependent, at (0.00418, 0.0896)
[../]
[./top_disp_r_clad_outer]
type = NodalVariableValue
variable = disp_x
nodeid = 1332 #mesh dependent, at (0.00474, 0.0896)
[../]
[./center_disp_r_clad_inner]
type = NodalVariableValue
variable = disp_x
nodeid = 1440 #mesh dependent, at (0.00418, 0.0556267)
[../]
[./center_disp_r_clad_outer]
type = NodalVariableValue
variable = disp_x
nodeid = 1430 #mesh dependent, at (0.00474, 0.0556267)
[../]
[./bottom_disp_r_clad_inner]
type = NodalVariableValue
variable = disp_x
nodeid = 1538 #mesh dependent, at (0.00418, 0.0216533)
[../]
[./bottom_disp_r_clad_outer]
type = NodalVariableValue
variable = disp_x
nodeid = 1528 #mesh dependent, at (0.00418, 0.0216533)
[../]
### Nodal temperatures
[./top_temp_fuel]
type = NodalVariableValue
variable = temp
nodeid = 269 # mesh dependent, at (0.0041, 0.0902133)
[../]
[./center_temp_fuel]
type = NodalVariableValue
variable = temp
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
[../]
[./bottom_temp_fuel]
type = NodalVariableValue
variable = temp
nodeid = 899 # mesh dependent, at (0.0041, 0.0190533)
[../]
[./top_temp_clad_inner]
type = NodalVariableValue
variable = temp
nodeid = 1342 #mesh dependent, at (0.00418, 0.0896)
[../]
[./top_temp_clad_outer]
type = NodalVariableValue
variable = temp
nodeid = 1332 #mesh dependent, at (0.00474, 0.0896)
[../]
[./center_temp_clad_inner]
type = NodalVariableValue
variable = temp
nodeid = 1440 #mesh dependent, at (0.00418, 0.0556267)
[../]
[./center_temp_clad_outer]
type = NodalVariableValue
variable = temp
nodeid = 1430 #mesh dependent, at (0.00474, 0.0556267)
[../]
[./bottom_temp_clad_inner]
type = NodalVariableValue
variable = temp
nodeid = 1538 #mesh dependent, at (0.00418, 0.0216533)
[../]
[./bottom_temp_clad_outer]
type = NodalVariableValue
variable = temp
nodeid = 1528 #mesh dependent, at (0.00418, 0.0216533)
[../]
### Nodal penetration
[./top_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 269 # mesh dependent, at (0.0041, 0.0902133)
[../]
[./center_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
[../]
[./bottom_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 899 # mesh dependent, at (0.0041, 0.0190533)
[../]
### Nodal contact pressure
[./top_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 269 # mesh dependent, at (0.0041, 0.0902133)
[../]
[./center_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
[../]
[./bottom_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 899 # mesh dependent, at (0.0041, 0.0190533)
[../]
### End of 1.5D comparisons
[./center_effective_creep_rate_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent
variable = creep_strain_rate
[../]
[./center_effective_creep_rate_outer]
type = ElementalVariableValue
elementid = 426 # mesh dependent
variable = creep_strain_rate
[../]
[./effective_creep_strain_rate]
type = ElementAverageValue
variable = creep_strain_rate
[../]
[./solid_swelling]
type = ElementAverageValue
variable = solid_swell
block = pellet_type_1
[../]
[./gas_swelling]
type = ElementAverageValue
variable = gas_swell
block = pellet_type_1
[../]
[./densification]
type = ElementAverageValue
variable = densification
block = pellet_type_1
[../]
[./volumetric_swelling]
type = ElementAverageValue
variable = volumetric_swelling_strain
block = pellet_type_1
[../]
[./relocation]
type = ElementAverageValue
variable = relocation
block = pellet_type_1
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'tm_clad_radial_displacement'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'tm_fuel_radial_displacement'
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./tm_clad_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./tm_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFL031/TM/BFL031_tm.i
################################################################################
#
# Description: Calvert Cliffs BFL031
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFL031_power.csv
# axial peaking factor file BFL031_axial_peaking.csv
# flux boundary condition file BFL031_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10460.45 #95.332 %TD Assume TD = 10972.65 kg/cm3
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
file = BFL031_mesh.e
patch_size = 20
patch_update_strategy = auto
partitioner = centroid # this will help with run time
centroid_partitioner_direction = y # this will help with run time
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 3.85e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFL031_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFL031_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 174660997 174661357'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 174660997 174661357'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFL031_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0013589
fuel_outer_radius = 0.00478155 # m
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '9 13' # clad interior + fuel exterior
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0095631 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 190.5e-6 #diametral gap in m
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10411.07
total_densification = 0.01
initial_porosity = 0.05
eigenstrain_name = fuel_volumetric_strain
[../]
[./oxidationcladding]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 174661357
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_2984]
type = NodalVariableValue
nodeid = 2983
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/RefinementStudy/TSQ002_1pt5_tenslice.i
# Model is of a 10 slice pellet stack in 1.5D
# Top plenum height of 295.07 mm + bot_gap_height = 1.e-3 in 2D mesh
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
displacements = disp_x
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = Layered1DMesh
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
pellet_inner_radius = 0.0
pellet_outer_radius = 0.0041275
clad_gap_width = 8.89e-5
clad_thickness = 6.35e-4
fuel_height = 3.81381
plenum_height = 0.29607
slices_per_block = 10
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 300.0 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./grain_radius]
block = fuel
initial_condition = 8.7945e-6 # ((11.6+11.2+11.2+11.1)/4)/2*1.56
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_zz]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear # reads an input file containing rod average linear power vs time
data_file = TSQ002_alhr.csv
format = columns
[../]
[./axial_peaking_factors]
# reads an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = TSQ002_alhr_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
# reads an input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
x = '-100 0 141798626 141802226' # -100 @ 101326 Pa, 0 to 141798626 @ 15.517 MPa, 141802226 @ 101326 Pa
y = '.00653 1 1 .00653'
[../]
[./flux]
type = PiecewiseLinear
data_file = TSQ002_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = TSQ002_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
# reads an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = TSQ002_clad_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[./clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 15.517e6
fuel_pin_geometry = pin_geometry
[../]
[./fuel_axial_pressure]
type = ParsedFunction
value = plenum_pressure
vars = plenum_pressure
vals = plenum_pressure
[../]
[]
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = fuel # fission rate applied to the fuel only
fission_rate = fission_rate # coupling to the fission_rate aux variable
[../]
[]
[Modules]
[./TensorMechanics]
[./Layered1DMaster]
[./fuel]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = fuel
out_of_plane_pressure = fuel_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_strain fuel_volumetric_strain'
[../]
[./clad]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = clad
out_of_plane_pressure = clad_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
[../]
[../]
[../]
[]
[Burnup]
[./burnup]
block = fuel
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
fuel_pin_geometry = pin_geometry
i_enrich = '0.0348 0.9652 0 0 0 0' # 3.48% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = fuel
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises_stress
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = VonMisesStress
execute_on = timestep_end
block = fuel
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xx
index_i = 0
index_j = 0
block = clad
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xy
index_i = 0
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_zz
index_i = 2
index_j = 2
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
formulation = kinematic
system = constraint
penalty = 1e7
model = frictionless
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '2'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '2'
factor = 15.517e6
function = pressure_ramp # use the pressure_ramp function defined above
displacements = 'disp_x'
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.62e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup = burnup
linear_heat_rate_function = q
fuel_pin_geometry = pin_geometry
relocation_activation1 = 5000
burnup_relocation_stop = 0.024
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = fuel
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
initial_porosity = 0.05
burnup = burnup
gbs_model = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 7.5e10
poissons_ratio = 0.3
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 20.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type'
petsc_options_value = ' lu'
line_search = 'none'
# controls for linear iterations
l_max_its = 100
l_tol = 1e-4 #8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 141802226 #141798626+3600
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
execute_on = 'initial linear'
fuel_pin_geometry = pin_geometry
[../]
[./clad_inner_vol]
type = LayeredInternalVolumePostprocessor
boundary = 7
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./pellet_volume]
type = LayeredInternalVolumePostprocessor
boundary = 8
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./avg_clad_temp]
type = LayeredSideAverageValuePostprocessor
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
fuel_pin_geometry = pin_geometry
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./gas_volume]
type = LayeredInternalVolumePostprocessor
boundary = 9
execute_on = 'initial linear'
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./flux_from_clad]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 5
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_fuel]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.81 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = fuel
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = fuel
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 231 # Global node id 232, at coordinates (0.0, 1.71774, 0.0)
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[./max_penetration]
type = NodalExtremeValue
block = fuel
value_type = max
variable = penetration
[../]
[./min_penetration]
type = NodalExtremeValue
block = fuel
value_type = min
variable = penetration
[../]
[./max_contact_pressure]
type = NodalExtremeValue
block = fuel
value_type = max
variable = contact_pressure
[../]
[./min_contact_pressure]
type = NodalExtremeValue
block = fuel
value_type = min
variable = contact_pressure
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = fuel
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
## Nodal comparison values
[./top_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 427 #coords (0.0041275, 3.62274)
[../]
[./top_disp_r_clad]
type = NodalVariableValue
variable = disp_x
nodeid = 81 #coords (0.0042164, 3.62274)
[../]
[./plenum_disp_r_clad]
type = NodalVariableValue
variable = disp_x
nodeid = 90 #coords (0.0042164, 3.96053)
[../]
[./top_radial_strain_fuel]
type = ElementalVariableValue
variable = strain_xx
elementid = 203
[../]
[./top_axial_strain_fuel]
type = ElementalVariableValue
elementid = 203
variable = strain_yy
[../]
[./top_radial_strain_clad]
type = ElementalVariableValue
variable = strain_xx
elementid = 36
[../]
[./top_axial_strain_clad]
type = ElementalVariableValue
variable = strain_yy
elementid = 36
[../]
[./plenum_radial_strain_clad]
type = ElementalVariableValue
variable = strain_xx
elementid = 40
[../]
[./plenum_axial_strain_clad]
type = ElementalVariableValue
variable = strain_yy
elementid = 40
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_1'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_fuel_radial_displacement'
[../]
#Uncomment to print out axial FCT and PST at every timestep
#[./pellet_temp]
# type = NodalValueSampler
# variable = temp
# boundary = 10
# sort_by = y
# outputs = 'outfile_fuel_surface_temp'
#[../]
#[./pellet_center_temp]
# type = NodalValueSampler
# variable = temp
# boundary = 12
# sort_by = y
# outputs = 'outfile_FCT'
#[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./outfile_1]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
#Uncomment to print out axial FCT and PST at every timestep
#[./outfile_fuel_surface_temp]
# type = CSV
# execute_on = linear
#[../]
#[./outfile_FCT]
# type = CSV
# execute_on = linear
#[../]
[./console]
type = Console
max_rows = 25
[../]
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_percolation_xfem.i
# This is to test gas release through elements that are cut by XFEM. A 2D domain is
# used and the LineSegmentCutUserObject is used to insert a crack from the right edge
# of the domain inward toward the left edge. Because of the boundary conditions on temperature,
# gas would not normally be released to the free surface on the left side, but
# with the crack present gas release occurs.
[GlobalParams]
density = 10970. # = 95% TD with TD=10960 kg/m^3
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11
[]
[Mesh]
[./mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.005
ymin = 0
ymax = 0.005
nx = 5
ny = 5
[../]
[./free1]
type = SideSetsAroundSubdomainGenerator
new_boundary = free1
normal = '1 0 0'
block = 2
input = mesh
[../]
[./subdomain1]
type = SubdomainBoundingBoxGenerator
bottom_left = '0 0 0'
top_right = '0.005 0.005 0'
block_id = 2
input = free1
[../]
[]
#Create a notch in the mesh using XFEM
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[./line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '0.005 0.0025 0.001 0.0025'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[]
[Variables]
[./temp]
initial_condition = 673.
[../]
[]
[AuxVariables]
[./grain_radius]
block = 2
initial_condition = 5.e-06
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = 2
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = 2
[../]
[./burnup]
block = 2
[../]
[./fission_rate]
block = 2
[../]
# percolation variables
[./open_coverage]
order = CONSTANT
family = MONOMIAL
[../]
[./open_threshold]
order = CONSTANT
family = MONOMIAL
[../]
[./open]
order = CONSTANT
family = MONOMIAL
[../]
[./cluster]
order = CONSTANT
family = MONOMIAL
[../]
[./percolated]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0. 10800. 1.0e+8'
y = '0. 25. 25. '
scale_factor = 1000.
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '0. 1.0e+8'
y = '25. 25.'
scale_factor = 1.0e+6
[../]
[]
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 2
fission_rate = fission_rate # coupling to the fission_rate aux variable
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fractcov]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
block = 2
[../]
[./fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./brnp]
type = BurnupAux
variable = burnup
block = 2
fission_rate = fission_rate
molecular_weight = 0.270
[../]
[./frate]
type = FissionRateAux
variable = fission_rate
block = 2
value = 5.e+14
function = power_history
[../]
# percolation auxkernels
[./open_coverage]
type = MaterialRealAux
variable = open_coverage
property = GBCoverage
[../]
[./open_threshold]
type = MaterialRealAux
variable = open_threshold
property = 0.3 #GB coverage at which trijunction network is percolated
[../]
[./open]
type = ParsedAux
variable = open
args = 'open_coverage open_threshold'
function = 'open_coverage-open_threshold'
[../]
[./cluster]
type = FeatureFloodCountAux
variable = cluster
execute_on = 'timestep_begin'
field_display = UNIQUE_REGION
flood_counter = percolate
[../]
[./percolated]
type = PercolationAux
variable = percolated
execute_on = 'timestep_begin'
percolation = percolate
[../]
[]
# Define boundary conditions
[BCs]
# convective boundary condition
[./imposed_ext_temp]
type = DirichletBC
boundary = right
variable = temp
value = 673.
[../]
# insulate the top and bottom of this pellet
[./top_pellet]
variable = temp
value = 0.
type = NeumannBC
boundary = top
[../]
[./bottom_pellet]
variable = temp
value = 0.
type = NeumannBC
boundary = bottom
[../]
[./left_pellet]
variable = temp
value = 0.
type = NeumannBC
boundary = left
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./fuel_thermal]
type = HeatConductionMaterial
block = 2
thermal_conductivity = 3.
specific_heat = 400.
[../]
[./fuel_density]
type = Density
block = 2
[../]
[./fission_gas_release_and_swelling]
type = Sifgrs
block = 2
diff_coeff_option = 3
transient_option = 2
res_param_option = 0
temp = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.
percolation_to_surface = percolated
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.
variable = temp
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options = '-ksp_gmres_modifiedgramschmidt'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_composite_pcs -sub_0_pc_hypre_type -sub_0_pc_hypre_boomeramg_max_iter -sub_0_pc_hypre_boomeramg_grid_sweeps_all -sub_1_sub_pc_type -pc_composite_type -ksp_type -mat_mffd_type'
petsc_options_value = '201 composite hypre,asm boomeramg 2 2 lu multiplicative fgmres ds'
line_search = 'none'
# controls for linear iterations
l_max_its = 100
l_tol = 1.0e-06
# controls for nonlinear iterations
nl_max_its = 10
nl_rel_tol = 1.0e-4
nl_abs_tol = 1.0e-8
# time control
start_time = 0.
end_time = 1.0e+8
num_steps = 5000
dtmax = 1.0e+06
dtmin = 1.0
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0
timestep_limiting_function = power_history
max_function_change = 3000.
force_step_every_function_point = true
[../]
[./Quadrature]
order = THIRD
[../]
[]
[UserObjects]
[./percolate]
type = PercolationUserObject
execute_on = 'timestep_begin'
boundaries = 'free1'
variable = open
threshold = 0.0
use_xfem = true
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
[./ave_burnup_EAV]
type = ElementAverageValue
block = 2
variable = burnup
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 2
[../]
[]
# Define output file(s)
[Outputs]
interval = 1
csv = true
exodus = true
color = true
print_linear_residuals = true
[./console]
type = Console
max_rows = 25
output_linear = true
[../]
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_first_stage_restart2.i
# This test is for evaluating the first stage (i.e., the intra-granular diffusion calculation) of the Sifgrs fission gas behavior model.
# The first stage is isolated by setting the fractional bubble coverage at grain boundary saturation to zero (saturation_coverage = 0). Under this condition (i.e. gas reaching the grain boundaries goes instantaneously to the plenum), the ratio of fission gas released to fission gas generated calculated by the model should compare very closely with the analytical expression for fractional fission gas release fraction from the grains published by Speight (Nuclear Science and Engineering 37, 180, 1969). The Speight equation for fission gas release fraction (released/produced) is
#
# parameters:
# n and no are summation integers
# a = grain radius in m
# pi = the number pi 3.14159...
# D = effective diffusion coeficient in m^2/s where D includes the effects of intragranular trapping and resolution (see White, JNM 118, 1, 1983, and the
# fgr_diffusion_coefficient_test in fox for a description)
# t = time in seconds
#
# 6*a^2
# f = 1 - sum(n=1, to no) ---------------- * {1 - exp -[D*n^2*pi^2*t/a^2]}
# pi^4 * D*t*n^4
#
# For no = 1, D = 4.123e-19 m^2/s, a = 1e-5 m, t = 1e6 s, f = 0.596.
# For no = 50, and the same parameters defined above, f = 0.1388
#
# With the output from this test, if one calculates fission gas released / fission gas produced at
# t = 1.e+06, the result should be 0.1032, which compares well with the analytical solution from Speight.
#
# See also the sheet sifgrs_first_stage of the attached excel file (regression_tests_sifgrs.xlsx).
# Check of fission gas produced
# beta = rate of gas production per unit volume by fission
# beta * time * volume = gas produced
# The following parameters are used to calculate beta
#
# t = time in seconds = 5e7
# Avogadros number = 6.023e23 atoms/mol
# FY = fractional yield = fraction of fission gas atoms per fission = 0.3017 atoms/fission
# Y = yield = FY/Avogadros number = atoms/fission / atoms/mol to give mols/fission
# F = fission rate = fissions/m^3*s = 2.5e19
# beta = F*Y = fissions/m^3s * mols/fission = mols/m^3*s
# gas produced = beta * time * volume
# For this test problem, volume = (0.01m)^3 = 1e-6m^3 = volume of single finite element in this problem
#
# Y = 0.3017/6.023e23 = 5.0091e-25 mol/fission
# beta = 2.5e19*5.009e-25 = 1.25e-5 mol/m^3s
# gas produced = 1.25e-5*5e7*1e-6 = 6.26e-4 mols
#
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = '1700'
[../]
[./Fiss_func]
type = ParsedFunction
value = '2.5e19'
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 1700
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = timestep_begin
[../]
[./FRA]
type = MaterialRealAux
variable = fract_FGR_analytical
property = fract_FGR_analytical
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[../]
[]
[Materials]
[./UO2]
type = HeatConductionMaterial
block = 1
temp = T
thermal_conductivity = 1.0
specific_heat = 1.0
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 1
saturation_coverage = 0
temp = T
fission_rate = fission_rate
testing_output = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 28e6
num_steps = 50
dt = 1e6
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[]
[Outputs]
file_base = sifgrs_first_stage_out
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[]
[Problem]
restart_file_base = sifgrs_first_stage_restart1_checkpoint_cp/0028
[]
assessment/LWR/validation/FUMEXII_Regate/analysis/Regate_discrete.i
[GlobalParams]
density = 10360
temperature = temp
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = regate_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.675e-6
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = regate_linear_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = regate_axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 98406792 98407164 98407291 98407445 99578736 99580326'
y = '0.00654 1 1 0.00654 0.00654 0.839 0.839 0.00654'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = regate_cladding_temperature.csv
scale_factor = 1
format = columns
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
data_file = regate_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
decomposition_method = EigenSolution
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress creep_strain_zz
creep_strain_xx elastic_strain_zz'
decomposition_method = EigenSolution
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
factor = 1
function = fast_neutron_flux_function
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00324
a_upper = 0.4444
fuel_inner_radius = 0
fuel_outer_radius = 0.004096
RPF = RPF
i_enrich = '0.04487 0.955513 0 0 0 0' # 4.487% Enriched U-235
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = PENALTY
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionPresetBC
variable = temp
boundary = '1 2 3'
function = clad_wall_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.5e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup_function = burnup
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
initial_fuel_density = 10360
[../]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
initial_porosity = 0.05246
block = 3
temp = temp
burnup_function = burnup
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
stress_free_temperature = 293.0
thermal_expansion_coeff = 10e-6
eigenstrain_name = fuel_thermal_eigenstrain
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.008192
gap = 1.68e-5
linear_heat_rate_function = q
relocation_activation1 = 5000
burnup_relocation_stop = 0.015
eigenstrain_name = fuel_relocation_eigenstrain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='clad_creep_stress plasticity'
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[../]
[./plasticity]
type = IsotropicPlasticityStressUpdate
block = 1
yield_stress = 500e6
hardening_constant = 2.5e9
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = clad_irradiation_growth_eigenstrain
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293.0
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1e-4
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 99580326
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
sync_times = '98407291'
[./console]
type = Console
max_rows = 30
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/HbepR1/analysis/A364/HbepR1_A364.i
[GlobalParams]
density = 10490 #94.882 %TD Assume TD = 10972.65 kg/cm3
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
temperature = temp
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 8.0e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .0052195
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.68
ny_cl = 3
clad_top_gap_height = 0.2461
clad_gap_width = 1.055e-4
elem_type = QUAD8
patch_size = 100 # 1000 lowering this and setting the strategy to auto will reduce the amount of memory required to run the job.
patch_update_strategy = auto
partitioner = centroid # this will help with run time
centroid_partitioner_direction = y # this will help with run time
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 273 #K
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5.148e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = A364-power.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = A364-axial-profile.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '-100 0 166323600 166327200' #
y = '0.014429 1 1 0.014429'
[../]
[./temp_ramp]
type = PiecewiseBilinear
data_file = A364-axial-tempprofile.csv
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[Modules/TensorMechanics/Master]
[./fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz creep_strain_xx
creep_strain_xy creep_strain_yy vonmises_stress creep_strain_zz'
[../]
[]
# Define kernels for the various terms in the PDE system
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3 # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate # coupling to the fission_rate aux variable
save_in = saved_t
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
factor = 1.68056e13 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.68478
fuel_inner_radius = 0.0
fuel_outer_radius = 0.0052195 # m
i_enrich = '0.0308 .9692 0 0 0 0'
RPF = RPF
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 1.1e-6
roughness_clad = 0.35e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 # Pa
function = pressure_ramp
[../]
[../]
[./coolant_temp]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = temp_ramp
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9 # clad interior + fuel exterior
initial_pressure = 0.375e6 # Pa
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get inital fill gas mass
temperature = plenum_temperature # coupling to post processor to get gas temperature approximation
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
initial_porosity = 0.04
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.005325
clad_outer_radius = 0.006125
use_coolant_channel = true
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
stress_free_temperature = 273
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup = burnup
diameter = 0.010439 # fuel pellet diamter in meters
gap = 105.5e-6 # nominal diametral gap in meters
linear_heat_rate_function = q
burnup_relocation_stop = .049 # turn off relocation
relocation_activation1 = 5000
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_inelastic_stressUpdate]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type =recrystalization_annealed
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = clad_inelastic_stressUpdate
[../]
[./clad_thermal_eigenstrain]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 273
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_eigenstrain]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = recrystallization_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup = burnup
initial_fuel_density = 10490
total_densification = .0043
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[UserObjects]
[./integral_burnup] # Added the computation of the average fuel rod burnup
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 166327200
dtmax = 1e6
dtmin = 0.1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
# Clad postprocessor (The rest are created with StandardLWRFuelRodOutputs)
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
[../]
[./clad_fuel_gap]
type = NodalMaxValue
variable = penetration
boundary = 10
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = true
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_first_stage_restart1.i
# This test is for evaluating the first stage (i.e., the intra-granular diffusion calculation) of the Sifgrs fission gas behavior model.
# The first stage is isolated by setting the fractional bubble coverage at grain boundary saturation to zero (saturation_coverage = 0). Under this condition (i.e. gas reaching the grain boundaries goes instantaneously to the plenum), the ratio of fission gas released to fission gas generated calculated by the model should compare very closely with the analytical expression for fractional fission gas release fraction from the grains published by Speight (Nuclear Science and Engineering 37, 180, 1969). The Speight equation for fission gas release fraction (released/produced) is
#
# parameters:
# n and no are summation integers
# a = grain radius in m
# pi = the number pi 3.14159...
# D = effective diffusion coeficient in m^2/s where D includes the effects of intragranular trapping and resolution (see White, JNM 118, 1, 1983, and the
# fgr_diffusion_coefficient_test in fox for a description)
# t = time in seconds
#
# 6*a^2
# f = 1 - sum(n=1, to no) ---------------- * {1 - exp -[D*n^2*pi^2*t/a^2]}
# pi^4 * D*t*n^4
#
# For no = 1, D = 4.123e-19 m^2/s, a = 1e-5 m, t = 1e6 s, f = 0.596.
# For no = 50, and the same parameters defined above, f = 0.1388
#
# With the output from this test, if one calculates fission gas released / fission gas produced at
# t = 1.e+06, the result should be 0.1032, which compares well with the analytical solution from Speight.
#
# See also the sheet sifgrs_first_stage of the attached excel file (regression_tests_sifgrs.xlsx).
# Check of fission gas produced
# beta = rate of gas production per unit volume by fission
# beta * time * volume = gas produced
# The following parameters are used to calculate beta
#
# t = time in seconds = 5e7
# Avogadros number = 6.023e23 atoms/mol
# FY = fractional yield = fraction of fission gas atoms per fission = 0.3017 atoms/fission
# Y = yield = FY/Avogadros number = atoms/fission / atoms/mol to give mols/fission
# F = fission rate = fissions/m^3*s = 2.5e19
# beta = F*Y = fissions/m^3s * mols/fission = mols/m^3*s
# gas produced = beta * time * volume
# For this test problem, volume = (0.01m)^3 = 1e-6m^3 = volume of single finite element in this problem
#
# Y = 0.3017/6.023e23 = 5.0091e-25 mol/fission
# beta = 2.5e19*5.009e-25 = 1.25e-5 mol/m^3s
# gas produced = 1.25e-5*5e7*1e-6 = 6.26e-4 mols
#
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = '1700'
[../]
[./Fiss_func]
type = ParsedFunction
value = '2.5e19'
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 1700
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./FRA]
type = MaterialRealAux
variable = fract_FGR_analytical
property = fract_FGR_analytical
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[../]
[]
[Materials]
[./UO2]
type = HeatConductionMaterial
block = 1
temp = T
thermal_conductivity = 1.0
specific_heat = 1.0
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 1
saturation_coverage = 0
temp = T
fission_rate = fission_rate
testing_output = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 28 #50
dt = 1e6
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
execute_on = 'initial timestep_end'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
execute_on = 'initial failed linear nonlinear timestep_end'
[../]
[./checkpoint]
type = Checkpoint
num_files = 1
[../]
[]
[Problem]
[]
assessment/MOX/JOYO/MK-I/analysis/MK-I_75MW_master_old_bubble_gb_lim.i
[GlobalParams]
density = 10836.8
initial_porosity = 0.065
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.6
pellet_outer_radius = 0.0027
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000100
clad_thickness = 0.00035
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 0.599
elem_type = QUAD8
nx_c = 4
ny_c = 200
nx_p = 20
ny_p = 200
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
[../]
[]
[AuxVariables]
[./pore]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fission_rate]
block = pellet
[../]
[./burnup]
block = pellet
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
[../]
[]
[Functions]
[./power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = '0 70000 25000000'
y = '0 38974.7 38974.7'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 70000 25000000'
y = '0 1.9e+19 1.9e+19'
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
x = '0 0.071 0.146 0.221 0.296 0.37 0.443 0.566'
y = '0 25000000'
z = '0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672 0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672'
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./average_power_history]
type = PiecewiseLinear
x = '0 70000 25000000'
y = '0 32000 32000'
[../]
[./clad_surface_temp]
type = PiecewiseBilinear
x = '0 0.071 0.146 0.221 0.296 0.37 0.443 0.566'
y = '0 25000000'
z = '295 295 295 295 295 295 295 295 593.58 606.36 619.13 630.26 640.87 651.76 662.67 673.67'
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.065
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
execute_on = timestep_end
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
execute_on = timestep_end
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
execute_on = timestep_end
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
execute_on = timestep_end
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
execute_on = timestep_end
[../]
[./nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vcn_bdr_2
execute_on = timestep_end
[../]
[./atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atm_bbl_bdr
execute_on = timestep_end
[../]
[./vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vcn_bbl_bdr
execute_on = timestep_end
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
execute_on = timestep_end
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
execute_on = timestep_end
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = timestep_end
[../]
[./volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = vol_bbl_bdr
execute_on = timestep_end
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = fast_neutron_flux_function
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = '12'
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp_clad_out]
type = FunctionPresetBC
variable = temp
boundary = '2'
function = clad_surface_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 101325
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 300000
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10836.8
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = Thermal316
block = clad
temp = temp
[../]
[./clad_density]
type = Density
block = clad
density = 8000
[../]
[./clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
diff_coeff_option = 4
fission_rate = fission_rate
grain_radius_const = 8.01e-6 #I'm keeping the grain radius const because the grain growth in MOX is probably different due to high Temp
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
picard_abs_tol = 1e-5
picard_rel_tol = 1e-5
picard_max_its = 1
l_max_its = 70
l_tol = 8e-3
nl_max_its = 70
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = 0
n_startup_steps = 1
end_time = 25000000
dtmax = 1e6
dtmin = 0.25
[./TimeStepper]
type = IterationAdaptiveDT
dt = 5000
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.6 # rod height
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./ave_pore]
type = ElementAverageValue
variable = pore
[../]
[./max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[../]
[./min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[../]
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = MK-I_75MW_sub_old_bubble_gb_lim.i
[../]
[]
[Transfers]
[./temp_to_sub]
type = MultiAppProjectionTransfer
direction = to_multiapp
multi_app = sub
source_variable = temp
variable = temp
[../]
[./pore_from_sub]
type = MultiAppInterpolationTransfer
direction = from_multiapp
multi_app = sub
source_variable = pore
variable = pore
[../]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temp disp_x disp_y'
[]
examples/tensor_mechanics/TRISO/IAEA_CRP-6_type/1D/case_10/case_10_1D.i
[GlobalParams]
density = 10810.0 # kg/m^3
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
type = TRISO1DMesh
elem_type = EDGE3
coordinates = '0 2.485e-4 3.425e-4 3.425e-4 3.835e-4 4.195e-4 4.595e-4'
mesh_density = '6 6 0 6 8 6'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[Problem]
coord_type = RSPHERICAL
[]
[Variables]
[./temp]
initial_condition = 1346.0
[../]
[]
[AuxVariables]
[./fluence]
[../]
[./fast_neutron_flux]
[../]
[./fission_rate]
block = fuel
[../]
[./burnup]
block = fuel
[../]
[./grain_radius]
initial_condition = 5.0e-6
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = fuel
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./buffer]
block = buffer
add_variables = true
strain = FINITE
eigenstrain_names = 'buffer_thermal_strain buffer_eigenstrain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./IPyC]
block = IPyC
add_variables = true
strain = FINITE
eigenstrain_names = 'IPyC_eigenstrain IPyC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./SiC]
block = SiC
add_variables = true
strain = FINITE
eigenstrain_names = 'SiC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./OPyC]
block = OPyC
add_variables = true
strain = FINITE
eigenstrain_names = 'OPyC_eigenstrain OPyC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[]
[Functions]
[./fast_neutron_flux]
type = ParsedFunction
value = 1.708707e18
[../]
[./fission_rate]
type = ParsedFunction
value = 7.75e19 # units of fissions/m**3
[../]
[]
[Kernels]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fluence]
type = FastNeutronFluenceAux
variable = fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./fast_neutron_flux]
type = FunctionAux
variable = fast_neutron_flux
function = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fission_rate]
type = FunctionAux
variable= fission_rate
block = fuel
function = fission_rate
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[../]
[./grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temp = temp
execute_on = linear
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = IPyC_left_boundary
slave = buffer_right_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = IPyC_left_boundary
slave = buffer_right_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
[../]
[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = DirichletBC
variable = temp
boundary = exterior
value = 1346.0
[../]
# exterior and internal pressures
[./exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
component = 0
factor = 0.1e6
[../]
[./PlenumPressure] # apply gas pressure on buffer and IPyC boundaries
[./plenumPressure]
boundary = buffer_IPyC_boundary
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
temp = temp
thermal_conductivity_model = FINK_LUCUTA
initial_porosity = 0.0
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e8
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 1346.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
[../]
[./buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2.0e8
poissons_ratio = 0.345
[../]
[./buffer_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = buffer
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_density]
type = Density
density = 1000.0 #kg/m^3
block = buffer
[../]
[./buffer_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = buffer
thermal_expansion_coeff = 5.5e-6
temperature = temp
stress_free_temperature = 1346.0
eigenstrain_name = buffer_thermal_strain
[../]
[./buffer_irraditation]
type = PyCIrradiationEigenstrain
block = buffer
fluence = fluence
pyc_type = buffer
eigenstrain_name = buffer_eigenstrain
[../]
[./IPyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = IPyC
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[../]
[./IPyC_stress]
type = PyCCreep
block = IPyC
flux = fast_neutron_flux
temperature = temp
density = 1880.0
[../]
[./IPyC_temp]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./IPyC_den]
type = Density
density = 1880.0 # kg/m^3
block = IPyC
[../]
[./IPyC_densification]
type = PyCIrradiationEigenstrain
block = IPyC
fluence = fluence
pyc_type = dense
eigenstrain_name = IPyC_eigenstrain
[../]
[./IPyC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = IPyC
thermal_expansion_coeff = 5.5e-6
temperature = temp
stress_free_temperature = 1346.0
eigenstrain_name = IPyC_thermal_strain
[../]
[./SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[../]
[./SiC_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_den]
type = Density
density = 3200.0 # kg/m^3
block = SiC
[../]
[./SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temp
stress_free_temperature = 1346.0
eigenstrain_name = SiC_thermal_strain
[../]
[./OPyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = OPyC
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[../]
[./OPyC_stress]
type = PyCCreep
block = OPyC
flux = fast_neutron_flux
temperature = temp
density = 1880.0
[../]
[./OPyC_temp]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./OPyC_den]
type = Density
density = 1880.0 # kg/m^3
block = OPyC
[../]
[./OPyC_densification]
type = PyCIrradiationEigenstrain
block = OPyC
fluence = fluence
pyc_type = dense
eigenstrain_name = OPyC_eigenstrain
[../]
[./OPyC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = OPyC
thermal_expansion_coeff = 5.5e-6
temperature = temp
stress_free_temperature = 1346.0
eigenstrain_name = OPyC_thermal_strain
[../]
[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 3.10176e7
dtmax = 2e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[./burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[../]
[./volumeTotal]
type = InternalVolume
boundary = exterior
[../]
[./volumeFuel]
type = InternalVolume
boundary = fuel_right_boundary
[../]
[./volumeGas]
type = InternalVolume
boundary = 'fuel_right_boundary IPyC_left_boundary'
addition = -5.53e-11
execute_on = 'initial timestep_end'
[../]
[./volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temp
execute_on = 'initial timestep_end'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
[../]
[./tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[../]
[./max_xx_IPyC]
type = ElementExtremeValue
variable = stress_xx
block = IPyC
[../]
[./max_yy_IPyC]
type = ElementExtremeValue
variable = stress_yy
block = IPyC
[../]
[./min_zz_IPyC]
type = ElementExtremeValue
variable = stress_zz
block = IPyC
value_type = min
[../]
[./max_xx_SiC]
type = ElementExtremeValue
variable = stress_xx
block = SiC
[../]
[./max_yy_SiC]
type = ElementExtremeValue
variable = stress_yy
block = SiC
[../]
[./min_zz_SiC]
type = ElementExtremeValue
variable = stress_zz
block = SiC
value_type = min
[../]
[./max_xx_OPyC]
type = ElementExtremeValue
variable = stress_xx
block = OPyC
[../]
[./max_yy_OPyC]
type = ElementExtremeValue
variable = stress_yy
block = OPyC
[../]
[./min_zz_OPyC]
type = ElementExtremeValue
variable = stress_zz
block = OPyC
value_type = min
[../]
[]
[Outputs]
print_linear_residuals = true
interval = 1
exodus = true
csv = true
perf_graph = true
[./chkfile]
type = CSV
execute_on = Final
show = 'max_xx_IPyC max_yy_IPyC min_zz_IPyC max_xx_SiC max_yy_SiC min_zz_SiC'
[../]
[]
assessment/LWR/validation/Riso_II3/analysis/SM/Riso_II3.i
[GlobalParams]
density = 10486.8 # assumed TD = 10950
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = riso_II3.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
scaling = 1e3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4'
initial_condition = 6.1e-6 # 2D grain radius 6.1e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = riso_II3_power_history.csv
format = columns
scale_factor = 1.05
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = riso_II3_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 97891200 97891210 97916190 97916200 98261980 98261990 '
y = '0.01403 1 1 0.01403 0.01403 1 1 0.01403'
[../]
[./flux]
type = PiecewiseLinear
data_file = riso_II3_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = riso_II3_clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_]
type = NeutronHeatSource
variable = temp
block = '3 4'
burnup_function = burnup
fraction = 0.95238095
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
density = 10486.8 # assumed TD = 10950
num_radial = 80
num_axial = 11
a_upper = 0.30686
a_lower = 0.0158
fuel_inner_radius = 0
fuel_outer_radius = 0.005445
fuel_volume_ratio = 0.992395144
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = 1
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3 4'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
model = frictionless
formulation = penalty
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 97891210
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.24e6 #changes from 3.2MPa during base irradiation
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.53e6 #changes to 1e5 for bump tests
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 97891210
refab_pressure = 6.84e5
refab_temperature = 373
refab_volume = 7.41e-6
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = '3 4'
burnup_function = burnup
temp = temp
[../]
[./density_clad]
type = Density
block = 1
density = 6551.0
[../]
[./density_fuel]
type = Density
block = '3 4'
density = 10486.8
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic
block = '3 4'
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = '3 4'
diameter = 0.01089
gap = 0.00022 #diametral gap in m
burnup_function = burnup
q = q
burnup_relocation_stop = 0.029
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
model_irradiation_growth = true
model_thermal_expansion = false
formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-7
start_time = -100
end_time = 98290000
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 10
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3 4'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = '3 4'
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4'
[../]
[./TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 3486 #Global node ID 3487
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = '3 4'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'fission_gas_released_percentage TC_temp rod_total_power'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/IFA_432/analysis/rod1/IFA_432_rod1.i
[GlobalParams]
density = 10431 # initial fuel density 95% of theoretical (10980 kg/m3)
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa_432_rod1_fine.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 513.3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4 5'
initial_condition = 3.5e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = bol_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factor]
type = PiecewiseBilinear
data_file = bol_axial.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.029395 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factor'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[Modules/TensorMechanics/Master]
[./fuel]
block = '3 4 5'
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = '3 4 5'
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
factor = 1.6e12 #(n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4 5'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hydrostatic_stress]
block = '3'
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = hydrostatic
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = '3 4 5'
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
num_radial = 81
num_axial = 21
a_lower = 0.01494
a_upper = 0.58644
fuel_inner_radius = 0.00
fuel_outer_radius = 0.005339
fuel_volume_ratio = 0.992245
i_enrich = '0.1 .9 0 0 0 0' # 10% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_fuel = 2.16e-6
roughness_clad = 6.35e-7
roughness_coef = 3.2
quadrature = true
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = PresetBC
boundary = '1 2 3'
variable = temp
value = 513.3
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0135e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = '3 4 5'
thermal_conductivity_model = NFIR
initial_porosity = 0.05
temp = temp
burnup_function = burnup
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4 5'
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = '3 4 5'
temperature = temp
[../]
[./fuel_elasticity_and_creep]
type = ComputeThermalExpansionEigenstrain
block = '3 4 5'
temperature = temp
stress_free_temperature = 297
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4 5'
burnup_function = burnup
diameter = 1.0678e-2
gap = 230.0e-6
linear_heat_rate_function = q
burnup_relocation_stop = 0.00821
relocation_activation1 = 5000
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_inelastic_stressUpdate] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type =stress_relief_annealed
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
temperature = temp
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
[../]
[./clad_inelastic_stress] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = clad_inelastic_stressUpdate
[../]
[./clad_thermal_eigenstrain] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ComputeThermalExpansionEigenstrain
block = 1
temperature = temp
stress_free_temperature = 297
eigenstrain_name = 'clad_thermal_eigenstrain'
thermal_expansion_coeff = 5.0e-6
[../]
[./clad_irradiation_eigenstrain] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '3 4 5'
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4 5'
burnup = burnup
temperature = temp
initial_fuel_density = 10431
total_densification = .0043
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4 5'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 80
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# Time steps set up to match halden data
# start_time = -100
n_startup_steps = 1
end_time = 29700
dtmin = 1
[./TimeStepper]
type = ConstantDT
dt = 900
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3 4 5'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4 5'
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3 4 5'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
block = '3 4 5'
burnup_function = burnup
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4 5'
outputs = exodus
[../]
[./power_lower_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.075265 0'
[../]
[./power_upper_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.50389 0'
[../]
[./upper_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 9080 # paraview global node id 9081
[../]
[./lower_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 2750 # paraviw global node id 2751
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = TENSOR
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'fission_gas_released rod_total_power upper_TC_temp lower_TC_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'temp disp_x disp_y'
show_var_residual_norms = true
[]
assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_1/vitanza.i
[GlobalParams]
density = 10431.0
order = SECOND
family = LAGRANGE
energy_per_fission = 3.20435313e-11
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'temp'
reference_residual_variables = 'saved_t'
[]
[Mesh]
file = 27_1_mesh.e
patch_size = 10
patch_update_strategy = auto
[]
[Variables]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 7.5e-6
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
x = '-100 0 100 1e8'
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_upper = 0.01496
a_lower = 0.00226
fuel_inner_radius = 0.0
fuel_outer_radius = 0.005305
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = 3
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[]
[BCs]
[./fuel_wall_temp]
type = DirichletBC
variable = temp
boundary = '10'
value = 673
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
dtmax = 1e6
dtmin = 1
end_time = 2.71e8
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 6
[../]
[]
[Postprocessors]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = '3'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = '3'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
[../]
[./intg_flux_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
block = 3
execute_on = linear
burnup_function = burnup
type = ElementIntegralPower
variable = temp
[../]
[./ave_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./fuel_center_temperature]
type = NodalVariableValue
nodeid = 174 # Paraview GlobalNodeID 175
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = false
print_linear_residuals = true
[./csv]
type = CSV
execute_on = final
[../]
[./chkfile]
type = CSV
show = 'burnup fis_gas_percent fuel_center_temperature rod_total_power pellet_volume'
execute_on = final
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'fis_gas_percent >= 0.01'
[../]
[]
assessment/LWR/validation/Super_Ramp/analysis/PK13/PK13.i
[GlobalParams]
density = 10360.0
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = false
initial_porosity = 0.054
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temperature'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 10
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 28
pellet_height = 0.011143
pellet_outer_radius = 4.555e-3
pellet_mesh_density = customize
nx_p = 11
ny_p = 84
clad_mesh_density = customize
nx_c = 4
ny_c = 84
clad_gap_width = 100.0e-6
clad_thickness = 0.725e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 15.5e-3
clad_top_gap_height = 32.4e-3
ny_cu = 3
ny_cl = 3
elem_type = QUAD8
[]
[Variables]
[./temperature]
initial_condition = 293.15
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = alhr_history.csv
format = columns
[../]
[./axial_power_factors]
type = PiecewiseBilinear
data_file = axial_lhr_factors.csv
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_power_factors'
[../]
[./clad_out_temp]
type = PiecewiseLinear
data_file = temp_outer_clad_history.csv
format = columns
[../]
[./axial_temp_factors]
type = PiecewiseBilinear
data_file = axial_temp_factors.csv
axis = 1
[../]
[./clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = pressure_coolant.csv
format = columns
[../]
[./fast_flux]
type = PiecewiseLinear
data_file = fast_neutron_flux.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = 3
initial_condition = 4.68e-6
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
block = 3
initial_condition = 0.054
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain
fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy
stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz
creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx
strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temperature
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temperature
execute_on = linear
[../]
[./porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
a_lower = 0.0165
a_upper = 0.328504
number_pellets = 28
execute_on = initial
[../]
[./oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./layered_average_contact_pressure]
type = SpatialUserObjectAux
block = 3
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = 3
execute_on = nonlinear
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 80
num_axial = 20
i_enrich = '0.032 0.968 0.0 0.0 0.0 0.0'
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1.0e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
formulation = KINEMATIC
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temperature
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = 5
outer_surfaces = 10
temp = temperature
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temperature
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.25e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temperature
burnup_function = burnup
initial_fuel_density = 10360
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = 3
temperature = temperature
burnup_function = burnup
grain_radius = 4.68e-6
[../]
[./fuel_stress]
type = ComputeSmearedCrackingStress
block = 3
cracking_stress = 2.5e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
linear_heat_rate_function = power_history
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = true
max_relocation_recovery_fraction = 0.5
relocation_scaling_factor = 1
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
output_properties = 'relocation_strain recovered_relocation_strain'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
diff_coeff_option = 3
transient_option = 2
res_param_option = 0
temp = temperature
fission_rate = fission_rate
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6550.0
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temperature
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
fuel_pin_geometry = pin_geometry
[../]
[]
[Dampers]
# [./BoundingValueNodalDamper]
# type = BoundingValueNodalDamper
# variable = temperature
# min_value = 300
# max_value = 3200
# [../]
[./max_increment]
type = MaxIncrement
variable = temperature
max_increment = 100
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-4
nl_max_its = 30
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
start_time = 0.0
n_startup_steps = 1
end_time = 75922344.0
dtmax = 1.0e6
dtmin = 1.0
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 15
iteration_window = 3
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./avg_gap_conductance]
type = SideAverageValue
boundary = 10
variable = gap_cond
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temperature
nodeid = 3110 #Mesh dependent!
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = strain_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = stress_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 3141 # Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./total_rod_integral_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = 3
[../]
[./total_rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.376004 # rod height
[../]
[./vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = TENSOR
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage central_fuel_temp midplane_contact_pressure'
execute_on = 'FINAL'
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temperature
fuel_pin_geometry = pin_geometry
number_pellets = 28
execute_on = 'initial linear'
[../]
[./layered_average_contact_pressure]
type = LayeredSideAverage
variable = contact_pressure
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[../]
[]
assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_2DRZ_t.i
[GlobalParams]
density = 11057.75
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type= ReferenceResidualProblem
coord_type = RZ
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.4
pellet_outer_radius = 0.0027
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.00008
clad_thickness = 0.00047
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 0.685
elem_type = QUAD8
nx_c = 4
ny_c = 100
nx_p = 20
ny_p = 100
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
[../]
[]
[AuxVariables]
[./pore]
[../]
[./fission_rate]
[../]
[./burnup]
[../]
[./saved_t]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_p]
[../]
[./fast_neutron_flux]
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 39814.5 39814.5 44289.3 44289.3 53927.4 53927.4 0'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 251280'
y = '3.3e+15 3.3e+15'
[../]
[./f_temp_out_clad]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 634.94 662.273 676.998 686.217 706.339 727 743.358 758.311 780.069 799.077 815.576 846.374 860.233 875.494 882.809 889.8'
scale_factor = 1
axis = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846 0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846'
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./average_power_history]
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 34700 34700 38600 38600 47000 47000 0'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.1372
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = fast_neutron_flux_function
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./temp_clad_outside]
type = FunctionPresetBC
variable = temp
function = f_temp_out_clad
boundary = 2
[../]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
temperature = temp
porosity = pore
block = pellet
Am_content = 0.0237
oxy_to_metal_ratio = 1.982
output_properties = 'thermal_conductivity'
[../]
[./fuel_density]
type = Density
block = pellet
density = 11057.75
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 11057.75
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = Thermal316
block = clad
temp = temp
[../]
[./clad_density]
type = Density
block = clad
density = 8000
[../]
[./clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
fission_rate = fission_rate
grain_radius_const = 14e-06 #I'm keeping the grain radius const because the grain growth in MOX is probably different due to high Temp
bubble_gb_limit = 1.0e+11
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
picard_max_its = 1
picard_abs_tol = 1e-3
picard_rel_tol = 1e-3
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-3
nl_abs_tol = 1e-3
start_time = 0
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
[../]
[./ave_pore]
type = ElementAverageValue
block = pellet
variable = pore
[../]
[./max_pore]
type = NodalExtremeValue
block = pellet
value_type = max
variable = pore
[../]
[./min_pore]
type = NodalExtremeValue
block = pellet
value_type = min
variable = pore
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
# variable = temp
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
# variable = temp
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
# variable = temp
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.4 # rod height
[../]
[]
[VectorPostprocessors]
[./fuel_radial_temperature_Sample1]
type = LineValueSampler
variable = temp
start_point = '0.0 0.283 0.0'
end_point = '0.0027 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_Sample1]
type = LineValueSampler
variable = pore
start_point = '0.0 0.283 0.0'
end_point = '0.0027 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./fuel_radial_temperature_Sample2]
type = LineValueSampler
variable = temp
start_point = '0.0 0.347 0.0'
end_point = '0.0027 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_Sample2]
type = LineValueSampler
variable = pore
start_point = '0.0 0.347 0.0'
end_point = '0.0027 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./fuel_radial_temperature_Sample3]
type = LineValueSampler
variable = temp
start_point = '0.0 0.2 0.0'
end_point = '0.0027 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_Sample3]
type = LineValueSampler
variable = pore
start_point = '0.0 0.2 0.0'
end_point = '0.0027 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./line_plot]
type = CSV
execute_on = 'FINAL'
interval = 1
file_base = 1d
create_final_symlink = true
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[../]
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = b14_ptm001_pore.i
[../]
[]
[Transfers]
[./temp_to_sub]
type = MultiAppProjectionTransfer
direction = to_multiapp
multi_app = sub
source_variable = temp
variable = temp
[../]
[./pore_from_sub]
type = MultiAppInterpolationTransfer
direction = from_multiapp
multi_app = sub
source_variable = pore
variable = pore
[../]
[]
[Debug]
show_var_residual_norms = true
[]
assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_master.i
[GlobalParams]
density = 10431.0
initial_porosity = 0.2
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.9144
pellet_outer_radius = 2.794e-3
pellet_inner_radius = 6.985e-4
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 101.6e-6
clad_thickness = 0.5334e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 1.057 #1.058 - 0.001 clad_bot_gap_height
elem_type = QUAD8
nx_c = 4
ny_c = 500
nx_p = 30
ny_p = 500
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
scaling = 1
[../]
[]
[AuxVariables]
[./pore]
[../]
[./fission_rate]
block = pellet
[../]
[./burnup]
block = pellet
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./thermal_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./fraction_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 0.854004932 0.854004932'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 2.99513e+19 2.99513e+19'
[../]
[./axial_power_profile]
type = PiecewiseBilinear
x = '0.0334152 0.09468 0.1559448 0.2162952 0.27756 0.3388248 0.3991752 0.46044 0.5217048 0.5820552 0.64332 0.7045848 0.7649352 0.8262 0.8874648'
y = '0 31858942.74'
z = '5493.43832 7183.727034 29157.48031 34228.34646 37608.92388 40144.35696 41412.07349 42257.21785 41834.64567 39721.78478 37608.92388 33805.77428 28312.33596 4225.721785 2535.433071 5041.338583 6592.519685 26757.87402 31411.41732 34513.77953 36840.55118 38003.93701 38779.52756 38391.73228 36452.75591 34513.77953 31023.62205 25982.28346 3877.952756 2326.771654'
scale_factor = 1
axis = 1
[../]
[./average_power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24264.05646 24264.05646'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.2
axial_power_profile = axial_power_profile
rod_ave_lin_pow = fraction_history
pellet_diameter = 0.005588
execute_on = timestep_begin
pellet_inner_diameter = 0.001397
porosity = pore
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
execute_on = timestep_end
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
execute_on = timestep_end
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
execute_on = timestep_end
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
execute_on = timestep_end
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
execute_on = timestep_end
[../]
[./nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vcn_bdr_2
execute_on = timestep_end
[../]
[./atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atm_bbl_bdr
execute_on = timestep_end
[../]
[./vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vcn_bbl_bdr
execute_on = timestep_end
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
execute_on = timestep_end
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
execute_on = timestep_end
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = timestep_end
[../]
[./volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = vol_bbl_bdr
execute_on = timestep_end
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./conductivity]
type = MaterialRealAux
property = thermal_conductivity
variable = thermal_cond
block = pellet
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 0.151e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580
inlet_pressure = 0.151e6
inlet_massflux = 1687.43
rod_diameter = 6.858e-3
rod_pitch = 1.7e-2
linear_heat_rate = fraction_history
axial_power_profile = axial_power_profile
coolant_material = sodium
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = ThermalHT9
block = clad
temp = temp
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.88e11
poissons_ratio = 0.236
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_ht9creep'
block = clad
[../]
[./clad_ht9creep]
type = HT9CreepUpdate
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 1.2e-5
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
fission_rate = fission_rate
diff_coeff_option = 4
grain_radius_const = 10e-06
bubble_gb_limit = 1.0e+11
[../]
[./clad_density]
type = Density
block = clad
density = 7874.0
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[./fast_neutron_flux]
type = GenericFunctionMaterial
block = clad
prop_names = fast_neutron_flux
prop_values = fast_neutron_flux_function
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
picard_abs_tol = 1e-5
picard_rel_tol = 1e-6
picard_max_its = 1
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-4
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = fraction_history
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.9144 # rod height
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./ave_pore]
type = ElementAverageValue
variable = pore
[../]
[./max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[../]
[./min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[]
[VectorPostprocessors]
[./clad_surface]
type = LineValueSampler
variable = temp
start_point = '3.4e-3 3.24e-3 0.0'
end_point = '3.4e-3 1.97 0.0'
num_points = 200
sort_by = y
outputs = line_plot
[../]
[./fuel_radial_temperature_SampleH_master]
type = LineValueSampler
variable = temp
start_point = '6.985e-4 0.432 0.0'
end_point = '2.794e-3 0.432 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./fuel_radial_temperature_SampleJ_master]
type = LineValueSampler
variable = temp
start_point = '6.985e-4 0.686 0.0'
end_point = '2.794e-3 0.686 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./fuel_radial_temperature_SampleL_master]
type = LineValueSampler
variable = temp
start_point = '6.985e-4 0.913 0.0'
end_point = '2.794e-3 0.913 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_SampleH_master]
type = LineValueSampler
variable = pore
start_point = '6.985e-4 0.432 0.0'
end_point = '2.794e-3 0.432 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_SampleJ_master]
type = LineValueSampler
variable = pore
start_point = '6.985e-4 0.686 0.0'
end_point = '2.794e-3 0.686 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_SampleL_master]
type = LineValueSampler
variable = pore
start_point = '6.985e-4 0.913 0.0'
end_point = '2.794e-3 0.913 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./line_plot]
type = CSV
execute_on = 'FINAL'
interval = 1
file_base = 1d
create_final_symlink = true
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[../]
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = TIMESTEP_END
sub_cycling = false
positions_file = positions.txt
input_files = 'fftf_fo2_L09_sub.i'
[../]
[]
[Transfers]
[./temp_to_sub]
type = MultiAppProjectionTransfer
direction = to_multiapp
multi_app = sub
source_variable = temp
variable = temp
check_multiapp_execute_on = true
execute_on = SAME_AS_MULTIAPP
[../]
[./pore_from_sub]
type = MultiAppInterpolationTransfer
direction = from_multiapp
multi_app = sub
source_variable = pore
variable = pore
execute_on = SAME_AS_MULTIAPP
[../]
[]
[Debug]
show_var_residual_norms = true
[]
assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_2/RIA/REP_Na_2_RIA.i
# REP Na 2 RIA
[GlobalParams]
density = 10344.71 # assumed TD = 10970
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 30
acceptable_multiplier = 10
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
nx_p = 11
ny_p = 336
ny_cu = 3
ny_c = 350
ny_cl = 3
nx_c = 4
clad_thickness = 0.000637
pellet_outer_radius = 0.0040248
pellet_quantity = 84
pellet_height = 0.0119888
clad_top_gap_height = 0.041077
clad_bot_gap_height = 0.003
clad_gap_width = 93.0e-6
top_bot_clad_height = 0.0015
elem_type = QUAD8
patch_size = 40
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.15
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./grain_radius]
block = 3
initial_condition = 5.0e-6 # Assume Grain size 10 microns
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fuel_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./stress_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_htype]
order = CONSTANT
family = MONOMIAL
[../]
[./critical_heat_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./plastic_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./oxywtfract_total]
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_profile]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = REPNa2_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = REPNa2_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # inlet coolant pressure evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 101325
8640 13999808
57067200 13999808
57110400 101325
57542410 101325
57542450 500008
57542700 500008
57542800 101325
57542900 101325'
[../]
[./temp_ramp] # inlet coolant temp evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 293.15
8640 543.15
57067200 543.15
57110400 293.15
57542410 293.15
57542450 553.15
57542700 553.15
57542800 293.15
57542900 293.15'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./Fuel_CTE_function] #Fuel CTE as a function of temp from MATPRO data
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = ' 0 1.000E-05
300 1.000E-05
350 1.000E-05
400 1.000E-05
450 1.000E-05
500 1.001E-05
550 1.002E-05
600 1.003E-05
650 1.005E-05
700 1.008E-05
750 1.011E-05
800 1.015E-05
850 1.020E-05
900 1.026E-05
950 1.032E-05
1000 1.039E-05
1050 1.046E-05
1100 1.053E-05
1150 1.061E-05
1200 1.069E-05
1250 1.077E-05
1300 1.085E-05
1350 1.094E-05
1400 1.102E-05
1450 1.111E-05
1500 1.119E-05
1550 1.127E-05
1600 1.135E-05
1650 1.143E-05
1700 1.151E-05
1750 1.158E-05
1800 1.166E-05
1850 1.173E-05
1900 1.180E-05
1950 1.187E-05
2000 1.193E-05
2050 1.199E-05
2100 1.205E-05
2150 1.211E-05
2200 1.217E-05
2250 1.222E-05
2300 1.227E-05
2350 1.232E-05
2400 1.237E-05
2450 1.242E-05
2500 1.246E-05
2550 1.250E-05
2600 1.254E-05
2650 1.258E-05
2700 1.262E-05
2750 1.265E-05
2800 1.268E-05
2850 1.271E-05
2900 1.274E-05
2950 1.277E-05
3000 1.280E-05
3050 1.282E-05
3100 1.285E-05'
[../]
[./burnup_GWd]
type = ParsedFunction
value = bu*950
vars = 'bu'
vals = 'average_burnup'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system (in all cases here, the axisymmetric (RZ) version is specified)
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 85
a_upper = 1.0115592
a_lower = 0.0045
fuel_inner_radius = 0
fuel_outer_radius = 0.0040248
fuel_volume_ratio = 1
i_enrich = '0.0685 0.9315 0 0 0 0'
RPF = RPF
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = '1'
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_profile
factor = 3e13 #n/m2-s
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./fuel_conductance]
type = MaterialRealAux
property = thermal_conductivity
variable = fuel_cond
block = 3
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = total_swell
execute_on = timestep_end
block = 3
[../]
[./stress_hoop]
type = MaterialTensorAux
tensor = stress
variable = stress_hoop
quantity = Hoop
execute_on = timestep_end
[../]
[./stress_axial]
type = MaterialTensorAux
tensor = stress
variable = stress_axial
quantity = Axial
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./plastic_strain_hoop]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./plastic_strain_axial]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./total_hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_hoop_strain
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./total_axial_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_axial_strain
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./elastic_strain_hoop]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./elastic_strain_axial]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./clad_coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = clad_coolant_htc
boundary = 2
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = 2
[../]
[./clad_coolant_flux]
type = MaterialRealAux
property = output_heat_flux
variable = clad_coolant_flux
boundary = 2
[../]
[./coolant_channel_hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = coolant_channel_hmode
boundary = 2
[../]
[./coolant_channel_htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = coolant_channel_htype
boundary = 2
[../]
[./critical_heat_flux]
type = MaterialRealAux
property = critical_heat_flux
variable = critical_heat_flux
boundary = 2
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./plastic_strain_mag]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
[../]
[./ofract_total]
type = MaterialRealAux
variable = oxywtfract_total
property = current_oxygen_weight_frac_total
execute_on = timestep_end
boundary = 2
[../]
[./ofgain_total]
type = MaterialRealAux
variable = oxywtfgain_total
property = oxygen_weight_frac_gained_total
execute_on = timestep_end
boundary = 2
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = 1
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e10
formulation = penalty
normalize_penalty = false
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2.0e-6
roughness_clad = 0.5e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
#emissivity_fuel = 0.797698 #Emissivity for fuel
#emissivity_clad = 0.325 #Emissivity for clad
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 57456000
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
emissivity_fuel = 1 #Emissivity for fuel
emissivity_clad = 1 #Emissivity for clad
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_temperature = 293.15
initial_pressure = 1.70e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior #plenumTemp
volume = gas_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
refab_time = 57456000
refab_pressure = 0.1e6
refab_temperature = 293.15
refab_volume = 2.3e-6
[../]
[../]
[]
[CoolantChannel]
# [./convective_clad_surface_water] # apply convective boundary to clad outer surface
# boundary = '1 2 3'
# variable = temp
# inlet_temperature = temp_ramp # K
# inlet_pressure = pressure_ramp # Pa
# inlet_massflux = 1779 # kg/m^2-sec
# rod_diameter = 0.0095 # m
# rod_pitch = 1.265e-2 # m
# #linear_heat_rate = power_profile
# #axial_power_profile = axial_peaking_factors
# coolant_material = 'water'
# compute_enthalpy = true
# oxide_thickness = oxide_thickness # coupled oxide_thickness
# number_axial_zone = 50
# [../]
#
[./convective_clad_surface_sodium] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp # K
inlet_pressure = pressure_ramp # Pa
inlet_massflux = 3533 # kg/m^2-sec Based on flow rate provided and flow area and estimated density of 885.1 kg/m^3
flow_area = 8.74855e-5 #m^2
heated_diameter = 1.172526e-2 #m
hydraulic_diameter = 4.7e-3 #m
heated_perimeter = 2.984513e-2 #m
coolant_material = 'sodium'
compute_enthalpy = true
heat_transfer_mode = 0
#oxide_thickness = oxide_thickness # coupled oxide_thickness
number_axial_zone = 50
rod_pitch = 1.26e-2 # m
rod_diameter = 0.0095 # m
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./density_fuel]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.057
[../]
[./fuel_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2e11
poissons_ratio = 0.345
dep_matl_props = deltav_v0_bd
thermal_expansion_function = Fuel_CTE_function
stress_free_temperature = 293.15
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.0080496 #Fuel pellet diameter in m
q = q
gap = 186.0e-6 #diametral gap in m
burnup_relocation_stop = 0.0
relocation_activation1 = 5000 #initial relocation activation power in W/m
[../]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
save_solid_swell = true
save_densification = true
total_densification = 0.00676
initial_porosity = 0.057
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
initial_porosity = 0.057
#grain_radius = grain_radius
grain_radius_const = 5.0e-6
gbs_model = false
transient_option = 1
[../]
[./density_clad]
type = Density
block = '1'
density = 6550
[../]
[./clad_thermal]
type = ThermalZry
block = '1'
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
formulation = NonlinearRZ
large_strain = 1
constitutive_model = combined
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
model_irradiation_growth = 0 #1
model_thermal_expansion = 1
model_elastic_modulus = 1
stress_free_temperature = 293.15
compute_JIntegral = true
oxygen_concentration = 0.00357
max_inelastic_increment = 1.0e-4
compute_material_timestep_limit = true
[../]
[./combined]
type = CombinedCreepPlasticity
block = 1
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = 0 #1
model_primary_creep = 0 #1
model_thermal_creep = 0 #1
model_thermal_creep_loca = 0
[../]
[./plasticity]
type = ZryPlasticity
block = clad
temp = temp
cold_work_factor = 0.5
fast_neutron_fluence = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
use_matpro = true
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0041178
clad_outer_radius = 0.0047549
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./phase]
type = ZrPhase
block = 1
temperature = temp
numerical_method = 2
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
max_value = 3200 # The maximum permissible iterative value for the variable.
min_value = 200 # The minimum permissible iterative value for the variable.
variable = temp # The name of the variable that this damper operates on
[../]
[./contact_slip]
type = ContactSlipDamper
master = 5
slave = 10
min_damping_factor = 0.05
[../]
[]
#Preconditioning seems to help with frictionless contact but with frictional contact has always resulted in BISON to fail
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
#verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 1e-3
# controls for nonlinear iterations
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = 0
end_time = 57542900
dtmax = 10
dtmin = 1e-9
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1
optimal_iterations = 20
iteration_window = 4
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
max_function_change = 1e5
force_step_every_function_point = true
timestep_limiting_postprocessor = material_timestep_control
time_t = '57542410 57542420 57542430 57542440 57542450 57542460 57542470 57542480 57542500 57542500.01 57542500.02 57542500.03 57542500.04 57542500.05 57542500.06'
time_dt = '10 10 10 10 10 10 10 10 0.001 0.001 0.001 0.001 0.001 0.001 0.001'
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
# [./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
# type = SideAverageValue
# boundary = '6 8'
# variable = temp
# execute_on = 'initial linear'
# [../]
#Used during RIA to be mainly the cladding temperature at the top of the plenum
[./ave_temp_interior]
type = NodalVariableValue
variable = temp
nodeid = 5031
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./1_rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./burnup_GWd]
type = FunctionValuePostprocessor
function = burnup_GWd
[../]
#######################################
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 11625
use_displaced_mesh = 1
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 11625
use_displaced_mesh = 1
[../]
[./gap_cond]
type = ElementalVariableValue
variable = gap_cond
elementid = 3502
use_displaced_mesh = 1
[../]
[./creep_hoop_strain]
type = ElementalVariableValue
variable = creep_strain_hoop
elementid = 780
use_displaced_mesh = 1
[../]
[./elastic_hoop_strain]
type = ElementalVariableValue
variable = elastic_strain_hoop
elementid = 780
use_displaced_mesh = 1
[../]
[./plastic_hoop_strain]
type = ElementalVariableValue
variable = plastic_strain_hoop
elementid = 780
use_displaced_mesh = 1
[../]
[./total_hoop_strain]
type = ElementalVariableValue
variable = total_hoop_strain
elementid = 780
use_displaced_mesh = 1
[../]
[./clad_hoop_stress]
type = ElementalVariableValue
variable = stress_hoop
elementid = 780
use_displaced_mesh = 1
[../]
[./clad_axial_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 5111
use_displaced_mesh = 1
[../]
[./clad_oxide_thickness]
type = ElementalVariableValue
variable = oxide_thickness
elementid = 780
use_displaced_mesh = 1
[../]
[./clad_coolant_htc]
type = ElementalVariableValue
variable = clad_coolant_htc
elementid = 780
use_displaced_mesh = 1
[../]
[./coolant_temp]
type = ElementalVariableValue
variable = coolant_temp
elementid = 780
use_displaced_mesh = 1
[../]
[./fuel_centerline_temp]
type = NodalVariableValue
variable = temp
nodeid = 11594
[../]
[./fuel_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 11625
[../]
[./clad_inner_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 2721
[../]
[./clad_outer_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 2731
[../]
[./fuel_axial_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 17015
[../]
[./clad_radial_elongation]
type = NodalVariableValue
variable = disp_x
nodeid = 2731
[../]
[./fuel_radial_elongation]
type = NodalVariableValue
variable = disp_x
nodeid = 11625
[../]
[./SED_PPN_O]
type = ElementalVariableValue
variable = SED
elementid = 780
use_displaced_mesh = 1
[../]
[./SED_PPN_I]
type = ElementalVariableValue
variable = SED
elementid = 777
use_displaced_mesh = 1
[../]
[./OFract_PPN_O]
type = ElementalVariableValue
variable = oxywtfract_total
elementid = 780
use_displaced_mesh = 1
[../]
[./OGain_PPN_O]
type = ElementalVariableValue
variable = oxywtfgain_total
elementid = 780
use_displaced_mesh = 1
[../]
#######################################
[./max_fuel_temp]
type = NodalMaxValue
block = 3
variable = temp
[../]
[./max_clad_temp]
type = NodalMaxValue
block = clad
variable = temp
[../]
[./max_clad_SED]
type = ElementExtremeValue
block = clad
variable = SED
value_type = max
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[./material_timestep_control]
type = MaterialTimeStepPostprocessor
block = 1
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_1'
[../]
[./ox_thick]
type = SideValueSampler
variable = oxide_thickness
boundary = 2
sort_by = y
outputs = 'outfile_2'
[../]
[./rad_temp]
type = LineValueSampler
end_point = '0.0040248 0.55 0.0'
start_point = '0.0 0.55 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
interval = 1
csv = true
#exodus = true
color = false
[./outfile_1]
type = CSV
#execute_on = 'FINAL'
sync_times = '57542400 57542900'
sync_only = true
[../]
[./outfile_2]
type = CSV
#execute_on = 'FINAL'
sync_times = '57542400 57542900'
sync_only = true
[../]
[./dummy]
type = CSV
enable = false
[../]
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
sync_times = '57542400'
sync_only = true
[../]
[./exodus]
type = Exodus
interval = 6
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
show_material_props = true
[]
assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_2a/27_2a_tm.i
[GlobalParams]
density = 10431.0
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11 # J/fission (200 MeV)
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 9.5e-4
pellet_mesh_density = customize
ny_p = 8
nx_c = 4
nx_p = 12
pellet_outer_radius = 0.005305
ny_cu = 3
ny_c = 8
clad_bot_gap_height = 1e-3
pellet_quantity = 1
pellet_height = 0.0127
ny_cl = 3
plenum_fuel_ratio = 0.45
clad_gap_width = 9.5e-5
elem_type = QUAD8
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 7.5e-6
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
x = '0 100'
y = '0 15000'
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.02914 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_upper = 0.01594
a_lower = 0.00324
fuel_inner_radius = 0.0
fuel_outer_radius = 0.005305
i_enrich = '0.13 0.87 0 0 0 0' # 13% enriched U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = 3
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
execute_on = timestep_begin
factor = 1.6e12 # (n/m2-s per W/m) used HALDEN fast flux
block = 1
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = 1
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = 1
variable = creep_strain_mag
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
roughness_coef = 3.2
roughness_fuel = 2.0e-6
roughness_clad = 1.0e-6
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_bc]
type = DirichletBC
variable = temp
boundary = '1 2 3'
value = 516.2 # Clad wall temp = 240+.4162*(LHR)^.75, where temp is C and LHR is kW/m
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6 # Halden coolant pressure
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 5.0e5 # FUMEXII => 500 kPa pressure (He fill)
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = '3'
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
initial_porosity = 0.05
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup = burnup
diameter = 10.61e-3
linear_heat_rate_function = q
gap = 0.19e-3
relocation_activation1 = 5000
burnup_relocation_stop = 0.044
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = 1
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
dtmax = 1e6
dtmin = 1
end_time = 4.74e8
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
outputs = exodus
[../]
[./intg_flux_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./intg_flux_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./fuel_center_temperature]
type = NodalVariableValue
nodeid = 467 # GlobalNodeID 468
variable = temp
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./average_fissionrate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = '3'
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fuel_center_temperature rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/HbepR1/analysis/H8364/SM/HbepR1_H8364_sm.i
################################################################################
#
# Description: HbepR1 Rod 33 - Rod ID H8364
#
#
#
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file H8364-power.csv
# axial peaking factor file H8364-axial-profile.csv
# flux boundary condition file H8364-axial-tempprofile.csv
#
# Revision History:
# Last update: 5/20/2016
#
################################################################################
[GlobalParams]
density = 10490 #94.882 %TD Assume TD = 10972.65 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.95e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .0049695
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.68
ny_cl = 3
clad_top_gap_height = 0.244325
clad_gap_width = 1.005e-4
elem_type = QUAD8
patch_size = 100 # 1000 lowering this and setting the strategy to auto will reduce the amount of memory required to run the job.
patch_update_strategy = iteration#auto
partitioner = centroid # this will help with run time
centroid_partitioner_direction = y # this will help with run time
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 273 #K
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5.148e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = H8364-power.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = H8364-axial-profile.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '-100 0 166323600 166327200' #
y = '0.014429 1 1 0.014429'
[../]
[./temp_ramp]
type = PiecewiseBilinear
data_file = H8364-axial-tempprofile.csv
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3 # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate # coupling to the fission_rate aux variable
save_in = saved_t
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
factor = 1.6727e13 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.68478
fuel_inner_radius = 0.0
fuel_outer_radius = 0.0049695 # m
i_enrich = '0.0139 .9861 0 0 0 0'
RPF = RPF
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 1.1e-6
roughness_clad = 3.5e-7
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 # Pa
function = pressure_ramp
[../]
[../]
[./coolant_temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = temp_ramp
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9 # clad interior + fuel exterior
initial_pressure = 0.375e6 # Pa
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = plenum_temperature # coupling to post processor to get gas temperature approximation
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
total_densification = .0043
tensor_mechanics_compatibility = true
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
initial_porosity = 0.04
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_and_creep]
type = Elastic
dep_matl_props = deltav_v0_bd
block = 3
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.00507
clad_outer_radius = 0.005865
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.009939 # fuel pellet diamter in meters
gap = 100.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .049 # turn off relocation
relocation_activation1 = 5000
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
stress_free_temperature = 273
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
material_type = 1
youngs_modulus = 7.5e10
poissons_ratio = 0.3
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[]
[UserObjects]
[./integral_burnup] # Added the computation of the average fuel rod burnup
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 166327200
dtmax = 1e6
dtmin = 0.1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
# Clad postprocessor (The rest are created with StandardLWRFuelRodOutputs)
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
[../]
[./clad_fuel_gap]
type = NodalMaxValue
variable = penetration
boundary = 10
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
interval = 1
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
# [./chkfile]
# type = CSV
# show = 'average_burnup fission_gas_released_percentage rod_ave_lin_pow'
# execute_on = 'FINAL'
# [../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
examples/tensor_mechanics/TRISO/IAEA_CRP-6_type/2D/case_11/case_11.i
[GlobalParams]
density = 10810.0 # kg/m^3
order = SECOND
family = LAGRANGE
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Mesh]
file = case_11.e
[]
[Problem]
coord_type = RZ
[]
[Variables]
[./temp]
initial_condition = 1608.0
[../]
[]
[AuxVariables]
[./fluence]
[../]
[./fast_neutron_flux]
[../]
[./fission_rate]
block = fuel
[../]
[./burnup]
block = fuel
[../]
[./grain_radius]
initial_condition = 5.0e-6
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = fuel
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./buffer]
block = buffer
add_variables = true
strain = FINITE
eigenstrain_names = 'buffer_thermal_strain buffer_eigenstrain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./IPyC]
block = IPyC
add_variables = true
strain = FINITE
eigenstrain_names = 'IPyC_eigenstrain IPyC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./SiC]
block = SiC
add_variables = true
strain = FINITE
eigenstrain_names = 'SiC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./OPyC]
block = OPyC
add_variables = true
strain = FINITE
eigenstrain_names = 'OPyC_eigenstrain OPyC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[]
[Functions]
[./fast_neutron_flux]
type = ParsedFunction
value = 2.37417e18
[../]
[./fission_rate]
type = ParsedFunction
value = 1.1135e20 # units of fissions/m**3
[../]
[]
[Kernels]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fluence]
type = FastNeutronFluenceAux
variable = fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./fast_neutron_flux]
type = FunctionAux
variable = fast_neutron_flux
function = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fission_rate]
type = FunctionAux
variable= fission_rate
block = fuel
function = fission_rate
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 15
slave = 17
penalty = 1e5
model = frictionless
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 15
slave = 17
initial_moles = initial_moles
gas_released = 'fis_gas_released co_production'
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
[../]
[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
[./no_disp_y]
type = DirichletBC
variable = disp_y
boundary = yzero
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = DirichletBC
variable = temp
boundary = exterior
value = 1608
[../]
# exterior and internal pressures
[./exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
component = 0
factor = 0.1e6
[../]
[./exterior_pressure_y]
type = Pressure
variable = disp_y
boundary = exterior
component = 1
factor = 0.1e6
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 'PyCGapBndry BufferGapBndry'
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = volumeGas
material_input = 'fis_gas_released co_production'
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
temp = temp
thermal_conductivity_model = FINK_LUCUTA
initial_porosity = 0.0
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e8
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 1608.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
[../]
[./buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2.0e8
poissons_ratio = 0.345
[../]
[./buffer_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = buffer
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_density]
type = Density
density = 1000.0 #kg/m^3
block = buffer
[../]
[./buffer_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = buffer
thermal_expansion_coeff = 5.5e-6
temperature = temp
stress_free_temperature = 1608.0
eigenstrain_name = buffer_thermal_strain
[../]
[./buffer_irraditation]
type = PyCIrradiationEigenstrain
block = buffer
fluence = fluence
pyc_type = buffer
eigenstrain_name = buffer_eigenstrain
[../]
[./IPyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = IPyC
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[../]
[./IPyC_stress]
type = PyCCreep
block = IPyC
flux = fast_neutron_flux
temperature = temp
density = 1880.0
[../]
[./IPyC_temp]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./IPyC_density]
type = Density
density = 1880.0 # kg/m^3
block = IPyC
[../]
[./IPyC_densification]
type = PyCIrradiationEigenstrain
block = IPyC
fluence = fluence
pyc_type = dense
eigenstrain_name = IPyC_eigenstrain
[../]
[./IPyC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = IPyC
thermal_expansion_coeff = 5.5e-6
temperature = temp
stress_free_temperature = 1608.0
eigenstrain_name = IPyC_thermal_strain
[../]
[./SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[../]
[./SiC_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_density]
type = Density
density = 3200.0 # kg/m^3
block = SiC
[../]
[./SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temp
stress_free_temperature = 1608.0
eigenstrain_name = SiC_thermal_strain
[../]
[./OPyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = OPyC
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[../]
[./OPyC_stress]
type = PyCCreep
block = OPyC
flux = fast_neutron_flux
temperature = temp
density = 1880.0
[../]
[./OPyC_temp]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./OPyC_den]
type = Density
density = 1880.0 # kg/m^3
block = OPyC
[../]
[./OPyC_densification]
type = PyCIrradiationEigenstrain
block = OPyC
fluence = fluence
pyc_type = dense
eigenstrain_name = OPyC_eigenstrain
[../]
[./OPyC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = OPyC
thermal_expansion_coeff = 5.5e-6
temperature = temp
stress_free_temperature = 1608.0
eigenstrain_name = OPyC_thermal_strain
[../]
[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 20
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 3.032e7
dtmax = 2e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 10
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./max_xx_IPyC]
type = ElementExtremeValue
variable = stress_xx
block = IPyC
[../]
[./max_yy_IPyC]
type = ElementExtremeValue
variable = stress_yy
block = IPyC
[../]
[./min_zz_IPyC]
type = ElementExtremeValue
variable = stress_zz
block = IPyC
value_type = min
[../]
[./max_xx_SiC]
type = ElementExtremeValue
variable = stress_xx
block = SiC
[../]
[./max_yy_SiC]
type = ElementExtremeValue
variable = stress_yy
block = SiC
[../]
[./min_zz_SiC]
type = ElementExtremeValue
variable = stress_zz
block = SiC
value_type = min
[../]
[./max_xx_OPyC]
type = ElementExtremeValue
variable = stress_xx
block = OPyC
[../]
[./max_yy_OPyC]
type = ElementExtremeValue
variable = stress_yy
block = OPyC
[../]
[./min_zz_OPyC]
type = ElementExtremeValue
variable = stress_zz
block = OPyC
value_type = min
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = 'initial linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = 'initial linear'
[../]
[./volumeTotal]
type = InternalVolume
component = 0
boundary = exterior
execute_on = 'initial timestep_end'
[../]
[./volumeFuel]
type = InternalVolume
component = 0
boundary = fuel
execute_on = 'initial timestep_end'
[../]
[./volumeGas]
type = InternalVolume
component = 0
boundary = BufferGapVol
addition = -5.53e-11
execute_on = 'initial timestep_end'
[../]
[./volumeBufferShell]
type = InternalVolume
component = 0
boundary = BufferGapVol
execute_on = 'initial timestep_end'
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = BufferGapVol
variable = temp
execute_on = 'initial timestep_end'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial timestep_end'
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
execute_on = 'initial timestep_end'
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
execute_on = 'initial timestep_end'
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
execute_on = 'initial timestep_end'
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
execute_on = 'initial timestep_end'
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[./chkfile]
type = CSV
execute_on = Final
show = 'max_xx_IPyC max_yy_IPyC min_zz_IPyC max_xx_SiC max_yy_SiC min_zz_SiC co_production fis_gas_released avg_surface_temp'
[../]
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFL009/SM/BFL009.i
################################################################################
#
# Description: Calvert Cliffs BFL009
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFL009_power.csv
# axial peaking factor file BFL009_axial_peaking.csv
# flux boundary condition file BFL009_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10460.45 #95.332 %TD Assume TD = 10972.65 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
file = BFL009_mesh.e
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 3.85e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFL009_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFL009_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 167148794 167149154'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 167148794 167149154'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFL009_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0013589
fuel_outer_radius = 0.00478155 # m
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '9 13'
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elasticity_and_creep]
type = Elastic #CreepUO2
block = 3
temp = temp
# fission_rate = fission_rate
# cracking_stress = 130e6
# max_cracks = 1
# active_crack_planes = 2
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
# grain_radius = 6.0e-6
# grain_radius = 10.0e-6 # set larger than 6 microns (see ForMas) to impove convergence
# oxy_to_metal_ratio = 2.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.0095631 # fuel pellet diamter in meters
gap = 190.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .029 # turn off relocation
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 167149154
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_2984]
type = NodalVariableValue
nodeid = 2983
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_3/RIA/REP_Na_3_RIA.i
# REP Na 3 Rodlet RIA
[GlobalParams]
density = 10394.075 # assumed TD = 10970
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 30
acceptable_multiplier = 10
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
nx_p = 11
ny_p = 128
ny_cu = 3
ny_c = 130
ny_cl = 3
nx_c = 4
clad_thickness = 0.000596
pellet_outer_radius = 0.0040956
pellet_quantity = 32
pellet_height = 0.0135890
clad_top_gap_height = 0.0298168
clad_bot_gap_height = 0.003
clad_gap_width = 82.0e-6
top_bot_clad_height = 0.0015
elem_type = QUAD8
patch_size = 40
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.15
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./grain_radius]
block = 3
initial_condition = 5.0e-6 # Assume Grain size 10 microns
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fuel_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./stress_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_htype]
order = CONSTANT
family = MONOMIAL
[../]
[./critical_heat_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./plastic_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./oxywtfract_total]
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_profile]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = REPNa3_power_history_Full.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = REPNa3_axial_peaking_Full.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # inlet coolant pressure evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 101325
8640 15499970
17280 15499970
25920 15499970
34560 15499970
43200 15499970
51840 15499970
98798400 15499970
99273600 101325
99273610 101325
99273650 500008
99273700 500008
99273900 500008
99274000 101325
99274100 101325'
[../]
[./temp_ramp] # inlet coolant temp evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 293.15
8640 583.15
17280 583.15
25920 583.15
34560 583.15
43200 583.15
51840 583.15
98798400 583.15
99273600 293.15
99273610 293.15
99273650 553.15
99273700 553.15
99273900 553.15
99274000 293.15
99274100 293.15'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./Fuel_CTE_function] #Fuel CTE as a function of temp from MATPRO data
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = ' 0 1.000E-05
300 1.000E-05
350 1.000E-05
400 1.000E-05
450 1.000E-05
500 1.001E-05
550 1.002E-05
600 1.003E-05
650 1.005E-05
700 1.008E-05
750 1.011E-05
800 1.015E-05
850 1.020E-05
900 1.026E-05
950 1.032E-05
1000 1.039E-05
1050 1.046E-05
1100 1.053E-05
1150 1.061E-05
1200 1.069E-05
1250 1.077E-05
1300 1.085E-05
1350 1.094E-05
1400 1.102E-05
1450 1.111E-05
1500 1.119E-05
1550 1.127E-05
1600 1.135E-05
1650 1.143E-05
1700 1.151E-05
1750 1.158E-05
1800 1.166E-05
1850 1.173E-05
1900 1.180E-05
1950 1.187E-05
2000 1.193E-05
2050 1.199E-05
2100 1.205E-05
2150 1.211E-05
2200 1.217E-05
2250 1.222E-05
2300 1.227E-05
2350 1.232E-05
2400 1.237E-05
2450 1.242E-05
2500 1.246E-05
2550 1.250E-05
2600 1.254E-05
2650 1.258E-05
2700 1.262E-05
2750 1.265E-05
2800 1.268E-05
2850 1.271E-05
2900 1.274E-05
2950 1.277E-05
3000 1.280E-05
3050 1.282E-05
3100 1.285E-05'
[../]
[./burnup_GWd]
type = ParsedFunction
value = bu*950
vars = 'bu'
vals = 'average_burnup'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system (in all cases here, the axisymmetric (RZ) version is specified)
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 33
a_upper = 0.4393480
a_lower = 0.0045
fuel_inner_radius = 0
fuel_outer_radius = 0.0040956
fuel_volume_ratio = 1
i_enrich = '0.045 0.955 0 0 0 0'
RPF = RPF
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = '1'
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_profile
factor = 3e13 #n/m2-s
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./fuel_conductance]
type = MaterialRealAux
property = thermal_conductivity
variable = fuel_cond
block = 3
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = total_swell
execute_on = timestep_end
block = 3
[../]
[./stress_hoop]
type = MaterialTensorAux
tensor = stress
variable = stress_hoop
quantity = Hoop
execute_on = timestep_end
[../]
[./stress_axial]
type = MaterialTensorAux
tensor = stress
variable = stress_axial
quantity = Axial
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./plastic_strain_hoop]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./plastic_strain_axial]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./total_hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_hoop_strain
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./total_axial_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_axial_strain
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./elastic_strain_hoop]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./elastic_strain_axial]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./clad_coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = clad_coolant_htc
boundary = 2
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = 2
[../]
[./clad_coolant_flux]
type = MaterialRealAux
property = output_heat_flux
variable = clad_coolant_flux
boundary = 2
[../]
[./coolant_channel_hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = coolant_channel_hmode
boundary = 2
[../]
[./coolant_channel_htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = coolant_channel_htype
boundary = 2
[../]
[./critical_heat_flux]
type = MaterialRealAux
property = critical_heat_flux
variable = critical_heat_flux
boundary = 2
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./plastic_strain_mag]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
[../]
[./ofract_total]
type = MaterialRealAux
variable = oxywtfract_total
property = current_oxygen_weight_frac_total
execute_on = timestep_end
boundary = 2
[../]
[./ofgain_total]
type = MaterialRealAux
variable = oxywtfgain_total
property = oxygen_weight_frac_gained_total
execute_on = timestep_end
boundary = 2
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = 1
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e10
formulation = penalty
normalize_penalty = false
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 1.0e-6 #0.1e-6
roughness_clad = 0.5e-6 #0.1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
#emissivity_fuel = 0.797698 #Emissivity for fuel
#emissivity_clad = 0.325 #Emissivity for clad
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 99187200
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
emissivity_fuel = 1 #Emissivity for fuel
emissivity_clad = 1 #Emissivity for clad
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_temperature = 293.15
initial_pressure = 2.60e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior #plenumTemp
volume = gas_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
save_in = 'saved_x saved_y'
refab_time = 99187200
refab_pressure = 0.31e6
refab_temperature = 293.15
refab_volume = 2.0e-6
[../]
[../]
[]
[CoolantChannel]
# [./convective_clad_surface_water] # apply convective boundary to clad outer surface
# boundary = '1 2 3'
# variable = temp
# inlet_temperature = temp_ramp # K
# inlet_pressure = pressure_ramp # Pa
# inlet_massflux = 3244.044104 # kg/m^2-sec
# rod_diameter = 0.0095 # m
# rod_pitch = 1.26e-2 # m
# #linear_heat_rate = power_profile
# #axial_power_profile = axial_peaking_factors
# coolant_material = 'water'
# compute_enthalpy = true
# oxide_thickness = oxide_thickness # coupled oxide_thickness
# number_axial_zone = 50
# [../]
#
[./convective_clad_surface_sodium] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp # K
inlet_pressure = pressure_ramp # Pa
inlet_massflux = 3533 # kg/m^2-sec Based on flow rate provided and flow area and estimated density of 885.1 kg/m^3
flow_area = 8.74855e-5 #m^2
heated_diameter = 1.172526e-2 #m
hydraulic_diameter = 4.7e-3 #m
heated_perimeter = 2.984513e-2 #m
coolant_material = 'sodium'
compute_enthalpy = true
heat_transfer_mode = 0
#oxide_thickness = oxide_thickness # coupled oxide_thickness
number_axial_zone = 50
rod_pitch = 1.26e-2 # m
rod_diameter = 0.0095 # m
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./density_fuel]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.0525
[../]
[./fuel_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2e11
poissons_ratio = 0.345
#thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
thermal_expansion_function = Fuel_CTE_function
stress_free_temperature = 293.15
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.0081912 #Fuel pellet diameter in m
q = q
gap = 164.0e-6 #diametral gap in m
burnup_relocation_stop = 0.0242
relocation_activation1 = 5000 #initial relocation activation power in W/m
[../]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
save_solid_swell = true
save_densification = true
total_densification = 0.00675
initial_porosity = 0.0525
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
initial_porosity = 0.0525
#grain_radius = grain_radius
grain_radius_const = 5.0e-6
gbs_model = false
transient_option = 1
[../]
[./density_clad]
type = Density
block = '1'
density = 6550
[../]
[./clad_thermal]
type = ThermalZry
block = '1'
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
formulation = NonlinearRZ
large_strain = 1
constitutive_model = combined
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
model_irradiation_growth = 0 #1
model_thermal_expansion = 1
model_elastic_modulus = 1
stress_free_temperature = 293.15
compute_JIntegral = true
oxygen_concentration = 0.02135
max_inelastic_increment = 1.0e-4
compute_material_timestep_limit = true
[../]
[./combined]
type = CombinedCreepPlasticity
block = 1
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = 0 #1
model_primary_creep = 0 #1
model_thermal_creep = 0 #1
model_thermal_creep_loca = 0
[../]
[./plasticity]
type = ZryPlasticity
block = clad
temp = temp
cold_work_factor = 0.5
fast_neutron_fluence = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
use_matpro = true
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0041178
clad_outer_radius = 0.0047549
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./phase]
type = ZrPhase
block = 1
temperature = temp
numerical_method = 2
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
max_value = 3200 # The maximum permissible iterative value for the variable.
min_value = 200 # The minimum permissible iterative value for the variable.
variable = temp # The name of the variable that this damper operates on
[../]
[./contact_slip]
type = ContactSlipDamper
master = 5
slave = 10
min_damping_factor = 0.05
[../]
[]
#Preconditioning seems to help with frictionless contact but with frictional contact has always resulted in BISON to fail
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
#verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 1e-3
# controls for nonlinear iterations
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = 0
end_time = 99274100
dtmax = 10
dtmin = 1e-9
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1
optimal_iterations = 20
iteration_window = 4
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
max_function_change = 5e5
force_step_every_function_point = true
timestep_limiting_postprocessor = material_timestep_control
time_t = '99273610 99273620 99273630 99273640 99273650 99273660 99273670 99273680'
time_dt = '10 10 10 10 10 10 10 10'
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
# [./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
# type = SideAverageValue
# boundary = '6 8'
# variable = temp
# execute_on = 'initial linear'
# [../]
#Used during RIA to be mainly the cladding temperature at the top of the plenum
[./ave_temp_interior]
type = NodalVariableValue
variable = temp
nodeid = 1937
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./1_rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./burnup_GWd]
type = FunctionValuePostprocessor
function = burnup_GWd
[../]
#######################################
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 4415
use_displaced_mesh = 1
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 4415
use_displaced_mesh = 1
[../]
[./gap_cond]
type = ElementalVariableValue
variable = gap_cond
elementid = 1324
use_displaced_mesh = 1
[../]
[./creep_hoop_strain]
type = ElementalVariableValue
variable = creep_strain_hoop
elementid = 292
use_displaced_mesh = 1
[../]
[./elastic_hoop_strain]
type = ElementalVariableValue
variable = elastic_strain_hoop
elementid = 292
use_displaced_mesh = 1
[../]
[./plastic_hoop_strain]
type = ElementalVariableValue
variable = plastic_strain_hoop
elementid = 292
use_displaced_mesh = 1
[../]
[./total_hoop_strain]
type = ElementalVariableValue
variable = total_hoop_strain
elementid = 292
use_displaced_mesh = 1
[../]
[./clad_hoop_stress]
type = ElementalVariableValue
variable = stress_hoop
elementid = 292
use_displaced_mesh = 1
[../]
[./clad_axial_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 2031
use_displaced_mesh = 1
[../]
[./clad_oxide_thickness]
type = ElementalVariableValue
variable = oxide_thickness
elementid = 292
use_displaced_mesh = 1
[../]
[./clad_coolant_htc]
type = ElementalVariableValue
variable = clad_coolant_htc
elementid = 292
use_displaced_mesh = 1
[../]
[./coolant_temp]
type = ElementalVariableValue
variable = coolant_temp
elementid = 292
use_displaced_mesh = 1
[../]
[./fuel_centerline_temp]
type = NodalVariableValue
variable = temp
nodeid = 4384
[../]
[./fuel_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 4415
[../]
[./clad_inner_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 1027
[../]
[./clad_outer_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 1037
[../]
[./fuel_axial_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 6655
[../]
[./clad_radial_elongation]
type = NodalVariableValue
variable = disp_x
nodeid = 1037
[../]
[./fuel_radial_elongation]
type = NodalVariableValue
variable = disp_x
nodeid = 4415
[../]
[./SED_PPN_O]
type = ElementalVariableValue
variable = SED
elementid = 292
use_displaced_mesh = 1
[../]
[./SED_PPN_I]
type = ElementalVariableValue
variable = SED
elementid = 289
use_displaced_mesh = 1
[../]
[./OFract_PPN_O]
type = ElementalVariableValue
variable = oxywtfract_total
elementid = 292
use_displaced_mesh = 1
[../]
[./OGain_PPN_O]
type = ElementalVariableValue
variable = oxywtfgain_total
elementid = 292
use_displaced_mesh = 1
[../]
#######################################
[./max_fuel_temp]
type = NodalMaxValue
block = 3
variable = temp
[../]
[./max_clad_temp]
type = NodalMaxValue
block = clad
variable = temp
[../]
[./max_clad_SED]
type = ElementExtremeValue
block = clad
variable = SED
value_type = max
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[./material_timestep_control]
type = MaterialTimeStepPostprocessor
block = 1
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_1'
[../]
[./ox_thick]
type = SideValueSampler
variable = oxide_thickness
boundary = 2
sort_by = y
outputs = 'outfile_2'
[../]
[./rad_temp]
type = LineValueSampler
end_point = '0.0040956 0.22 0.0'
start_point = '0.0 0.22 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
interval = 1
csv = true
#exodus = true
color = false
[./outfile_1]
type = CSV
#execute_on = 'FINAL'
sync_times = '99273600 99274100'
sync_only = true
[../]
[./outfile_2]
type = CSV
#execute_on = 'FINAL'
sync_times = '99273600 99274100'
sync_only = true
[../]
[./dummy]
type = CSV
enable = false
[../]
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
sync_times = '99273600'
sync_only = true
[../]
[./exodus]
type = Exodus
interval = 5
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
show_material_props = true
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM043/TM/BFM043_tm.i
################################################################################
#
# Description: Calvert Cliffs BFM043
#
#
#
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFM043_power.csv
# axial peaking factor file BFM043_axial_peaking.csv
# flux boundary condition file BFM043_fast_flux.csv
################################################################################
[GlobalParams]
density = 10386.93 #94.662 %TD Assume TD = 10972.65 kg/cm3
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.31834
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 3.85e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFM043_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFM043_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 179369250 179369610'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 179369250 179369610'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFM043_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155 # m
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0095631 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 190.5e-6 #diametral gap in m
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10386.93
total_densification = 0.01
initial_porosity = 0.05
eigenstrain_name = fuel_volumetric_strain
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 179369610
dtmax = 2.5e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
test/tests/triso/base_irradiation/triso1D_accident_truss3.i
# @Requirement F3.10
# @Requirement F3.50
[GlobalParams]
density = 11000.0 # kg/m^3
order = SECOND
disp_x = disp_x
displacements = 'disp_x'
[]
[Mesh]
file = triso1DFineTruss3.e
#construct_side_list_from_node_list = true
[]
[Problem]
coord_type = RSPHERICAL
[]
[Variables]
[./disp_x]
[../]
[./temp]
initial_condition = 1500.0
[../]
[./conc]
initial_condition = 0.0
scaling = 1e18
[../]
[]
[AuxVariables]
[./fluence]
[../]
[./fast_neutron_flux]
[../]
[./fission_rate]
block = fuel
[../]
[./burnup]
block = fuel
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_condSlave]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[../]
[./temp_bc]
type = PiecewiseLinear
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[../]
[./k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[../]
[./d1_function]
type = ParsedFunction
value = 'exp(t/4.5e25)'
[../]
[./d_gap]
type = PiecewiseLinear
x = '1500 2100'
y = '1e-14 1e-12'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
disp_r = disp_x
[../]
[]
[Kernels]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[./mass_ie]
type = TimeDerivative
variable = conc
[../]
[./mass]
type = ArrheniusDiffusion
variable = conc
[../]
[./mass_source]
type = BodyForce
variable = conc
function = power_history
value = 1.22e-5 # units of moles/m**3-s
block = fuel
[../]
[./mass_decay]
type = Decay
variable = conc
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
[../]
[]
[AuxKernels]
[./fluence]
type = FastNeutronFluenceAux
variable = fluence
fast_neutron_flux = fast_neutron_flux
execute_on = 'initial timestep_begin'
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = power_history
factor = 5e17
execute_on = 'initial timestep_begin'
[../]
[./fission_rate]
type = FissionRateAux
variable = fission_rate
block = fuel
function = power_history
value = 3.89e19
execute_on = 'initial timestep_begin'
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./creep_xx]
type = MaterialTensorAux
tensor = creep_strain
block = 'buffer IPyC SiC OPyC'
variable = creep_xx
index = 0
execute_on = timestep_end
[../]
[./creep_yy]
type = MaterialTensorAux
tensor = creep_strain
block = 'buffer IPyC SiC OPyC'
variable = creep_yy
index = 1
execute_on = timestep_end
[../]
[./creep_zz]
type = MaterialTensorAux
tensor = creep_strain
block = 'buffer IPyC SiC OPyC'
variable = creep_zz
index = 2
execute_on = timestep_end
[../]
[./conductanceSlave]
type = MaterialRealAux
property = gap_conductance
variable = gap_condSlave
boundary = BufferGapBndry
execute_on = 'initial timestep_end'
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 15
slave = 17
disp_x = disp_x
penalty = 1e5
model = frictionless
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 15
slave = 17
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
#quadrature = true
[../]
[./cesium_contact]
type = GapHeatTransfer
variable = conc
master = 15
slave = 17
tangential_tolerance = 1e-6
gap_conductivity_function = d_gap
gap_conductivity_function_variable = temp
appended_property_name = _conc
#quadrature = true
[../]
[]
#[Constraints]
# [./tied]
# type = TiedValueConstraint
# slave = PyCGapBndry # 15
# master = BufferGapBndry # 17
# tangential_tolerance = 1e-6
# variable = conc
# scaling = 1e-15 #1e-16
# [../]
#[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = FunctionDirichletBC
variable = temp
boundary = exterior
function = temp_bc
[../]
# fix concentration on free surface
[./freesurf_conc]
type = DirichletBC
variable = conc
boundary = exterior
value = 0.0
[../]
# apply plenum pressure on clad inner walls and pellet surfaces
[./PlenumPressure]
[./plenumPressure]
boundary = BufferGapVol
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = disp_x
[../]
[../]
[]
[Materials]
[./fission_gas_release] # Sifgr fission gas release mode
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
block = fuel
thermal_conductivity_model = FINK_LUCUTA
initial_porosity = 0.0
temp = temp
burnup = burnup
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (bison kernel)
type = VSwellingUO2
gas_swelling_type = MATPRO
block = fuel
temp = temp
burnup = burnup
[../]
#[./fuel_creep] # thermal and irradiation creep for UO2 (bison kernel)
# type = CreepUO2
# block = fuel
# disp_r = disp_x
# temp = temp
# fission_rate = fission_rate
# youngs_modulus = 2.e11
# poissons_ratio = .345
# thermal_expansion = 10e-6
# grain_radius = 10.0e-6
# oxy_to_metal_ratio = 2.0
#[../]
[./fuel_disp] # thermal and irradiation creep for UO2 (bison kernel)
type = Elastic
block = fuel
disp_r = disp_x
temp = temp
youngs_modulus = 2.2e11
poissons_ratio = .345
thermal_expansion = 10e-6
[../]
[./fuel_den]
type = Density
block = fuel
disp_r = disp_x
[../]
[./fuel_conc]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
[./PyCBuffer]
type = PyCIrradiationStrain
block = buffer
fluence = fluence
pyc_type = buffer
[../]
[./buffer_disp]
type = CreepPyC
block = buffer
temp = temp
youngs_modulus = 2.0e10
poissons_ratio = 0.23
thermal_expansion = 5.65e-6
disp_r = disp_x
flux = fast_neutron_flux
density = 1000.0 #kg/m^3
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_den]
type = Density
density = 1000.0 #kg/m^3
block = buffer
disp_r = disp_x
[../]
[./buffer_conc]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
[./IPyC_densify]
type = PyCIrradiationStrain
block = IPyC
fluence = fluence
pyc_type = dense
[../]
[./IPyC_disp]
type = CreepPyC
block = IPyC
temp = temp
youngs_modulus = 4.74e10
poissons_ratio = 0.23
thermal_expansion = 5.65e-6
disp_r = disp_x
flux = fast_neutron_flux
density = 1900.0 # kg/m^3
[../]
[./IPyC_temp]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./IPyC_den]
type = Density
density = 1900.0 # kg/m^3
block = IPyC
disp_r = disp_x
[../]
[./IPyC_conc]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
#[./SiC_disp]
# type = Elastic
# block = 4
# temp = temp
# youngs_modulus = 3.4e11
# poissons_ratio = 0.13
# thermal_expansion = 4.9e-6
# disp_r = disp_x
#[../]
[./SiC_disp]
type = CreepSiC
block = SiC
disp_r = disp_x
temp = temp
k_function = k_function
fast_neutron_flux = fast_neutron_flux
youngs_modulus = 3.4e11
poissons_ratio = .13
thermal_expansion = 4.9e-6
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_den]
type = Density
density = 3180.0 # kg/m^3
block = SiC
disp_r = disp_x
[../]
[./SiC_conc]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
[./OPyC_densify]
type = PyCIrradiationStrain
block = OPyC
fluence = fluence
pyc_type = dense
[../]
[./OPyC_disp]
type = CreepPyC
block = OPyC
temp = temp
youngs_modulus = 4.74e10
poissons_ratio = 0.23
thermal_expansion = 5.65e-6
disp_r = disp_x
flux = fast_neutron_flux
density = 1900.0 # kg/m^3
[../]
[./OPyC_temp]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./OPyC_den]
type = Density
density = 1900.0 # kg/m^3
block = OPyC
disp_r = disp_x
[../]
[./OPyC_conc]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
#[./Flaw_temp]
# type = HeatConduction
# block = 6
# # Use thermal properties of Xenon
# thermal_conductivity = 0.0237e+6
# density = 5.89e-6
# specific_heat = 481.0e+6
#[../]
#
#[./Flaw_conc]
# type = ArrheniusDiffusionCoef
# block = 6
# # Set diffusion coef an order of magnitude greater than buffer material
# d1 = 1.0e-5
# q1 = 0.0
# d2 = 0.0
# q2 = 0.0
# gas_constant = 8.3143e-3
# temp = temp
#[../]
[]
#[Preconditioning]
# [./SMP]
# type = SMP
# full = true
# [../]
#[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient #AdaptiveTransient
solve_type = 'PJFNK'
#petsc_options = '-snes_mf_operator -snes_ksp_ew -ksp_monitor'
#petsc_options_iname = '-pc_type -pc_hypre_type'
#petsc_options_value = 'hypre boomeramg'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
#petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
#petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
nl_max_its = 15
l_tol = 1e-8
l_max_its = 50
start_time = 0.0
#end_time = 85.3682e6
end_time = 1e6
num_steps = 1000
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 20
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
growth_factor = 1.5
optimal_iterations = 6
linear_iteration_ratio = 100
# iteration_window = 0.4
# predictor_scale = 1.0
[../]
[./Quadrature]
order = THIRD
[../]
[]
[Postprocessors]
[./Cs_release]
type = SideIntegralMassFlux
variable = conc
boundary = exterior
[../]
[./Int_Cs_release]
type = TotalVariableValue
value = Cs_release
[../]
[./Cs_release_fuel]
type = SideIntegralMassFlux
variable = conc
boundary = fuel
[../]
[./Int_Cs_release_fuel]
type = TotalVariableValue
value = Cs_release_fuel
[../]
[./Cs_release_PyCGapBndry]
type = SideIntegralMassFlux
variable = conc
boundary = PyCGapBndry
[../]
[./Int_Cs_release_PyCGapBndry]
type = TotalVariableValue
value = Cs_release_PyCGapBndry
[../]
[./dt]
type = TimestepSize
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = linear
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = linear
[../]
[./volumeTotal]
type = InternalVolume
boundary = exterior
component = 0
execute_on = 'initial timestep_end'
[../]
[./volumeFuel]
type = InternalVolume
boundary = fuel
component = 0
execute_on = 'initial timestep_end'
[../]
[./volumeGas]
type = InternalVolume
boundary = BufferGapVol
# ro = 3.125e-4
# ri = 2.125e-4
# vb = 4/3*pi*(ro^3-ri^3) = 8.76e-11
# buffer density = 1000
# PyC density = 1900
# fill ratio = 10/19
# vb*10/19 = 4.6e-11
# Must remove 4.6e-11 m^3 from the volume
addition = -4.6e-11
component = 0
execute_on = 'initial linear'
[../]
[./volumeBufferShell]
type = InternalVolume
boundary = BufferGapVol
component = 0
execute_on = 'initial timestep_end'
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = BufferGapVol
variable = temp
execute_on = 'initial timestep_end'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
outputs = exodus
execute_on = 'initial linear'
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
outputs = exodus
execute_on = linear
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
outputs = exodus
execute_on = 'initial linear'
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
outputs = exodus
execute_on = 'initial linear'
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
execute_on = 'initial linear'
[../]
[]
[Outputs]
exodus = true
#csv = true
print_linear_residuals = false
[./console]
type = Console
max_rows = 5
outlier_variable_norms = false
[../]
[]
assessment/LWR/validation/HBEP/analysis/BK363/HBEP_BK363.i
[GlobalParams]
density = 10233 #93.2% of TD (TD assumed to be 10980)
initial_porosity = 0.068
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = HBEP.e
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 10.60e-6
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
# reads and interpolates an input file containing rod average linear power vs time
type = PiecewiseLinear
data_file = BK363_linear_power.csv
format = columns
[../]
[./axial_peaking_factors]
# reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = BK363_power_peaking_factors.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
# reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
#Ambient for initial build @ 0.101353 MPa, PWR @ 13.73 MPa and PIE @ 0.101353 MPa
x = '-100 0 137115360'
y = '0.007382 1 0.007382'
[../]
[./flux]
type = PiecewiseLinear
data_file = BK363_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = BK363_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
# reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = BK363_clad_temp_peaking_factors.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
strain = FINITE
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
decomposition_method = EigenSolution
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
decomposition_method = EigenSolution
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1 # fission rate applied to the fuel only
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
a_lower = 0.00324
a_upper = 1.02024
fuel_outer_radius = 4.095e-3
fuel_inner_radius = 1.24e-3
i_enrich = '0.0707 0.9293 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = pellet_type_1
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = '1'
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = '1'
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./hydrostatic_stress]
block = pellet_type_1
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
# computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
block = 1
[../]
[./creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
block = 1
[../]
[./creep_strain_xy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xy
index_i = 0
index_j = 1
execute_on = timestep_end
block = 1
[../]
[./creep_strain_hoop]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_hoop
index_i = 2
index_j = 2
execute_on = timestep_end
block = 1
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = 1
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
system = constraint
penalty = 1e7
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = .955e-6
roughness_fuel = 1.5e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionPresetBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 13.73e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 1.40e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = plenum_temperature
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = pellet_type_1
burnup_function = burnup
temperature = temp
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
initial_fuel_density = 10233
[../]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
temperature = temp
stress_free_temperature = 300
thermal_expansion_coeff = 10e-6
eigenstrain_name = fuel_thermal_eigenstrain
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = pellet_type_1
temperature = temp
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
diameter = .00819
linear_heat_rate_function = q
gap = 1.7e-4 #diameteral gap
relocation_activation1 = 5000 # intial relocation activation power set to 5kW/m
burnup_relocation_stop = .035
eigenstrain_name = fuel_relocation_eigenstrain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='clad_creep_stress'
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = clad_irradiation_growth_eigenstrain
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 300
temperature = temp
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
diff_coeff_option = 2
transient_option = 2
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 50
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 137115360
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_history
max_function_change = 2e6
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block =pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.017 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = pellet_type_1
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = pellet_type_1
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 4784
[../]
[./maxFuelPenetration]
type = NodalMaxValue
boundary = 10 # pellet_centerline
variable = penetration
[../]
[./minFuelPenetration]
type = NodalExtremeValue
boundary = 10 # pellet_centerline
value_type = min
variable = penetration
[../]
[./clad_fuel_gap]
type = NodalMaxValue
variable = penetration
boundary = 10
[../]
[./max_cont_press]
type = NodalMaxValue
variable = contact_pressure
boundary = 10
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/cracking/TSQ002_tm_cracking.i
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = tsq002_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 8.7945e-6 # ((11.6+11.2+11.2+11.1)/4)/2*1.56
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = TSQ002_alhr.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = TSQ002_alhr_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 141798626 141802226' # -100 @ 101326 Pa, 0 to 141798626 @ 15.517 MPa, 141802226 @ 101326 Pa
y = '.00653 1 1 .00653'
[../]
[./flux]
type = PiecewiseLinear
data_file = TSQ002_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = TSQ002_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
type = PiecewiseBilinear
data_file = TSQ002_clad_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
add_variables = false
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = false
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1
fission_rate = fission_rate
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
a_lower = 0.00324
a_upper = 3.81705
fuel_outer_radius = 0.0041275
i_enrich = '0.0348 0.9652 0 0 0 0' # 3.48% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = pellet_type_1
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = constraint
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10
initial_moles = initial_moles
master = 5
gas_released = fission_gas_released
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.517e6
function = pressure_ramp
displacements = 'disp_x disp_y'
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.62e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./elastic_stress]
type = ComputeSmearedCrackingStress
block = pellet_type_1
cracking_stress = 1.68e8
inelastic_models = 'fuel_creep'
softening_models = 'power_law_softening'
shear_retention_factor = 0.1
max_stress_correction = 0
prescribed_crack_directions = 'x y z'
output_properties = crack_damage
outputs = exodus
[../]
[./power_law_softening]
type = PowerLawSoftening
stiffness_reduction = 0.3333
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = pellet_type_1
temperature = temp
fission_rate = fission_rate
grain_radius = 7.5e-6
oxygen_to_metal_ratio = 2.0
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup = burnup
diameter = 0.008255
linear_heat_rate_function = q
gap = 0.0001778 #diameteral gap
relocation_activation1 = 5000
burnup_relocation_stop = 0.024
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_1
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
initial_porosity = 0.05
burnup = burnup
gbs_model = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 20.0
variable = temp
[../]
[./jacobian]
type = ElementJacobianDamper
max_increment = 0.1
min_damping = 0
[../]
[]
[Preconditioning]
[./smp]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1e-4
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 141802226 #141798626+3600
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.81381 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = pellet_type_1
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = pellet_type_1
[../]
[./FCT]
type = NodalVariableValue
nodeid = 30330 #coords (0.0, 2.10133)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./FCT_slice4]
type = NodalVariableValue
nodeid = 37085 #coords (0.0, 1.71896)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = pellet_type_1
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
## Nodal comparison values
[./gap_slice6]
type = NodalVariableValue
variable = penetration
nodeid = 23579 #coords (0.0041275, 2.48172)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 30299 #coords (0.0041275, 2.10133)
[../]
[./gap_slice4]
type = NodalVariableValue
variable = penetration
nodeid = 37054 #coords (0.0041275, 1.71896)
[../]
[./contact_pressure_slice6]
type = NodalVariableValue
variable = contact_pressure
nodeid = 23579 #coords (0.0041275, 2.48172)
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 30299 #coords (0.0041275, 2.10133)
[../]
[./contact_pressure_slice4]
type = NodalVariableValue
variable = contact_pressure
nodeid = 37054 #coords (0.0041275, 1.71896)
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = pellet_type_1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/RE_Ginna_Rodlets/analysis/RE_Ginna_rodlet-4/RE_Ginna_rodlet_4_tm.i
[GlobalParams]
displacements = 'disp_x disp_y'
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = rodlet4_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 10.0e-6 # 2D grain radius 10.0e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = rodlet4_power.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = rodlet4_axial_peaking.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 115273407.3 115273767.3'
y = '0.006533 1 1 0.006533'
[../]
[./flux]
type = PiecewiseLinear
data_file = rodlet4_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_temp_bc]
type = PiecewiseBilinear
data_file = rodlet4_clad_bc.csv
axis = 1
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_eigenstrain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./effective_creep_strain]
type = MaterialRealAux
block = 1
property = effective_creep_strain
variable = effective_creep_strain
execute_on = 'timestep_end'
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
density = 10321.2
num_radial = 81
num_axial = 11
a_lower = 0.00324
a_upper = 0.545022
fuel_inner_radius = 0.001407
fuel_outer_radius = 0.0044515
i_enrich = '0.037 .963 0 0 0 0' # 3.7% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_cap]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.1e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_eigenstrain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.008903
gap = 1.9e-4
linear_heat_rate_function = q
burnup_relocation_stop = 0.0204
relocation_activation1 = 5000
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup_function = burnup
initial_fuel_density = 10321.2
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_density]
type = Density
density = 10321.2 #94% TD = 10980
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = 1
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
[../]
[./clad_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 1
thermal_expansion_coeff = 5.0e-6
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 115273767.3
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = 1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = 1
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.541782 # rod height
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = 3
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = 1
variable = vonmises_stress
[../]
## Nodal comparison values
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 1211 # coords (0.001407, 0.300689)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 1188 #coords (0.0044515, 0.300689)
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 1188 #coords (0.0044515, 0.300689)
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = '3'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_transient_model.i
# This is a test for the transient capability included in the Sifgrs fission gas behavior model. This transient treatment accounts for the rapid gas release from the grain boundaries due to micro-cracking during temperature transients. The effect of micro-cracking is interpreted as a reduction of the gas storing capacity of grain boundaries during transients, effectively leading to an increase of FGR and to a corresponding decrease of fission gas swelling. The fraction of cracked grain surface is described by a temperature-dependent sigmoid function, which reproduces the experimentally observed kinetics of gas release during both heating and cooling transients.
# A power history involving transients is given by input. The calculated FGR rapidly increases during the transients, and the fission gas swelling decreases correspondingly.
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Temp_func]
type = PiecewiseLinear
x = '0. 1000000. 1000500. 1010500. 1011000.'
y = '1000. 1000. 2300. 2300. 1000.'
[../]
[./Fiss_func]
type = PiecewiseLinear
x = '0. 1000000. 1000500. 1010500. 1011000.'
y = '1.e19 1.e19 3.e19 3.e19 1.e19'
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 1000.
[../]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./burnup]
order = FIRST
family = LAGRANGE
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.0626
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
add_variables = false
strain = FINITE
eigenstrain_names = 'fuel_volumetric_strain'
volumetric_locking_correction = false
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./brnp]
type = BurnupAux
variable = burnup
block = 1
fission_rate = fission_rate
density = 10417.
execute_on = 'initial timestep_begin'
[../]
[./porosity]
type = PorosityAuxUO2
block = 1
variable = porosity
execute_on = 'initial linear'
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
block = 1
execute_on = 'linear'
[../]
[./fractcov]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
block = 1
execute_on = 'initial linear'
[../]
[./satcov]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
block = 1
execute_on = 'initial linear'
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[../]
[./x]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0
[../]
[./y]
type = DirichletBC
variable = disp_y
boundary = '1 2'
value = 0
[../]
[./z]
type = DirichletBC
variable = disp_z
boundary = '1 2'
value = 0
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 1
temp = T
burnup = burnup
initial_porosity = 0.05
porosity = porosity
thermal_conductivity_model = NFIR
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 1
temp = T
fission_rate = fission_rate
transient_option = 2
burnup = burnup
diff_coeff_option = 3
[../]
[./density]
type = Density
block = 1
density = 10417.
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
temperature = T
burnup = burnup
initial_fuel_density = 10417.0
eigenstrain_name = fuel_volumetric_strain
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.
end_time = 1011000
num_steps = 5000
dtmax = 100000
dtmin = 1
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100000
optimal_iterations = 10
iteration_window = 4
growth_factor = 1
linear_iteration_ratio = 100
time_t = '0 1000000 1000500 1010500'
time_dt = '100000 100 1000 100'
[../]
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
examples/tensor_mechanics/accident_tolerant_fuel/uo2_fecral.i
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = uo2_fecral_smeared.e
displacements = 'disp_x disp_y'
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
clad_inner_wall = 5
clad_outer_wall = 2
clad_top = 3
clad_bottom = 1
pellet_exteriors = 8
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./mass_gain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-200 0 1e8'
y = '6.537e-3 1 1'
scale_factor = 15.5e6
[../]
[./mass_flux_func]
type = PiecewiseLinear
x = '-200 0 1e8'
y = '3800. 3800. 3800.'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
save_in = saved_y
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = pellet_type_1
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
fuel_pin_geometry = pin_geometry
fuel_volume_ratio = 1.0
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hoop_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hoop_stress
scalar_type = HoopStress
execute_on = timestep_end
[../]
[./total_hoop_strain]
type = RankTwoScalarAux
rank_two_tensor = total_strain
variable = total_hoop_strain
scalar_type = HoopStress
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = RankTwoScalarAux
rank_two_tensor = creep_strain
variable = creep_strain_hoop
scalar_type = HoopStress
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
[../]
[./creep_rate]
type = MaterialRealAux
variable = creep_rate
property = creep_rate
execute_on = timestep_end
block = clad
[../]
[./oxide]
type = MaterialRealAux
variable = oxide_thickness
property = scale_thickness
boundary = 2
[../]
[./mass_gain]
type = MaterialRealAux
variable = mass_gain
property = oxide_mass_gain
boundary = 2
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = constraint
normal_smoothing_distance = 0.1
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = pressure_ramp # Pa
inlet_massflux = mass_flux_func # kg/m^2-sec
rod_diameter = 9.5e-3 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./elastic_stress]
type = ComputeSmearedCrackingStress
block = pellet_type_1
cracking_stress = 1.68e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = pellet_type_1
burnup_function = burnup
temperature = temp
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
linear_heat_rate_function = q
fuel_pin_geometry = 'pin_geometry'
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_thermal_expansion]
type = UO2ThermalExpansionMATPROEigenstrain
block = pellet_type_1
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_1
temperature = temp
burnup_function = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = ThermalFeCrAl
material = C35M
block = clad
temp = temp
[../]
[./clad_elasticity_tensor] # isotropic elasticity tensor for Zry cladding
type = FeCrAlElasticityTensor
temperature = temp
fecral_material_type = C35M
block = clad
[../]
[./clad_stress] # stress update class to govern the return mapping algorithm for creep
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_creep clad_plasticity'
block = clad
[../]
[./clad_creep]
type = FeCrAlCreepUpdate
block = clad
temperature = temp
fecral_material_type = C35M
fast_neutron_flux = fast_neutron_flux
model_irradiation_creep = true
model_thermal_creep = true
max_inelastic_increment = 1e-4
[../]
[./thermal_expansion]
type = FeCrAlThermalExpansionEigenstrain
block = clad
temperature = temp
fecral_material_type = C35M
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = FeCrAlVolumetricSwellingEigenstrain
block = clad
temperature = temp
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = clad_volumetric_strain
[../]
[./clad_plasticity]
type = FeCrAlPlasticityUpdate
block = clad
hardening_constant = 2.5e9
temperature = temp
yield_stress = 500.0
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 7250.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./failure_criterion]
type = FeCrAlCladdingFailure
boundary = '2 5'
hoop_stress = hoop_stress
failure_criterion = UTS
temperature = temp
[../]
[./oxidation]
type = FeCrAlOxidation
reactor_type = PWR
boundary = 2
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
max_value = 3200.0
min_value = 293.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 1e8
dtmax = 1e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2.0e2
force_step_every_function_point = true
timestep_limiting_function = power_history
max_function_change = 5e5
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2.0
timestep_limiting_postprocessor = material_timestep
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./_dt]
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./alhr_input]
type = FunctionValuePostprocessor
function = power_history
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet_type_1
variable = burnup
[../]
[./oxide_thickness]
type = ElementExtremeValue
block = clad
variable = oxide_thickness
[../]
[./mass_gain]
type = ElementExtremeValue
block = clad
variable = mass_gain
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
[../]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = clad
[../]
[]
[Outputs]
perf_graph = true
interval = 1
exodus = true
csv = true
print_linear_residuals = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[]
examples/experimental_design/3D_asbuiltCCM/simulation/Alloy33/final_2.i
[GlobalParams]
density = 10431.0
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
displacements = 'disp_x disp_y disp_z'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
[./file_mesh]
type = FileMeshGenerator
file = geAlloy33_2.e
[../]
[./scale] # Convert CUBIT geometry (built in 100x inches) into meters.
type = TransformGenerator
transform = SCALE
vector_value = '2.54e-4 2.54e-4 2.54e-4'
input = file_mesh
[../]
dim = 3
patch_size = 1000 # For contact algorithm
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./T]
initial_condition = 300
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 8.64E+04 3.46E+05 4.32E+05 777600 864000 2332800 3801600 5097600 5184000 8985600 9072000 10627200 12182400 13564800 13651200 18057600 18144000 19699200 21254400 22636800 22723200 25920000 26006400 27388800 28771200'
y = '0 29100.13691 2.91E+04 0 0 28765.65338 27821.9286 27415.44121 27415.44121 0 0 27494.58176 26612.85703 26149.9983 26149.9983 0 0 33820.63602 32566.74267 31819.53594 31819.53594 0 0 33065.95692 31851.27402 31230.11945'
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = '1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./initial_power_ramp]
type = PiecewiseLinear
x = '0 8.64e4'
y = '0 1'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-400 0'
y = '0 1'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = T
block = 3
fission_rate = fission_rate
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = T
[../]
[./heat_source_clad]
type = NeutronHeatSource
variable = T
block = 2
fission_rate = gamma_heating_clad
[../]
[./heat_source_cap]
type = NeutronHeatSource
variable = T
block = 1
fission_rate = gamma_heating_cap
[../]
[]
[BCs]
[./convective_capsule_surface]
type = ConvectiveFluxBC
boundary = 1
variable = T
rate = 45800.0 # convection coefficient (h)
initial = 325 # initial coolant temp
final = 325 # coolant temperature following initial power ramp
duration = 0.0 # duration of initial power ramp
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = 1
factor = 2.4e6
function = pressure_ramp
[../]
[../]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = '102 105 108 100 101 103 104 106 107 20 21'
value = 0.0
[../]
[./no_y_all]
type = DirichletBC
variable = disp_y
boundary = '100 101 103 104 106 107 20 21'
value = 0.0
[../]
[./no_z_all]
type = DirichletBC
variable = disp_z
boundary = '100 103 106'
value = 0.0
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 13
initial_pressure = 1e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
output = capsule_pressure
displacements = 'disp_x disp_y disp_z'
[../]
[./plenumPressure1]
boundary = 12
initial_pressure = 1e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles1
temperature = ave_temp_interior1
volume = gas_volume1
material_input = fis_gas_released1
output = plenum_pressure1
displacements = 'disp_x disp_y disp_z'
[../]
[../]
[]
[SolidMechanics]
[./solid]
temp = T
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 50
a_lower = 5.17269685344284e-05
a_upper = 0.0949369541451446
fuel_inner_radius = 0
fuel_outer_radius = 0.00410464
[../]
[]
[AuxKernels]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./stress_xy]
type = MaterialTensorAux
tensor = stress
variable = stress_xy
index = 3
execute_on = timestep_end
[../]
[./stress_yz]
type = MaterialTensorAux
tensor = stress
variable = stress_yz
index = 4
execute_on = timestep_end
[../]
[./stress_xz]
type = MaterialTensorAux
tensor = stress
variable = stress_xz
index = 5
execute_on = timestep_end
[../]
[./conductance_fuel]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 5
[../]
[./conductance_gap]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 3
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = T
execute_on = linear
[../]
[./gamma_heating_clad]
type = FissionRateAux
variable = gamma_heating_clad
block = 2
value = 2e18
function = initial_power_ramp
[../]
[./gamma_heating_cap]
type = FissionRateAux
variable = gamma_heating_cap
block = 1
value = 2e18
function = initial_power_ramp
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
factor = 9.7e17 # n/m^2-sec from ATR user guide for other flux traps
[../]
[]
[AuxVariables]
[./fission_rate]
block = 3
[../]
[./grain_radius]
block = 3
initial_condition = 10e-6
[../]
[./gamma_heating_clad]
block = 2
[../]
[./gamma_heating_cap]
block = 1
[../]
[./burnup]
block = 3
[../]
[./fast_neutron_flux]
order = FIRST
family = LAGRANGE
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
# [./coolant_htc]
# order = CONSTANT
# family = MONOMIAL
# [../]
[]
[ThermalContact]
[./thermal_contact_fuel]
type = GapHeatTransferLWR
variable = T
master = 4 # clad inner
slave = 5 # fuel outer
jump_distance_model=KENNARD
plenum_pressure=plenum_pressure1 #required for KENNARD
emissivity_fuel=0.85
emissivity_clad=0.85
roughness_fuel=8e-7
roughness_clad=8e-7
roughness_coef=3.2
contact_pressure = contact_pressure
initial_gas_fractions= '1 0 0 0 0 0 0 0 0 0'
quadrature = true
[../]
[./thermal_contact_capsule]
type = GapHeatTransferLWR
variable = T
master = 2 # capsule inner
slave = 3 # clad outer
jump_distance_model=KENNARD
plenum_pressure=capsule_pressure #required for KENNARD
emissivity_fuel=0.85
emissivity_clad=0.85
roughness_fuel=4e-7
roughness_clad=8e-7
roughness_coef=3.2
contact_pressure = contact_pressure
quadrature = true
[../]
[./fuel_clad_bottom_contact]
type = GapHeatTransferLWR
variable = T
master = 31 # capsule inner
slave = 30 # clad outer
jump_distance_model=KENNARD
plenum_pressure=capsule_pressure #required for KENNARD
emissivity_fuel=0.85
emissivity_clad=0.85
roughness_fuel=8e-7
roughness_clad=8e-7
roughness_coef=3.2
contact_pressure = contact_pressure
initial_gas_fractions= '1 0 0 0 0 0 0 0 0 0'
quadrature = true
[../]
[]
[Contact]
[./fuel_clad_mechanical]
master = 4
slave = 5
formulation = penalty
penalty = 1e7
tangential_tolerance = 1e-2
normal_smoothing_distance = 0.1
[../]
[./cap_clad_mechanical]
master = 2
slave = 3
formulation = penalty
penalty = 1e7
tangential_tolerance = 1e-2
normal_smoothing_distance = 0.1
[../]
[./fuel_clad_bottom_mechanical]
master = 31
slave = 30
formulation = penalty
penalty = 1e7
tangential_tolerance = 1e-2
normal_smoothing_distance = 0.1
[../]
[]
[Materials]
# --- CLADDING ----
[./clad]
type = ThermalAlloy33
block = 2
temp = T
[../]
[./clad_density]
type = Density
block = 2
density = 7900
[../]
[./clad_disp]
type = MechAlloy33
block = 2
temp = T
youngs_modulus = 195
poissons_ratio = 0.31
[../]
# --- FUEL ----
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
temp = T
burnup = burnup
thermal_conductivity_model = FINK_LUCUTA
initial_porosity = 0.05
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_disp]
type = Elastic
block = 3
temp = T
youngs_modulus = 2.e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = MATPRO
block = 3
temp = T
burnup = burnup
[../]
[./fission_gas_release] # Forsberg-Massih fission gas release mode
type = Sifgrs
block = 3
temp = T
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius = grain_radius
gbs_model = true
[../]
# --- CAPSULE ----
[./capsule]
type = Thermal316
block = 1
temp = T
[../]
[./capsule_density]
type = Density
block = 1
density = 7980
[../]
[./cap_disp]
type = MechSS316
block = 1
youngs_modulus = 1.93e11
poissons_ratio = 0.31
temp = T
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 10
variable = T
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-ksp_gmres_modifiedgramschmidt'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_composite_pcs -sub_0_pc_hypre_type -sub_0_pc_hypre_boomeramg_max_iter -sub_0_pc_hypre_boomeramg_grid_sweeps_all -sub_1_sub_pc_type -pc_composite_type -ksp_type -mat_mffd_type -pc_hypre_boomeramg_strong_threshold'
petsc_options_value = '201 composite hypre,asm boomeramg 2 2 lu multiplicative fgmres ds 0.7'
# petsc_options = '-snes_linesearch_monitor'
# petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter -pc_hypre_boomeramg_strong_threshold'
# petsc_options_value = '201 hypre boomeramg 4 0.7'
scheme = bdf2
l_max_its = 100
l_tol = 1e-3
nl_max_its = 15
nl_rel_tol = 1e-3
nl_abs_tol = 1e-8
start_time = -400
end_time = 864000
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 400
optimal_iterations = 8
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 13
variable = T
[../]
[./ave_temp_interior1]
type = SideAverageValue
boundary = 12
variable = T
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 15
outputs = exodus
[../]
[./pellet_volume]
type = InternalVolume
boundary = 14
outputs = exodus
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 15
variable = T
[../]
[./_dt]
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = T
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.0
[../]
[./average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_history
[../]
[./peak_clad_temp]
type = NodalMaxValue
variable = T
block = 2
[../]
[./PostProcessorBurnup]
type = ElementAverageValue
variable = burnup
block = 3
[../]
[./fis_gas_produced1]
type = ElementIntegralFisGasGeneratedSifgrs
block = 3
[../]
[./fis_gas_released1]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 13 #capsule_inner
[../]
[./gas_volume1] # gas volume
type = InternalVolume
boundary = 12 #rodlet_inner
[../]
[]
[Outputs]
perf_graph = true
exodus = true
sync_times = '0 8.64E+04 3.46E+05 4.32E+05 777600 864000 2332800 3801600 5097600 5184000 8985600 9072000 10627200 12182400 13564800 13651200 18057600 18144000 19699200 21254400 22636800 22723200 25920000 26006400 27388800 28771200'
[]
assessment/LWR/validation/Super_Ramp/analysis/PK11/PK11.i
[GlobalParams]
density = 10360.0
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = false
initial_porosity = 0.054
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temperature'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 10
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 28
pellet_height = 0.011143
pellet_outer_radius = 4.555e-3
pellet_mesh_density = customize
nx_p = 11
ny_p = 84
clad_mesh_density = customize
nx_c = 4
ny_c = 84
clad_gap_width = 100.0e-6
clad_thickness = 0.725e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 15.5e-3
clad_top_gap_height = 32.0e-3
ny_cu = 3
ny_cl = 3
elem_type = QUAD8
[]
[Variables]
[./temperature]
initial_condition = 293.15
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = alhr_history.csv
format = columns
[../]
[./axial_power_factors]
type = PiecewiseBilinear
data_file = axial_lhr_factors.csv
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_power_factors'
[../]
[./clad_out_temp]
type = PiecewiseLinear
data_file = temp_outer_clad_history.csv
format = columns
[../]
[./axial_temp_factors]
type = PiecewiseBilinear
data_file = axial_temp_factors.csv
axis = 1
[../]
[./clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = pressure_coolant.csv
format = columns
[../]
[./fast_flux]
type = PiecewiseLinear
data_file = fast_neutron_flux.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = 3
initial_condition = 4.68e-6
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
block = 3
initial_condition = 0.054
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain
fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy
stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz
creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx
strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temperature
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temperature
execute_on = linear
[../]
[./porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
a_lower = 0.0165
a_upper = 0.328504
number_pellets = 28
execute_on = initial
[../]
[./oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./layered_average_contact_pressure]
type = SpatialUserObjectAux
block = 3
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = 3
execute_on = nonlinear
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 80
num_axial = 20
i_enrich = '0.032 0.968 0.0 0.0 0.0 0.0'
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1.0e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
formulation = KINEMATIC
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temperature
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = 5
outer_surfaces = 10
temp = temperature
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temperature
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.25e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temperature
burnup_function = burnup
initial_fuel_density = 10360
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = 3
temperature = temperature
burnup_function = burnup
grain_radius = 4.68e-6
[../]
[./fuel_stress]
type = ComputeSmearedCrackingStress
block = 3
cracking_stress = 1.68e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
linear_heat_rate_function = power_history
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = true
max_relocation_recovery_fraction = 0.5
relocation_scaling_factor = 1
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
output_properties = 'relocation_strain recovered_relocation_strain'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
diff_coeff_option = 3
transient_option = 2
res_param_option = 0
temp = temperature
fission_rate = fission_rate
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6550.0
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temperature
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
fuel_pin_geometry = pin_geometry
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-4
nl_max_its = 30
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
start_time = 0.0
n_startup_steps = 1
end_time = 75907908.0
dtmax = 1.0e6
dtmin = 1.0
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 15
iteration_window = 3
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./avg_gap_conductance]
type = SideAverageValue
boundary = 10
variable = gap_cond
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temperature
nodeid = 3110 #Mesh dependent!
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = strain_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = stress_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 3141 # Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./total_rod_integral_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = 3
[../]
[./total_rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.376004 # rod height
[../]
[./vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = TENSOR
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage central_fuel_temp midplane_contact_pressure'
execute_on = 'FINAL'
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temperature
fuel_pin_geometry = pin_geometry
number_pellets = 28
execute_on = 'initial linear'
[../]
[./layered_average_contact_pressure]
type = LayeredSideAverage
variable = contact_pressure
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[../]
[]
assessment/LWR/validation/IFA_535/analysis/rod_810/SM/IFA_535_rod_810_sm.i
[GlobalParams]
density = 10398.06 #Assuming 10980 as the theoretical density
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
group_variables = 'disp_x disp_y'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
file = ifa535_rod810.e
patch_size = 20 # 50
patch_update_strategy = auto
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./fast_neutron_flux]
block = 'clad'
[../]
[./fast_neutron_fluence]
block = 'clad'
[../]
[./grain_radius]
block = 'pellet_type_1'
initial_condition = 9.36e-6 # 2D grain radius 6um
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_profile]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = ifa535_810_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = ifa535_810_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
x = '-100 0 217720944 217722744 217724544 217742544 224388540 224388576'
y = ' 0.0303 1 1 0.0303 0.0303 1 1 0.0303'
[../]
[./flux] # reads and interpolates input data defining fast neutron flux
type = PiecewiseLinear
data_file = ifa535_810_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = ifa535_810_clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction # reads and interpolates an input file containing rod average linear power vs time
functions = 'power_profile axial_peaking_factors'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system (in all cases here, the axisymmetric (RZ) version is specified)
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 'pellet_type_1' # fission rate applied to the fuel (block 2) only
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
order = CONSTANT
family = MONOMIAL
block = 'pellet_type_1'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.48724
a_lower = 0.01924
fuel_inner_radius = 0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1
RPF = RPF
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 'clad'
axial_power_profile = axial_peaking_factors
function = flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 'clad'
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 'pellet_type_1'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress] # include hydrostatic stress for possible use in ForMas
block = 'pellet_type_1'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx] # computes stress components for output
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = clad
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = clad
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = clad
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = clad
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
roughness_clad = 0.81e-6
roughness_fuel = 1.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 226498428
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 3.2e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 0.1e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get inital fill gas mass
temperature = plenum_temperature # coupling to post processor to get gas temperature approximation
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
refab_time = 217722744
refab_pressure = 3.2e6
refab_temperature = 449.05
refab_volume = 9.6e-6
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./swelling]
type = VSwellingUO2
block = 'pellet_type_1'
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./density_clad]
type = Density
block = 'clad'
density = 6551.0
[../]
[./density_fuel]
type = Density
block = 'pellet_type_1'
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
block = 'pellet_type_1'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (bison kernel)
type = Elastic #CreepUO2
block = 'pellet_type_1'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
# burnup_function = burnup
# grain_radius = 3.0e-6
# grain_radius = 5.85e-6 # maximum grain size measured during PIE
# oxy_to_metal_ratio = 2.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = 'pellet_type_1'
burnup_function = burnup
diameter = 0.01054 #Fuel pellet diameter in m
q = q
gap = 2.44e-4 #diametral gap in m
burnup_relocation_stop = 0.029
relocation_activation1 = 5000 #initial relocation activation power in W/m
tensor_mechanics_compatibility = true
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 'clad'
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr4 (bison kernel)
type = MechZry
block = 'clad'
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
model_irradiation_growth = true
model_thermal_expansion = false
formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = 'pellet_type_1'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
# controls for linear iterations
l_max_its = 60
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
# time control
start_time = -100
end_time = 224388576
dtmax = 5e5
dtmin = 1
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
force_step_every_function_point = true
timestep_limiting_function = power_profile
optimal_iterations = 25
iteration_window = 6
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 'pellet_type_1'
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = 'pellet_type_1'
[../]
[./clad_elong]
type = NodalVariableValue
variable = disp_y
nodeid = 2359 #Global node ID 9739
[../]
[./input_rod_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_1
temperature = temp
mechanics_system = SOLID
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
sync_times = 5556726
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
examples/spent_fuel/full_life_cycle_coarse/discrete.i
# This model is a linear element, 10 discrete fuel pellet stack (pellet_type_1) with a fine mesh.
# Modifying the base model to simulate the complete fuel life cycle from
# irradiation through dry storage
# Irradiation Time 3 years (6% burnup, ~ 60 MWd/kgU)
# Spent Fuel Pool 3 years
# Vacuum Drying 24 hours
# Dry Cask Storage (DCSS) 5 years
#
irrad_ramp = 8.64e4
irrad_end = 9.46944e7
cool_start = 9.47808e7
cool_end = 4.101408e8
dry_start = 4.101409e8
# dry_end = 4.102272e8 # 24 hour drying
dry_end = 4.101696e8 # 8 hour drying
# store_end = 5.679072e8 # 5 yrs storage
store_end = 4.732416e8 # 2 yrs storage
#
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
initial_porosity = 0.05
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
# Import mesh file
file = coarse10_rz.e
patch_update_strategy = auto
patch_size = 20 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
# Define dependent variables and initial conditions
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 298.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./max_fission_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear
x = '0 ${irrad_ramp} ${irrad_end} ${cool_start}'
y = '0 25e3 25e3 0'
[../]
[./axial_peaking_factors]
type = PiecewiseLinear
axis = y
x = '0.00324 0.0151 0.10998 0.12184'
y = '1.0 1.0 1.0 1.0'
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
# ---- irrad ---- --- pool --- - storage -
x = '0 ${irrad_ramp} ${irrad_end} ${cool_start} ${cool_end} ${dry_start} ${dry_end} ${store_end}'
y = '1e5 15.5e6 15.5e6 2e5 2e5 1e5 1e5 1e5'
[../]
[./coolant_temperature]
type = PiecewiseLinear
# ---- irrad ---- --- pool --- - storage -
x = '0 ${irrad_ramp} ${irrad_end} ${cool_start} ${cool_end} ${dry_start} ${dry_end} ${store_end}'
y = '300 587 587 308 308 308 308 308'
[../]
[./coolant_htc]
type = PiecewiseLinear
# From CoolantChannel model, HTC falls from 37000 to 22000 as the oxide grows.
# Coolant flow is maintained until after CZP, then 1 more day. Flow is then reduced until the
# correct htc for natural convection is achieved (~400 W/m2-K).
# Drying is handled by DryCaskHeatFlux.
x = '0 ${irrad_ramp} 7e7 ${irrad_end} ${cool_start} ${cool_end} ${dry_start} ${dry_end} ${store_end}'
y = '37e3 37e3 25e3 22e3 400 400 0 0 0'
[../]
[]
[SolidMechanics]
# Specify that we need solid mechanics (divergence of stress)
[./solid]
save_in_disp_r = saved_x
save_in_disp_z = saved_y
temp = temp
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate
decay_heat_function = decay_heat_function
max_fission_rate = max_fission_rate
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 0.00324 # mesh dependent!
a_upper = 0.12184 # mesh dependent!
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 0.987775 # for use with dished pellets (ratio of actual volume to cylinder volume)
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./oxide_thickness]
type = MaterialRealAux
boundary = 2
variable = oxide_thickness
property = oxide_scale_thickness
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./max_fission_rate]
type = MaxFissionRateAux
variable = max_fission_rate
block = pellet_type_1
fission_rate = fission_rate
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = nonlinear
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
quantity = hoop
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
block = clad
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 1.0
function = coolant_pressure
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[./convective_clad_surface] # apply convective boundary to clad outer surface
type = ConvectiveFluxFunction
boundary = '1 2 3'
variable = temp
coefficient = 1
coefficient_function = 'coolant_htc'
T_infinity = 'coolant_temperature'
[../]
[./cask_cooling]
type = DryCaskHeatFlux
variable = temp
boundary = '1 2 3'
bwr_or_pwr = 'pwr'
fill_gas = 'helium'
ambient_temperature = 298
cask_effective_htc = 3.1 # W/K from each assembly to ambient
start_time = ${cool_end}
drying_duration = 86400
[../]
[]
[Controls]
[./DCSS]
type = TimePeriod
disable_objects = 'BCs/convective_clad_surface'
start_time = ${cool_end}
end_time = 1e9
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = '2'
clad_inner_radius = 0.00418
clad_outer_radius = 0.00474
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
outputs = all
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = pellet_type_1
temp = temp
burnup_function = burnup
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (BISON kernel)
type = Elastic
block = pellet_type_1
temp = temp
dep_matl_props = deltav_v0_bd
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = 0.0082
q = q
gap = 160e-6 # diametral gap
burnup_relocation_stop = .03
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr (BISON kernel)
type = MechZry
block = clad
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
stress_free_temperature = 298.0
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200
min_value = 0
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
# PETSC options:
# petsc_options
# petsc_options_iname
# petsc_options_value
#
# controls for linear iterations
# l_max_its
# l_tol
#
# controls for nonlinear iterations
# nl_max_its
# nl_rel_tol
# nl_abs_tol
#
# time control
# start_time
# dt
# optimal_iterations
# iteration_window
# linear_iteration_ratio
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 1e-3
nl_max_its = 35
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -200
n_startup_steps = 1
end_time = ${store_end}
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 20
iteration_window = 6
time_t = '0 ${irrad_ramp} ${irrad_end} ${cool_start} ${cool_end} ${dry_start} ${dry_end} ${store_end}'
time_dt ='1e3 1e4 1e3 100 100 100 100 100'
growth_factor = 1.5
cutback_factor = .6
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial timestep_end'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
execute_on = linear
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
execute_on = linear
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
execute_on = linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
execute_on = linear
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial nonlinear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on = timestep_end
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on = timestep_end
[../]
[./_dt] # time step
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./decay_heat_function]
type = DecayHeatFunction
time_at_shutdown = ${cool_start}
table_or_sum = sum
[../]
[./peak_clad_temp]
type = NodalMaxValue
variable = temp
block = 'clad'
execute_on = 'timestep_end'
[../]
[./max_clad_hoop_stress]
type = ElementExtremeValue
variable = hoop_stress
block = 'clad'
value_type = 'max'
execute_on = 'timestep_end'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[../]
[./peak_oxide_thickness]
type = ElementExtremeValue
variable = oxide_thickness
block = 'clad'
value_type = 'max'
execute_on = 'timestep_end'
[../]
[]
[VectorPostprocessors]
[./clad_surf_props]
type = LineValueSampler
variable = 'oxide_thickness temp hoop_stress'
start_point = '0.00467 0.0001 0'
end_point = '0.00467 0.1279 0'
num_points = 100
sort_by = y
outputs = 'outfile_1'
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./outfile_1]
type = CSV
execute_on = 'FINAL'
[../]
[./chkfile]
type = CSV
show = 'peak_clad_temp peak_oxide_thickness max_clad_hoop_stress'
execute_on = final
[../]
[]
assessment/MOX/JOYO/MK-II/analysis/MK-II_master_new_bubble_gb_lim.i
[GlobalParams]
density = 10920.4
initial_porosity = 0.07
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.55
pellet_outer_radius = 0.002315
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000085
clad_thickness = 0.00035
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 0.549
elem_type = QUAD8
nx_c = 4
ny_c = 100
nx_p = 10
ny_p = 100
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
[../]
[]
[AuxVariables]
[./pore]
[../]
[./fission_rate]
block = pellet
[../]
[./burnup]
block = pellet
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
[../]
[]
[Functions]
[./power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = '0 70000 12970000'
y = '0 48827.8 48827.8'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 70000 12970000'
y = '0 2.6e+19 2.6e+19'
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
x = '0 0.065 0.134 0.202 0.271 0.339 0.406 0.519'
y = '0 12970000'
z = '0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672 0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672'
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./average_power_history]
type = PiecewiseLinear
x = '0 70000 12970000'
y = '0 40000 40000'
[../]
[./clad_surface_temp]
type = PiecewiseBilinear
x = '0 0.065 0.134 0.202 0.271 0.339 0.406 0.519'
y = '0 12970000'
z = '295 295 295 295 295 295 295 295 416.36 422.49 428.63 434.27 439.36 444.71 450.07 455.48'
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.07
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.00463
execute_on = timestep_begin
porosity = pore
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
execute_on = timestep_end
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
execute_on = timestep_end
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
execute_on = timestep_end
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
execute_on = timestep_end
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
execute_on = timestep_end
[../]
[./nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vcn_bdr_2
execute_on = timestep_end
[../]
[./atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atm_bbl_bdr
execute_on = timestep_end
[../]
[./vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vcn_bbl_bdr
execute_on = timestep_end
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
execute_on = timestep_end
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
execute_on = timestep_end
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = timestep_end
[../]
[./volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = vol_bbl_bdr
execute_on = timestep_end
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = fast_neutron_flux_function
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = '12'
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp_clad_out]
type = FunctionPresetBC
variable = temp
boundary = '2'
function = clad_surface_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 101325
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 300000
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10920.4
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = Thermal316
block = clad
temp = temp
[../]
[./clad_density]
type = Density
block = clad
density = 8000
[../]
[./clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
diff_coeff_option = 4
fission_rate = fission_rate
grain_radius_const = 8.01e-6
bubble_gb_limit = 1.0e+11
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
picard_abs_tol = 1e-3
picard_rel_tol = 1e-3
picard_max_its = 1
l_max_its = 70
l_tol = 8e-3
nl_max_its = 70
nl_rel_tol = 1e-3
nl_abs_tol = 1e-3
start_time = 0
n_startup_steps = 1
end_time = 12970000
dtmax = 5e5
dtmin = 0.25
[./TimeStepper]
type = IterationAdaptiveDT
dt = 5000
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.55 # rod height
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./ave_pore]
type = ElementAverageValue
variable = pore
[../]
[./max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[../]
[./min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[../]
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = MK-II_sub_new_bubble_gb_lim.i
[../]
[]
[Transfers]
[./temp_to_sub]
type = MultiAppProjectionTransfer
direction = to_multiapp
multi_app = sub
source_variable = temp
variable = temp
[../]
[./pore_from_sub]
type = MultiAppInterpolationTransfer
direction = from_multiapp
multi_app = sub
source_variable = pore
variable = pore
[../]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temp disp_x disp_y'
[]
assessment/LWR/validation/Tribulation/analysis/BN1X3/BN1X3.i
[GlobalParams]
density = 10393 # 94.655 %TD assuming TD 10980
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
initial_porosity = 0.05345
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
type = SmearedPelletMesh
dim = 2
pellet_quantity = 1
pellet_height = 1.0019
pellet_outer_radius = 0.00402
pellet_mesh_density = customize
nx_p = 11
ny_p = 243
clad_bot_gap_height = 0.001
clad_gap_width = 100.0e-6
clad_thickness = 0.00063
clad_mesh_density = customize
nx_c = 4
ny_c = 249
top_bot_clad_height = 0.00224
clad_top_gap_height = 0.0883
elem_type = QUAD8
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 8.58e-6 # 2D grain radius 11e-6/2*1.56
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseBilinear
data_file = BN1X3_power.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 34462368 34548768 34635168 35176032 35262432 35348832 90228384 90314784'
y = '0.0073804 1 1 0.0073804 1.01974 1.01974 0.0073804 1 1 0.0073804'
[../]
[./flux]
type = PiecewiseBilinear
data_file = BN1X3_fast_flux.csv
axis = 1
[../]
[./clad_temp_bc]
type = PiecewiseBilinear
data_file = BN1X3_clad_temp.csv
axis = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./timestep_function]
type = PiecewiseLinear
data_file = BN1X3_time_function.csv
format = columns
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
i_enrich = '0.0825 0.9175 0 0 0 0' # 8.25% enriched U-235
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 0.3e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 13.729e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.96133e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
q = power_history
burnup_relocation_stop = 0.0205
relocation_activation1 = 5000
fuel_pin_geometry = pin_geometry
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 60
l_tol = 8e-3
nl_max_its = 30
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 90314784
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 20
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = timestep_function
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[./fuel_max_temp]
type = ElementExtremeValue
block = 3
variable = temp
[../]
[./fuel_average_temp]
type = ElementAverageValue
block = 3
variable = temp
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage fuel_average_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
test/tests/ifba_he_production/ifba_examp_template.i
#
# 2-D RZ One Pellet Test - Coarse mesh example of IFBA layer
#
# This is an input template for a fast running example using the IFBA
# postprocessor. All of the possible ways to specify the IFBA layer are run
# using this template in a regression test format.
#
# The expected ouputs for each test depends on the model equation being used
# to calculate the He produced. For the burnup based equation, the He moles
# released at the end of the calculation is 1.4897e-6. A hand calculation is
# reproduced in the Excel spreadsheet IFBA_He_Calc included in the test
# directory. The burnup equation result computed for the same inputs is
# 1.4902e-6.
#
# Using the FRAPCON equation calculates a rate of He production, so comparing
# the first couple of time steps of the simulation to the hand calculation is
# more straightforward. Comparing the BISON results to the hand calculation is
#
# Time(s) He Prod (BISON) He Prod (Excel)
# 1000 1.01465e-10 1.01465e-10
# 3000 7.10250e-10 7.18769e-10
#
[GlobalParams]
density = 10431.0 #95% TD (TD = 10980)
disp_x = disp_x
disp_y = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
ny_p = 1
nx_p = 1
nx_c = 1
ny_cu = 1
ny_c = 1
ny_cl = 1
clad_thickness = 5.6e-4
pellet_outer_radius = 0.0041
pellet_height = 0.01
pellet_quantity = 1
clad_bot_gap_height = 1e-3
top_bot_clad_height = 2.24e-3
clad_gap_width = 8e-5
plenum_fuel_ratio = 0.150
elem_type = QUAD8
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 298
[../]
[]
[AuxVariables]
[./fission_rate]
block = '3'
[../]
[./burnup]
block = '3'
[../]
[./grain_radius]
block = '3'
initial_condition = 5e-6 # must be the same as the initial value in Sifgr
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[]
[Functions]
[./power_history]
# CoolantChannel requires this to have units while axial_peaking_factors must be normalized.
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 20e3 # 20 kW/m peak power.
[../]
[./coolant_pressure_ramp]
type = PiecewiseLinear
x = '0 10000'
y = '0 1'
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3'
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable= fission_rate
block = '3'
#convert W/m from power profile to fission/m**3-s
#calculated as 1/(energy_per_fission*area)
#using energy_per_fission = 3.2e-11, consistent with 200 MeV/fission
value = 5.3548e+14
function = power_history
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = '3'
fission_rate = fission_rate
molecular_weight = 0.270
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3'
variable = grain_radius
temp = temp
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
penalty = 1e+14 #1e7
model = frictionless
tangential_tolerance = 5e-4
normal_smoothing_distance = 0.1
normalize_penalty = true
[../]
[]
[ThermalContact]
[./pellet_clad_thermal]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
gas_released = 'fis_gas_released he_prod'
initial_moles = initial_moles
jump_distance_model = KENNARD
interaction_layer = 1
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_fractions = '1.0 0 0 0 0 0 0 0 0 0'
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0'
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
emissivity_fuel = 0.8
emissivity_clad = 0.8
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
# pin entire clad bottom in y
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
# pin fuel bottom in y
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
# pin fuel axis in x and z
[./no_x_fuel]
type = DirichletBC
variable = disp_x
boundary = 1005
value = 0.0
[../]
# apply temperature BC on clad surface
[./Clad_Temp]
type = DirichletBC
variable = temp
boundary = '2'
value = 580.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '2'
factor = 15.5e6
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 0.50e6
refab_pressure = 0.50e6
startup_time = 0.0
material_input = 'fis_gas_released he_prod'
output_initial_moles = initial_moles
R = 8.3143
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = '3'
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_solid_mechanics_elastic]
type = Elastic
block = '3'
disp_r = disp_x
disp_z = disp_y
temp = temp
youngs_modulus = 2.e11
poissons_ratio = 0.345
thermal_expansion = 10.0e-6
dep_matl_props = deltav_v0_bd
[../]
[./fission_gas_release]
type = Sifgrs
block = '3'
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
diff_coeff_option = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics_elastic]
type = Elastic
block = '1'
disp_r = disp_x
disp_z = disp_y
temp = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '3'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 25
nl_max_its = 40
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8
dtmax = 1.0e6
dtmin = 1.0
end_time = 2.5e6 # Short run time of 1 month to qualify as a regression test
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e3
optimal_iterations = 30
iteration_window = 4
time_t = '0 1e4 1e8'
time_dt = '1e4 1e5 1e6'
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
verbose = true
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial linear'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./interior_temp]
type = SideAverageValue
boundary = 9 # cladding interior and pellet exterior
variable = temp
execute_on = 'initial linear'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = '3'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = '3'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
[../]
[./power_history]
type = FunctionValuePostprocessor
function = power_history
[../]
[./dt]
type = TimestepSize
[../]
[./residual]
type = Residual
[../]
[./nl_its]
type = NumNonlinearIterations
[../]
[./lin_its]
type = NumLinearIterations
[../]
[./average_burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[../]
[./burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[../]
[./average_fissionrate]
type = ElementAverageValue
block = '3'
variable = fission_rate
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.01 #BWR change: length of fuel stack in meters (5*pellet height)
[../]
[./he_prod]
type = IFBAHeProduction
[../]
[]
[Outputs]
interval = 1
exodus = false
[./console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup burnup he_prod interior_temp plenum_pressure'
[../]
[./outfile]
type = CSV
delimiter = ' '
[../]
[]
assessment/LWR/validation/FUMEXII_Regate/analysis/SM/Regate_smeared_sm.i
[GlobalParams]
density = 10360
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = regate_mesh_smeared.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.675e-6
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_radial]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = regate_linear_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = regate_axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 98406792 98407164 98407291 98407445 99578736 99580326'
y = '0.00654 1 1 0.00654 0.00654 0.839 0.839 0.00654'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = regate_cladding_temperature.csv
scale_factor = 1
format = columns
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
data_file = regate_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
factor = 1
function = fast_neutron_flux_function
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
index = 2
block = 1
execute_on = timestep_end
[../]
[./creep_strain_radial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 0
block = 1
execute_on = timestep_end
[../]
[./elastic_strain_hoop]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_hoop
index = 2
block = 1
execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00324
a_upper = 0.4444
fuel_inner_radius = 0
fuel_outer_radius = 0.004096
RPF = RPF
i_enrich = '0.04487 0.955513 0 0 0 0' # 4.487% Enriched U-235
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_wall_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.5e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
initial_porosity = 0.05246
block = 3
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.008192
gap = 1.68e-5
q = q
relocation_activation1 = 5000
burnup_relocation_stop = 0.015
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = clad
temp = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
constitutive_model = combined
model_irradiation_growth = true
model_thermal_expansion = true
fast_neutron_fluence = fast_neutron_fluence
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./combined]
type = CombinedCreepPlasticity
block = clad
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = clad
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./plasticity]
type = IsotropicPlasticity
block = clad
temp = temp
yield_stress = 500e6
hardening_constant = 2.5e9
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1e-4
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 99580326
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
sync_times = '98407291'
[./console]
type = Console
max_rows = 30
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Riso_GEm_STR013/analysis/Riso_GEm_STR013.i
[GlobalParams]
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = riso_gem.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 9.5e-6
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = riso_gem_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = riso_gem_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 91454400 91454410 91458000 91458010 91716840 91716850'
y = '0.0138 1 1 0.0138 0.0138 0.994 0.994 0.0138'
[../]
[./flux]
type = PiecewiseLinear
data_file = riso_gem_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = riso_gem_clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
strain = FINITE
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain fuel_volumetric_swelling_eigenstrain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_growth_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = pellet_type_1
burnup_function = burnup
fraction = 0.95238095
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
density = 10511.0
num_radial = 80
num_axial = 11
a_upper = 0.28433
a_lower = 0.01339
fuel_inner_radius = 0
fuel_outer_radius = 0.005445
fuel_volume_ratio = 0.9993
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
axial_power_profile = axial_peaking_factors
function = flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 1.6e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 91454410
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.24e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.7e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 91454410
refab_pressure = 4.9e5
refab_temperature = 273.0
refab_volume = 7.2e-6
[../]
[../]
[]
[Materials]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = pellet_type_1
burnup_function = burnup
initial_fuel_density = 10511.0
temperature = temp
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
[../]
[./density_clad]
type = Density
block = clad
density = 6551.0
[../]
[./density_fuel]
type = Density
block = pellet_type_1
density = 10511.0
[../]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./fuel_elasticity]
type = UO2ElasticityTensor
block = pellet_type_1
temperature = temp
density = 10511.0
[../]
[./fuel_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
stress_free_temperature = 297.0
temperature = temp
thermal_expansion_coeff = 10e-6
eigenstrain_name = fuel_thermal_eigenstrain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
diameter = 0.01089
gap = 2.286e-4
burnup_function = burnup
burnup_relocation_stop = 0.029
relocation_activation1 = 5000
linear_heat_rate_function = q
eigenstrain_name = fuel_relocation_eigenstrain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
temperature = temp
[../]
[./clad_multiple_stress]
type = ComputeMultipleInelasticStress
block = clad
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = clad
stress_free_temperature = 297.0
temperature = temp
thermal_expansion_coeff = 5.0e-6
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.0427
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 91715050
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
force_step_every_function_point = true
timestep_limiting_function = power_profile
optimal_iterations = 15
iteration_window = 4
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='pellet_type_1'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = pellet_type_1
[../]
[./input_rod_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = pellet_type_1
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
[./chkfile]
type = CSV
show = 'ave_fission_rate average_centerline_fuel_temperature fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Super_Ramp/analysis/PK21/PK21.i
[GlobalParams]
density = 10340.0
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = false
initial_porosity = 0.057
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temperature'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 10
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 28
pellet_height = 0.011143
pellet_outer_radius = 4.57e-3
pellet_mesh_density = customize
nx_p = 11
ny_p = 84
clad_mesh_density = customize
nx_c = 4
ny_c = 84
clad_gap_width = 70.0e-6
clad_thickness = 0.735e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 15.5e-3
clad_top_gap_height = 32.6e-3
ny_cu = 3
ny_cl = 3
elem_type = QUAD8
[]
[Variables]
[./temperature]
initial_condition = 293.15
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = alhr_history.csv
format = columns
[../]
[./axial_power_factors]
type = PiecewiseBilinear
data_file = axial_lhr_factors.csv
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_power_factors'
[../]
[./clad_out_temp]
type = PiecewiseLinear
data_file = temp_outer_clad_history.csv
format = columns
[../]
[./axial_temp_factors]
type = PiecewiseBilinear
data_file = axial_temp_factors.csv
axis = 1
[../]
[./clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = pressure_coolant.csv
format = columns
[../]
[./fast_flux]
type = PiecewiseLinear
data_file = fast_neutron_flux.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = 3
initial_condition = 4.29e-6
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
block = 3
initial_condition = 0.057
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain
fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy
stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz
creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx
strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temperature
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temperature
execute_on = linear
[../]
[./porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
a_lower = 0.0165
a_upper = 0.328504
number_pellets = 28
execute_on = initial
[../]
[./oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./layered_average_contact_pressure]
type = SpatialUserObjectAux
block = 3
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = 3
execute_on = nonlinear
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 80
num_axial = 20
i_enrich = '0.0321 0.9679 0.0 0.0 0.0 0.0'
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1.0e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
formulation = KINEMATIC
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temperature
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = 5
outer_surfaces = 10
temp = temperature
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temperature
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.25e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temperature
burnup_function = burnup
initial_fuel_density = 10340
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = 3
temperature = temperature
burnup_function = burnup
grain_radius = 4.29e-6
[../]
[./fuel_stress]
type = ComputeSmearedCrackingStress
block = 3
cracking_stress = 3.0e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
linear_heat_rate_function = power_history
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = true
max_relocation_recovery_fraction = 0.5
relocation_scaling_factor = 1
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
output_properties = 'relocation_strain recovered_relocation_strain'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
diff_coeff_option = 3
transient_option = 2
res_param_option = 0
temp = temperature
fission_rate = fission_rate
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6550.0
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temperature
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
fuel_pin_geometry = pin_geometry
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-4
nl_max_its = 30
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
start_time = 0.0
n_startup_steps = 1
end_time = 101352708.0
dtmax = 1.0e6
dtmin = 1.0
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 15
iteration_window = 3
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./avg_gap_conductance]
type = SideAverageValue
boundary = 10
variable = gap_cond
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temperature
nodeid = 3110 #Mesh dependent!
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = strain_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = stress_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 3141 # Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./total_rod_integral_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = 3
[../]
[./total_rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.376004 # rod height
[../]
[./vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = TENSOR
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage central_fuel_temp midplane_contact_pressure'
execute_on = 'FINAL'
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temperature
fuel_pin_geometry = pin_geometry
number_pellets = 28
execute_on = 'initial linear'
[../]
[./layered_average_contact_pressure]
type = LayeredSideAverage
variable = contact_pressure
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[../]
[]
assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.9/IFA_650_9_part1.i
[GlobalParams]
density = 10430.0
initial_porosity = 0.048
order = SECOND
family = LAGRANGE
displacements = disp_x
temperature = temp
energy_per_fission = 3.2e-11 #J/fission
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = Layered1DMesh
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
slices_per_block = 30
pellet_outer_radius = 4.565e-3
clad_gap_width = 0.085e-3
clad_thickness = 0.725e-3
fuel_height = 0.480
plenum_height = 0.262416
pellet_mesh_density = customize
clad_mesh_density = customize
nx_p = 11
nx_c = 5
[]
[Variables]
[./disp_x]
[../]
[./temp]
initial_condition = 295.0
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = power_history.csv
scale_factor = 1.0
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = axial_peaking_factors.csv
axis = 1
scale_factor = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
data_file = coolant_pressure.csv
scale_factor = 1
format = columns
[../]
[./average_htc]
type = PiecewiseBilinear
data_file = average_coolant_htc.csv
axis = 1
scale_factor = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./forced_times]
type = PiecewiseLinear
data_file = timestep_limiting.csv
scale_factor = 1
format = columns
[../]
[./heat_sink_temperature]
type = PiecewiseBilinear
data_file = heater_temp.csv
scale_factor = 1
axis = 1
[../]
[./clad_outer_temperature]
type = PiecewiseBilinear
data_file = clad_surface_temp.csv
scale_factor = 1
axis = 1
[../]
[./heat_transfer_mode]
type = PiecewiseConstant
x = '-200 200412461 200413048'
y = '9 9 8 '
direction = 'right'
[../]
[./clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 1.0
fuel_pin_geometry = fuel_pin_geometry
[../]
[./fuel_axial_pressure]
type = ParsedFunction
value = plenum_pressure
vars = plenum_pressure
vals = plenum_pressure
[../]
[]
[AuxVariables]
[./disp_y]
[../]
[./disp_z]
[../]
[./saved_x]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = fuel
initial_condition = 5.0e-6
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./bursted]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./layered_maximum_clad_radius]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = fuel
burnup_function = burnup
axial_relocation_object = axial_relocation
[../]
[]
[Modules]
[./TensorMechanics]
[./Layered1DMaster]
[./fuel]
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = fuel_pin_geometry
out_of_plane_pressure = fuel_axial_pressure
strain = finite
block = fuel
save_in = saved_x
eigenstrain_names = 'fuel_thermal_strain fuel_swelling_strain fuel_relocation_strain axial_relocation_eigenstrain'
decomposition_method = EigenSolution
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
use_displaced_mesh = true
[../]
[./clad]
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = fuel_pin_geometry
strain = finite
out_of_plane_pressure = clad_axial_pressure
block = clad
save_in = saved_x
eigenstrain_names = 'clad_thermal_strain clad_irradiation_strain'
use_displaced_mesh = true
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress strain_zz creep_strain_zz'
decomposition_method = EigenSolution
[../]
[../]
[../]
[]
[Burnup]
[./burnup]
block = fuel
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
fuel_pin_geometry = fuel_pin_geometry
fuel_volume_ratio = 1.0
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.035 0.965 0 0 0 0'
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
block = clad
variable = fast_neutron_flux
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hoop_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hoop_stress
scalar_type = HoopStress
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
block = clad
variable = effective_creep_strain
property = effective_creep_strain
execute_on = 'timestep_end'
[../]
[./fract_bphase]
type = MaterialRealAux
block = clad
variable = fract_beta_phase
property = fract_beta_phase
execute_on = 'initial linear'
[../]
[./oxide_thickness]
type = MaterialRealAux
boundary = 2
variable = oxide_thickness
property = oxide_scale_thickness
execute_on = 'initial linear'
[../]
[./hasbursted]
type = MaterialRealAux
boundary = 2
variable = bursted
property = failed
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
boundary = 10
property = gap_conductance
variable = gap_conductance
execute_on = 'initial linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = 2
execute_on = 'initial linear'
[../]
[./creep_rate]
type = MaterialRealAux
block = clad
variable = creep_rate
property = creep_rate
execute_on = timestep_end
[../]
[./gas_th_cond]
type = MaterialRealAux
variable = gap_thermal_conductivity
property = gap_conductivity
boundary = 10
execute_on = 'initial linear'
[../]
[]
[AxialRelocation]
linear_heat_rate_function = power_history
axial_direction = y
fuel_blocks = fuel
clad_blocks = clad
contact_pressure_variable = contact_pressure
out_of_plane_strain_variable = strain_yy
penetration_variable = penetration
num_layers = 30
clad_inner_volume_addition = 0
burnup_variable = burnup
temperature_variable = temp
axial_relocation_output_options = MASS_FRACTION
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = 2
variable = temp
heat_transfer_mode = heat_transfer_mode
heat_transfer_coefficient = average_htc # Calculated from an initial simulation of the base irradiation using the inlet_pressure, inlet_massflux, and inlet_temperature commented out below.
inlet_temperature = heat_sink_temperature # K
effective_emissivity = 0.75
# inlet_temperature = 580
# inlet_pressure = 15.3e6 # Pa
# inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.01075 # m
rod_pitch = 1.26e-2 # m
compute_enthalpy = false
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
output_properties = 'coolant_channel_htype coolant_channel_hmode'
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e7
system = Constraint
formulation = kinematic
model = frictionless
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_gas_fractions = '1. 0. 0. 0. 0. 0. 0. 0. 0. 0.'
initial_moles = initial_moles
gas_released = fis_gas_released
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
roughness_coef = 3.2
refab_gas_fractions = '0.05 0.95 0. 0. 0. 0. 0. 0. 0. 0.'
refab_time = 199159200
refab_type = 0
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = 2
function = pressure_ramp
factor = 1.0
[../]
[../]
[./clad_outer_temp]
type = FunctionDirichletBC
boundary = 2
variable = temp
function = clad_outer_temperature
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = 'clad_volume pellet_volume'
material_input = fis_gas_released
output = plenum_pressure
refab_time = 199159200
refab_pressure = 4.0e6
refab_temperature = 295.0
refab_volume = 1.9e-05
[../]
[../]
[]
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[Controls]
[./period0]
type = TimePeriod
disable_objects = 'BCs/clad_outer_temp'
start_time = -200.0
end_time = 199159200.0
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'bursted > 0'
execute_on = timestep_end
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
axial_relocation_object = axial_relocation
gap_thermal_conductivity = layered_average_gap_conductivity
[../]
[./relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup_function = burnup
linear_heat_rate_function = q
fuel_pin_geometry = fuel_pin_geometry
burnup_relocation_stop = 0.024
relocation_activation1 = 5000.0
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 295.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = fuel
burnup_function = burnup
initial_fuel_density = 10430.0
eigenstrain_name = fuel_swelling_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
burnup_function = burnup
grain_radius = grain_radius
transient_option = 1
diff_coeff_option = 3
gbs_model = true
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = fuel
axial_relocation_object = axial_relocation
crumbling_scale_factor = 0.0001
[../]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'zrycreep'
block = clad
[../]
[./zrycreep]
type = ZryCreepLOCAErbacherLimbackHoppeUpdate
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
block = clad
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_strain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_phase]
type = ZrPhase
block = clad
temperature = temp
numerical_method = 2
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temp
clad_inner_radius = 4.65e-03
clad_outer_radius = 5.375e-03
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = cathcart
use_coolant_channel = true
[../]
[./clad_failure_criterion]
type = ZryCladdingFailure
boundary = 2
failure_criterion = plastic_instability
hoop_stress = hoop_stress
effective_strain_rate_creep = creep_rate
temperature = temp
fraction_beta_phase = fract_beta_phase
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
execute_on = 'initial linear'
fuel_pin_geometry = fuel_pin_geometry
[../]
[./pellet_volume_2]
type = LayeredInternalVolumePostprocessor
boundary = 8
component = 0
fuel_pin_geometry = fuel_pin_geometry
out_of_plane_strain = strain_yy
execute_on = 'initial linear'
[../]
[./avg_clad_temp]
type = LayeredSideAverageValuePostprocessor
boundary = 7
variable = temp
fuel_pin_geometry = fuel_pin_geometry
execute_on = 'initial linear'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = fuel_pin_geometry
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = fuel_pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = fuel_pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = fuel_pin_geometry
[../]
[./fisson_gas_release]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
[../]
[./average_coolant_htc]
type = LayeredSideAverageValuePostprocessor
boundary = 2
variable = coolant_htc
execute_on = 'initial linear'
fuel_pin_geometry = fuel_pin_geometry
[../]
[./average_burnup]
type = ElementAverageValue
block = fuel
variable = burnup
[../]
[./temp_clad_max]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./betaph_fract_max]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
block = clad
execute_on = 'initial timestep_end'
[../]
[./bursted]
type = ElementExtremeValue
value_type = max
variable = bursted
block = clad
execute_on = 'initial timestep_end'
[../]
[./timestep_material]
type = MaterialTimeStepPostprocessor
block = clad
execute_on = 'initial timestep_end'
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200.0
min_value = 0.0
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -mat_superlu_dist_fact'
petsc_options_value = 'lu superlu_dist SamePattern'
line_search = 'none'
l_max_its = 50
l_tol = 1e-4
nl_max_its = 30
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
num_steps = 50000
dtmax = 5e5
dtmin = 1e-5
start_time = -200.0
end_time = 199159200 # End base irradiation
# end_time = 200412431 # Begin Blowdown
# end_time = 200413048 # End
[./TimeStepper]
type = IterationAdaptiveDT
dt = 200
timestep_limiting_postprocessor = timestep_material
optimal_iterations = 20
iteration_window = 4
linear_iteration_ratio = 100
timestep_limiting_function = forced_times
force_step_every_function_point = true
max_function_change = 2000
time_t = '199159200 200312431 200411431 200412431 200412461 200413048'
time_dt = '1.0e04 1.0e04 10.0 5.0 0.5 5.0'
[../]
[]
[VectorPostprocessors]
[./clad_radial_disp]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_1'
[../]
[./clad_out_temp]
type = NodalValueSampler
variable = temp
boundary = 2
sort_by = y
outputs = 'outfile_temp_1'
[../]
[./mass_fraction]
type = LineValueSampler
start_point = '0 0.01124 0'
end_point = '0 0.47524 0'
num_points = 30
sort_by = y
variable = layered_mass_fraction
outputs = 'outfile_mass_1'
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
csv = true
color = false
perf_graph = true
[./exodus]
type = Exodus
file_base = IFA_650_9_part1_out
execute_on = 'initial timestep_end'
[../]
[./console]
type = Console
output_linear = true
max_rows = 25
[../]
[./checkpoint]
type = Checkpoint
interval = 1
num_files = 1
[../]
[./outfile_1]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_temp_1]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_mass_1]
type = CSV
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/FUMEXII_Regate/analysis/Regate_smeared.i
[GlobalParams]
density = 10360
temperature = temp
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = regate_mesh_smeared.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.675e-6
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = regate_linear_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = regate_axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 98406792 98407164 98407291 98407445 99578736 99580326'
y = '0.00654 1 1 0.00654 0.00654 0.839 0.839 0.00654'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = regate_cladding_temperature.csv
scale_factor = 1
format = columns
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
data_file = regate_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
decomposition_method = EigenSolution
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress creep_strain_zz
creep_strain_xx elastic_strain_zz'
decomposition_method = EigenSolution
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
factor = 1
function = fast_neutron_flux_function
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00324
a_upper = 0.4444
fuel_inner_radius = 0
fuel_outer_radius = 0.004096
RPF = RPF
i_enrich = '0.04487 0.955513 0 0 0 0' # 4.487% Enriched U-235
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionPresetBC
variable = temp
boundary = '1 2 3'
function = clad_wall_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.5e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup_function = burnup
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
initial_fuel_density = 10360
[../]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
initial_porosity = 0.05246
block = 3
temp = temp
burnup_function = burnup
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
stress_free_temperature = 293.0
thermal_expansion_coeff = 10e-6
eigenstrain_name = fuel_thermal_eigenstrain
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.008192
gap = 1.68e-5
linear_heat_rate_function = q
relocation_activation1 = 5000
burnup_relocation_stop = 0.015
eigenstrain_name = fuel_relocation_eigenstrain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='clad_creep_stress plasticity'
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[../]
[./plasticity]
type = IsotropicPlasticityStressUpdate
block = 1
yield_stress = 500e6
hardening_constant = 2.5e9
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = clad_irradiation_growth_eigenstrain
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293.0
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1e-4
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 99580326
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
sync_times = '98407291'
[./console]
type = Console
max_rows = 30
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Riso_AN8/analysis/Riso_AN8.i
[GlobalParams]
density = 10273.9 #TD assumed: 10960
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = mesh_AN8.e
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
scaling = 1e2
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = alhr_history.csv
format = columns
[../]
[./axial_power_factors]
type = PiecewiseBilinear
data_file = axial_lhr_factors.csv
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_power_factors'
[../]
[./clad_out_temp]
type = PiecewiseLinear
data_file = temp_outer_clad_history.csv
format = columns
[../]
[./axial_temp_factors]
type = PiecewiseBilinear
data_file = axial_temp_factors.csv
axis = 1
[../]
[./clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = pressure_coolant.csv
format = columns
[../]
[./fast_flux]
type = PiecewiseLinear
data_file = fast_neutron_flux.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 4.68e-06
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
initial_condition = 0.063
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./porosity]
type = PorosityAuxUO2
block = pellet_type_1
variable = porosity
execute_on = linear
[../]
[./pelletid]
type = PelletIdAux
block = pellet_type_1
variable = pellet_id
a_lower = 0.0153
a_upper = 0.52935
number_pellets = 75
execute_on = timestep_begin
[../]
[./oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
add_variables = false
block = pellet_type_1
strain = FINITE
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz vonmises_stress strain_zz'
eigenstrain_names = 'fuel_volumetric_swelling_eigenstrain fuel_thermal_eigenstrain fuel_relocation_eigenstrain'
save_in = 'saved_x saved_y'
decomposition_method = EigenSolution
[../]
[./clad]
add_variables = false
block = clad
strain = FINITE
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz vonmises_stress strain_zz creep_strain_xx creep_strain_zz'
eigenstrain_names = 'clad_irradiation_growth_eigenstrain clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
decomposition_method = EigenSolution
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_]
type = NeutronHeatSource
variable = temp
block = pellet_type_1
fission_rate = fission_rate
save_in = saved_t
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
save_in = saved_y
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 50
bias = 0.95
num_axial = 75
a_lower = 0.0153
a_upper = 0.52935
fuel_inner_radius = 0.0
fuel_outer_radius = 4.5265e-03
i_enrich = ' 0.0295 0.9705 0.0 0.0 0.0 0.0'
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1.0e+10
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
#TODO: Add option in StandardLWRFuelRodOutputs to compute plenum temperature this way.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./no_y_fuel_all]
type = DirichletBC
variable = disp_y
boundary = 4
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.31e+06
startup_time = 0
R = 8.314
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
save_in = 'saved_x saved_y'
[../]
[../]
[]
[Materials]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
temperature = temp
thermal_expansion_coeff = 10.0e-06
eigenstrain_name = 'fuel_thermal_eigenstrain'
stress_free_temperature = 293.15
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
burnup_function = burnup
temperature = temp
gas_swelling_model_type = SIFGRS
block = pellet_type_1
initial_fuel_density = 10273.9
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
diameter = 9.053e-03
linear_heat_rate_function = q
gap = 208.0e-06
burnup_relocation_stop = 0.031
relocation_activation1 = 5000
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./fission_gas_release_and_swelling]
type = Sifgrs
block = pellet_type_1
diff_coeff_option = 3
transient_option = 1
res_param_option = 0
temp = temp
fission_rate = fission_rate
burnup_function = burnup
initial_porosity = 0.063
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[../]
[./density_fuel]
type = Density
block = pellet_type_1
[../]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.063
[../]
[./clad_elasticity]
type = ComputeIsotropicElasticityTensor
block = clad
youngs_modulus = 1.0e+11
poissons_ratio = 0.3
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 'clad'
tangent_operator = elastic
inelastic_models = clad_creep
[../]
[./clad_creep]
type = ZryCreepLimbackHoppeUpdate
block = 'clad'
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
temperature = temp
[../]
[./clad_thermal_eigenstrain]
type = ZryThermalExpansionMATPROEigenstrain
block = 'clad'
stress_free_temperature = 293.15
temperature = temp
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_growth_eigenstrain]
type = ZryIrradiationGrowthEigenstrain
block = 'clad'
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temp
clad_inner_radius = 4.6305e-03
clad_outer_radius = 5.405e-03
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
[../]
[./density_clad]
type = Density
block = clad
density = 6550.0
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 200
l_tol = 1.0e-02
nl_max_its = 30
nl_rel_tol = 1e-04
nl_abs_tol = 1e-06
start_time = -100.0
n_startup_steps = 1
end_time = 103599691.0
dtmax = 1.0e+06
dtmin = 0.01
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e+02
growth_factor = 2.0
timestep_limiting_function = power_history
max_function_change = 3000.0
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[UserObjects]
[./pbz]
type = PelletBrittleZone
block = pellet_type_1
pellet_id = pellet_id
temp = temp
pellet_radius = 4.5265e-03
a_lower = 0.0153
a_upper = 0.52935
number_pellets = 75
execute_on = linear
[../]
[]
[Postprocessors]
[./alhr_input]
type = FunctionValuePostprocessor
function = power_history
[../]
[./avg_gap_conductance]
type = SideAverageValue
boundary = 10
variable = gap_cond
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet_type_1
variable = burnup
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temp
nodeid = 54 # !! Mesh dependent
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
[../]
[./midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = 1138 # !! Mesh dependent
variable = strain_zz
[../]
[./midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = 1138 # !! Mesh dependent
variable = stress_zz
[../]
[./midplane_contact_pressure]
type = ElementalVariableValue
elementid = 163 # !! Mesh dependent
variable = contact_pressure
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_1
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
csv = true
exodus = true
perf_graph = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage max_fuel_temp central_fuel_temp'
execute_on = 'FINAL'
[../]
[]
test/tests/standard_lwr_outputs_action/mini_complete_rod.i
[GlobalParams]
density = 10431.0
initial_porosity = 0.05
energy_per_fission = 3.2e-11 # J/fission
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = SmearedPelletMesh
dim = 2
pellet_quantity = 2
pellet_mesh_density = coarse
clad_mesh_density = coarse
plenum_fuel_ratio = 0.177033
[]
[Variables]
[./temperature]
initial_condition = 580.0
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0.000000 10800'
y = '0.000000 16404.200000' #LHR5
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
x = '0.00324 3.77797'
y = '0.000000 10800'
z = '1.0 1.0 1.0 1.0'
axis = 1
scale_factor = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
scale_factor = 1
x = '0 10800.0'
y = '0.00651 1.0'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = SMALL
incremental = true
[../]
[./clad]
block = clad
add_variables = true
strain = SMALL
incremental = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temperature
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
block = pellet
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 6
num_axial = 2
a_lower = 0.00351
a_upper = 0.02723
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 1.0
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature ## generated by the standard outputs action
volume = plenum_volume ## generated by the standard outputs action
material_input = fission_gas_released ## generated by the standard outputs action
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temperature
inlet_temperature = 580
inlet_pressure = 15.5e6
inlet_massflux = 3800
rod_diameter = 0.948e-2
rod_pitch = 1.26e-2
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeFiniteStrainElasticStress
block = clad
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temperature
burnup_function = burnup
gbs_model = false
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = 0
end_time = 200
dtmax = 200
dtmin = 200
[]
[StandardLWRFuelRodOutputs]
mechanics_system = tensor
rod_component = both
fuel_pellet_blocks = pellet
[]
[Outputs]
exodus = false
color = false
csv = true
perf_graph = true
[]
assessment/LWR/validation/RIA_NSRR_FK/analysis/FK1/FK01.i
# This file was created using BIF with the following inputs:
# FK01.var - md5sum: 123016ae8f3283a45bae816a366f93b1
# ../pulse_rev1.tpl - md5sum: 8d6b8b4bce1dd830dea2d8522009e514
[GlobalParams]
density = 10020.6066633
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
displacements = 'disp_x disp_y'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
displacements = 'disp_x disp_y'
patch_size = 5
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
top_bot_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.04298
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[AuxVariables]
[./BuTC]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gap]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./fission_rate]
initial_condition = 0
[../]
[./grain_radius]
block = 3
initial_condition = 5.96e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./integral_burnup]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_radial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.085711070864
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[../]
[./flux]
type = ConstantFunction
value = 0.0
[../]
[./axial_peaking_factors]
type = ConstantFunction
value = 1
[../]
[./coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[../]
[./linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[../]
[./axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[../]
[./burnup_thermal_conductivity]
type = ConstantFunction
value = 0.0473684210526 # should be burnup / 950
[../]
[./radial_power_profile]
type = PiecewiseBilinear
data_file = RadialPowerProfile.csv
axis = 0
[../]
[./radial_burnup_profile]
type = PiecewiseBilinear
data_file = RadialBurnupProfile.csv
axis = 0
[../]
[./initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
i_enrich = '0.039 0.961 0.0 0.0 0.0 0.0'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
save_in = saved_t
block = 3
[../]
[]
[AuxKernels]
[./BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[../]
[./gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[../]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = timestep_begin
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_begin
[../]
[./radial_stress]
type = MaterialTensorAux
tensor = stress
variable = radial_stress
index = 0
execute_on = timestep_begin
[../]
[./axial_stress]
type = MaterialTensorAux
tensor = stress
variable = axial_stress
index = 1
execute_on = timestep_begin
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
index = 2
execute_on = timestep_begin
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./axial_strain]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = stress
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./elastic_radial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = radial_strain
index = 0
execute_on = timestep_begin
[../]
[./elastic_axial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_strain
index = 1
execute_on = timestep_begin
[../]
[./elastic_hoop_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_strain
index = 2
execute_on = timestep_begin
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_begin
[../]
[./creep_strain_radial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 0
execute_on = timestep_begin
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
index = 1
execute_on = timestep_begin
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 2
execute_on = timestep_begin
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
friction_coefficient = 2.5
normal_smoothing_distance = 0.1
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
roughness_coef = 3.2
roughness_fuel = 1.5e-6
roughness_clad = 1.75e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
initial_gas_fractions = '1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0'
gas_released = fission_gas_released
tangential_tolerance = 1.0e-6
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '10 5'
initial_pressure = 0.3e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
block = 3
temp = temp
burnup = BuTC
initial_porosity = 0.085711070864
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
temp = temp
burnup = burnup
total_densification = 0.006
gas_swelling_type = SIFGRS
[../]
[./fuel_mech]
type = MechUO2
block = 3
temp = temp
burnup = BuTC
fission_rate = fission_rate
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 5.56e-06
oxy_to_metal_ratio = 2.0
model_thermal_expansion = true
model_swelling = true
name_swelling_model = fuel_swelling
model_relocation = false
name_relocation_model = fuel_relocation
model_creep = false
model_hotpressing = false
has_hotpressing_plasticity = false # used to turn on plasticity models
matpro_youngs_modulus = false
matpro_poissons_ratio = false
dep_matl_props = deltav_v0_bd
# input_yield_stress = 100e6 # used to turn on plasticity models
# input_hardening_modulus = 2e9 # used to turn on plasticity models
# transition_temperature = 1273 # used to change the hot presing temperature
# isotropic_cracking = true # used for isotropic softening model
# rod_ave_lin_pow = linear_heat_rate_profile # used for isotropic softening model
# cracking_stress = 120e6 # used for smeared cracking model
# cracking_release = exponential # used for smeared cracking model
# cracking_residual_stress = 0.1 # used for smeared cracking model
# cracking_beta = 0.01 # used for smeared cracking model
# compute_method = ShearRetention # used for smeared cracking model
# max_cracks = 3 # used for smeared cracking model
# active_crack_planes = '0 1 2' # used for smeared cracking model
stress_free_temperature = 293
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = buavg
q = linear_heat_generation_rate
diameter = 0.01054
gap = 1e-05
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
creeprate_scalef = 1
cold_work_factor = 0.01
material_type = 0
model_irradiation_growth = false
model_thermal_expansion = true
model_elastic_modulus = true
constitutive_model = plasticity
compute_JIntegral = true
formulation = NonlinearRZ
[../]
[./combined]
type = CombinedCreepPlasticity
block = clad
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = clad
temp = temp
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
material_type = 0
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
[../]
[./plasticity]
type = ZryPlasticity
block = 1
temp = temp
initial_fast_fluence = 8.40e25
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
use_matpro = true
output_properties = yield_stress
outputs = all
scale_factor = 1.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = 2
[../]
[./clad_density]
type = Density
block = 1
density = 6551
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[UserObjects]
[./avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[../]
[./integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[./contactslip]
type = ContactSlipDamper
master = 5
slave = 8
min_damping_factor = 0.05
[../]
[]
[Postprocessors]
[./average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[]
[VectorPostprocessors]
[./rad_temp]
type = LineValueSampler
end_point = '0.00527 0.0503 0.0'
start_point = '0.0 0.0503 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
output_linear = true
[../]
[./dummy]
type = CSV
enable = false
[../]
[]
examples/temperature_tables/1.5D_cases/1pt5D.i
[GlobalParams]
density = 10257.0
initial_porosity = 0.05
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
displacements = disp_x
temperature = temp
volumetric_locking_correction = false
slice_heights = '0.03866 0.08211 0.08211 0.08211 0.08212 0.08211 0.08211 0.08211 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.079212 0.079212 0.079212 0.079212 0.079212 0.16152' #VERA_DEFINED <<VERA MODIFIED>>
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x temp scalar_strain_yy_fuel0 scalar_strain_yy_fuel1 scalar_strain_yy_fuel2 scalar_strain_yy_fuel3 scalar_strain_yy_fuel4 scalar_strain_yy_fuel5 scalar_strain_yy_fuel6 scalar_strain_yy_fuel7 scalar_strain_yy_fuel8 scalar_strain_yy_fuel9 scalar_strain_yy_fuel10 scalar_strain_yy_fuel11 scalar_strain_yy_fuel12 scalar_strain_yy_fuel13 scalar_strain_yy_fuel14 scalar_strain_yy_fuel15 scalar_strain_yy_fuel16 scalar_strain_yy_fuel17 scalar_strain_yy_fuel18 scalar_strain_yy_fuel19 scalar_strain_yy_fuel20 scalar_strain_yy_fuel21 scalar_strain_yy_fuel22 scalar_strain_yy_fuel23 scalar_strain_yy_fuel24 scalar_strain_yy_fuel25 scalar_strain_yy_fuel26 scalar_strain_yy_fuel27 scalar_strain_yy_fuel28 scalar_strain_yy_fuel29 scalar_strain_yy_fuel30 scalar_strain_yy_fuel31 scalar_strain_yy_fuel32 scalar_strain_yy_fuel33 scalar_strain_yy_fuel34 scalar_strain_yy_fuel35 scalar_strain_yy_fuel36 scalar_strain_yy_fuel37 scalar_strain_yy_fuel38 scalar_strain_yy_fuel39 scalar_strain_yy_fuel40 scalar_strain_yy_fuel41 scalar_strain_yy_fuel42 scalar_strain_yy_fuel43 scalar_strain_yy_fuel44 scalar_strain_yy_fuel45 scalar_strain_yy_fuel46 scalar_strain_yy_fuel47 scalar_strain_yy_fuel48 scalar_strain_yy_clad0 scalar_strain_yy_clad1 scalar_strain_yy_clad2 scalar_strain_yy_clad3 scalar_strain_yy_clad4 scalar_strain_yy_clad5 scalar_strain_yy_clad6 scalar_strain_yy_clad7 scalar_strain_yy_clad8 scalar_strain_yy_clad9 scalar_strain_yy_clad10 scalar_strain_yy_clad11 scalar_strain_yy_clad12 scalar_strain_yy_clad13 scalar_strain_yy_clad14 scalar_strain_yy_clad15 scalar_strain_yy_clad16 scalar_strain_yy_clad17 scalar_strain_yy_clad18 scalar_strain_yy_clad19 scalar_strain_yy_clad20 scalar_strain_yy_clad21 scalar_strain_yy_clad22 scalar_strain_yy_clad23 scalar_strain_yy_clad24 scalar_strain_yy_clad25 scalar_strain_yy_clad26 scalar_strain_yy_clad27 scalar_strain_yy_clad28 scalar_strain_yy_clad29 scalar_strain_yy_clad30 scalar_strain_yy_clad31 scalar_strain_yy_clad32 scalar_strain_yy_clad33 scalar_strain_yy_clad34 scalar_strain_yy_clad35 scalar_strain_yy_clad36 scalar_strain_yy_clad37 scalar_strain_yy_clad38 scalar_strain_yy_clad39 scalar_strain_yy_clad40 scalar_strain_yy_clad41 scalar_strain_yy_clad42 scalar_strain_yy_clad43 scalar_strain_yy_clad44 scalar_strain_yy_clad45 scalar_strain_yy_clad46 scalar_strain_yy_clad47 scalar_strain_yy_clad48 scalar_strain_yy_clad49'
reference_residual_variables = 'saved_x saved_t saved_scalar_strain_yy_fuel0 saved_scalar_strain_yy_fuel1 saved_scalar_strain_yy_fuel2 saved_scalar_strain_yy_fuel3 saved_scalar_strain_yy_fuel4 saved_scalar_strain_yy_fuel5 saved_scalar_strain_yy_fuel6 saved_scalar_strain_yy_fuel7 saved_scalar_strain_yy_fuel8 saved_scalar_strain_yy_fuel9 saved_scalar_strain_yy_fuel10 saved_scalar_strain_yy_fuel11 saved_scalar_strain_yy_fuel12 saved_scalar_strain_yy_fuel13 saved_scalar_strain_yy_fuel14 saved_scalar_strain_yy_fuel15 saved_scalar_strain_yy_fuel16 saved_scalar_strain_yy_fuel17 saved_scalar_strain_yy_fuel18 saved_scalar_strain_yy_fuel19 saved_scalar_strain_yy_fuel20 saved_scalar_strain_yy_fuel21 saved_scalar_strain_yy_fuel22 saved_scalar_strain_yy_fuel23 saved_scalar_strain_yy_fuel24 saved_scalar_strain_yy_fuel25 saved_scalar_strain_yy_fuel26 saved_scalar_strain_yy_fuel27 saved_scalar_strain_yy_fuel28 saved_scalar_strain_yy_fuel29 saved_scalar_strain_yy_fuel30 saved_scalar_strain_yy_fuel31 saved_scalar_strain_yy_fuel32 saved_scalar_strain_yy_fuel33 saved_scalar_strain_yy_fuel34 saved_scalar_strain_yy_fuel35 saved_scalar_strain_yy_fuel36 saved_scalar_strain_yy_fuel37 saved_scalar_strain_yy_fuel38 saved_scalar_strain_yy_fuel39 saved_scalar_strain_yy_fuel40 saved_scalar_strain_yy_fuel41 saved_scalar_strain_yy_fuel42 saved_scalar_strain_yy_fuel43 saved_scalar_strain_yy_fuel44 saved_scalar_strain_yy_fuel45 saved_scalar_strain_yy_fuel46 saved_scalar_strain_yy_fuel47 saved_scalar_strain_yy_fuel48 saved_scalar_strain_yy_clad0 saved_scalar_strain_yy_clad1 saved_scalar_strain_yy_clad2 saved_scalar_strain_yy_clad3 saved_scalar_strain_yy_clad4 saved_scalar_strain_yy_clad5 saved_scalar_strain_yy_clad6 saved_scalar_strain_yy_clad7 saved_scalar_strain_yy_clad8 saved_scalar_strain_yy_clad9 saved_scalar_strain_yy_clad10 saved_scalar_strain_yy_clad11 saved_scalar_strain_yy_clad12 saved_scalar_strain_yy_clad13 saved_scalar_strain_yy_clad14 saved_scalar_strain_yy_clad15 saved_scalar_strain_yy_clad16 saved_scalar_strain_yy_clad17 saved_scalar_strain_yy_clad18 saved_scalar_strain_yy_clad19 saved_scalar_strain_yy_clad20 saved_scalar_strain_yy_clad21 saved_scalar_strain_yy_clad22 saved_scalar_strain_yy_clad23 saved_scalar_strain_yy_clad24 saved_scalar_strain_yy_clad25 saved_scalar_strain_yy_clad26 saved_scalar_strain_yy_clad27 saved_scalar_strain_yy_clad28 saved_scalar_strain_yy_clad29 saved_scalar_strain_yy_clad30 saved_scalar_strain_yy_clad31 saved_scalar_strain_yy_clad32 saved_scalar_strain_yy_clad33 saved_scalar_strain_yy_clad34 saved_scalar_strain_yy_clad35 saved_scalar_strain_yy_clad36 saved_scalar_strain_yy_clad37 saved_scalar_strain_yy_clad38 saved_scalar_strain_yy_clad39 saved_scalar_strain_yy_clad40 saved_scalar_strain_yy_clad41 saved_scalar_strain_yy_clad42 saved_scalar_strain_yy_clad43 saved_scalar_strain_yy_clad44 saved_scalar_strain_yy_clad45 saved_scalar_strain_yy_clad46 saved_scalar_strain_yy_clad47 saved_scalar_strain_yy_clad48 saved_scalar_strain_yy_clad49'
[]
[Mesh]
partitioner = centroid
centroid_partitioner_direction = y
patch_update_strategy = auto
type = Layered1DMesh
clad_mesh_density = customize
pellet_mesh_density = customize
clad_thickness = 0.00057
slices_per_block = 49
uniform_slice_heights = false
pellet_outer_radius = 0.004096
clad_gap_width = 8.4e-05
nx_p = 6
nx_c = 3
elem_type = EDGE3
bx_p = 0.5
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
[../]
[./terminator1]
type = Terminator
expression = 'burnup_EAV >= 0.0632'
[../]
[./terminator2]
type = Terminator
expression = 'plenum_pressure >= 1.55e7'
[../]
[]
[Variables]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = fuel
initial_condition = 2.50e-06
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./solid_swell]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./gas_swell]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./densification]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./relocation]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0.000000 10800 97200 500000000.000000'
# y = '0.000000 0.000000 16404.200000 16404.200000' #LHR5
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
x = '0.00324 3.77797'
y = '0.000000 10800 97200 500000000.000000'
z = '1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000'
axis = 1
scale_factor = 1
[../]
[./bc_temperature]
type = PiecewiseBilinear
x = '0.00324 3.77797'
y = '0.000000 10800 97200 500000000.000000'
z = '300.000000 300.000000 585.000000 585.000000 585.000000 585.000000 585.000000 585.000000'
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
scale_factor = 1
x = '0 10800.0'
y = '0.00651 1.0'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 1.55132e+07
fuel_pin_geometry = pin_geometry
[../]
[./fuel_axial_pressure]
type = ParsedFunction
value = plenum_pressure
vars = plenum_pressure
vals = plenum_pressure
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = fuel
fission_rate = fission_rate
[../]
[]
[Modules]
[./TensorMechanics]
[./Layered1DMaster]
[./fuel]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = fuel
out_of_plane_pressure = fuel_axial_pressure
use_displaced_mesh = true
strain = finite
eigenstrain_names = 'fuelthermal_strain fuel_swelling fuel_relocation'
save_in = saved_x
[../]
[./clad]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = clad
out_of_plane_pressure = clad_axial_pressure
use_displaced_mesh = true
strain = finite
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
save_in = saved_x
[../]
[../]
[../]
[]
[Burnup]
[./burnup]
block = fuel
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 100
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.001 0.999 0.0 0.0 0.0 0.0'
fuel_pin_geometry = pin_geometry
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 4.29768e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain
block = clad
execute_on = timestep_end
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./creep_strain_rate]
type = MaterialRealAux
property = creep_rate
variable = creep_strain_rate
block = clad
[../]
[./solid_swell]
type = MaterialRealAux
variable = solid_swell
property = solid_swelling
execute_on = timestep_end
block = fuel
[../]
[./gas_swell]
type = MaterialRealAux
variable = gas_swell
property = gas_swelling
execute_on = timestep_end
block = fuel
[../]
[./densification]
type = MaterialRealAux
variable = densification
property = densification
execute_on = timestep_end
block = fuel
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
execute_on = timestep_end
block = fuel
[../]
[./relocation_strain]
type = MaterialRealAux
variable = relocation
property = relocation_strain
execute_on = timestep_end
block = fuel
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = kinematic
model = frictionless
system = Constraint
normalize_penalty = true
penalty = 1e14
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
roughness_clad = 1e-06
roughness_coef = 1.5
roughness_fuel = 1e-06
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
initial_gas_fractions = '1.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00'
gas_released = fis_gas_released
tangential_tolerance = 1.0e-4
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = 2
function = pressure_ramp
factor = 1.55132e+07
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.99948e+06
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[./clad_coolant_surface]
type = ConvectiveFluxFunction
coefficient = 1e5
coefficient_function = 1.0e6
T_infinity = bc_temperature
boundary = '2'
variable = temp
[../]
[]
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup_function = burnup
linear_heat_rate_function = q
burnup_relocation_stop = 0.017
relocation_activation1 = 5000.0
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation
fuel_pin_geometry = pin_geometry
[../]
[./fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 293.0
eigenstrain_name = fuelthermal_strain
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = fuel
burnup_function = burnup
total_densification = 0.005
initial_fuel_density = 10257.0
eigenstrain_name = fuel_swelling
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
matpro_poissons_ratio = false
matpro_youngs_modulus = false
block = clad
[../]
[./stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'zrycreep'
block = clad
[../]
[./zrycreep]
type = ZryCreepLimbackHoppeUpdate
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = zirlo
block = clad
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6560.0
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
verbose = true
l_max_its = 50
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-3
nl_abs_tol = 1e-6
start_time = -200
n_startup_steps = 1
end_time = 1e9
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = 0.5
force_step_every_function_point = true
timestep_limiting_function = power_history
[../]
[./Predictor]
type = SimplePredictor
scale = 1.0
skip_times_old = '0 10800 97200'
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
execute_on = 'initial linear'
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
execute_on = 'initial timestep_end'
[../]
[./gas_volume]
type = LayeredInternalVolumePostprocessor
boundary = 9
execute_on = 'initial linear'
component = 0
out_of_plane_strain = strain_yy
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./average_clad_temp]
type = ElementAverageValue
block = clad
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = ElementExtremeValue
value_type = MAX
block = clad
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = ElementExtremeValue
value_type = MIN
block = clad
variable = temp
execute_on = 'initial timestep_end'
[../]
[./average_grain_radius]
type = ElementAverageValue
variable = grain_radius
block = fuel
[../]
[./clad_inner_vol]
type = LayeredInternalVolumePostprocessor
boundary = 7
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./pellet_volume]
type = LayeredInternalVolumePostprocessor
boundary = 8
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_clad]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 5
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_fuel]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./_dt]
type = TimestepSize
[../]
[./nonlinear_its]
type = NumNonlinearIterations
[../]
[./linear_its]
type = NumLinearIterations
[../]
[./rod_average_fuel_temp]
type = ElementAverageValue
block = fuel
variable = temp
execute_on = 'initial timestep_end'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
execute_on = 'initial timestep_end'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.6576
execute_on = 'initial timestep_end'
[../]
[./average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_history
[../]
[./clad_hoop_stress_max]
type = ElementExtremeValue
value_type = MAX
variable = stress_zz
block = clad
execute_on = 'initial timestep_end'
[../]
[./clad_hoop_stress_min]
type = ElementExtremeValue
value_type = MIN
variable = stress_zz
block = clad
execute_on = 'initial timestep_end'
[../]
[./max_fuel_centerline_temp]
type = NodalExtremeValue
variable = temp
boundary = 12
execute_on = 'initial timestep_end'
[../]
[./max_fuel_surface_temp]
type = NodalExtremeValue
value_type = MAX
variable = temp
boundary = 10
execute_on = 'initial timestep_end'
[../]
[./max_gap_distance]
type = NodalExtremeValue
value_type = MAX
variable = penetration
boundary = 10
execute_on = 'initial timestep_end'
[../]
[./burnup_EAV]
type = ElementAverageValue
block = fuel
variable = burnup
[../]
[./fission_gas_release]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[]
[Outputs]
perf_graph = true
exodus = false
color = false
# csv = true
hide = 'saved_scalar_strain_yy_fuel0 saved_scalar_strain_yy_fuel1 saved_scalar_strain_yy_fuel2 saved_scalar_strain_yy_fuel3 saved_scalar_strain_yy_fuel4 saved_scalar_strain_yy_fuel5 saved_scalar_strain_yy_fuel6 saved_scalar_strain_yy_fuel7 saved_scalar_strain_yy_fuel8 saved_scalar_strain_yy_fuel9 saved_scalar_strain_yy_fuel10 saved_scalar_strain_yy_fuel11 saved_scalar_strain_yy_fuel12 saved_scalar_strain_yy_fuel13 saved_scalar_strain_yy_fuel14 saved_scalar_strain_yy_fuel15 saved_scalar_strain_yy_fuel16 saved_scalar_strain_yy_fuel17 saved_scalar_strain_yy_fuel18 saved_scalar_strain_yy_fuel19 saved_scalar_strain_yy_fuel20 saved_scalar_strain_yy_fuel21 saved_scalar_strain_yy_fuel22 saved_scalar_strain_yy_fuel23 saved_scalar_strain_yy_fuel24 saved_scalar_strain_yy_fuel25 saved_scalar_strain_yy_fuel26 saved_scalar_strain_yy_fuel27 saved_scalar_strain_yy_fuel28 saved_scalar_strain_yy_fuel29 saved_scalar_strain_yy_fuel30 saved_scalar_strain_yy_fuel31 saved_scalar_strain_yy_fuel32 saved_scalar_strain_yy_fuel33 saved_scalar_strain_yy_fuel34 saved_scalar_strain_yy_fuel35 saved_scalar_strain_yy_fuel36 saved_scalar_strain_yy_fuel37 saved_scalar_strain_yy_fuel38 saved_scalar_strain_yy_fuel39 saved_scalar_strain_yy_fuel40 saved_scalar_strain_yy_fuel41 saved_scalar_strain_yy_fuel42 saved_scalar_strain_yy_fuel43 saved_scalar_strain_yy_fuel44 saved_scalar_strain_yy_fuel45 saved_scalar_strain_yy_fuel46 saved_scalar_strain_yy_fuel47 saved_scalar_strain_yy_fuel48 saved_scalar_strain_yy_clad0 saved_scalar_strain_yy_clad1 saved_scalar_strain_yy_clad2 saved_scalar_strain_yy_clad3 saved_scalar_strain_yy_clad4 saved_scalar_strain_yy_clad5 saved_scalar_strain_yy_clad6 saved_scalar_strain_yy_clad7 saved_scalar_strain_yy_clad8 saved_scalar_strain_yy_clad9 saved_scalar_strain_yy_clad10 saved_scalar_strain_yy_clad11 saved_scalar_strain_yy_clad12 saved_scalar_strain_yy_clad13 saved_scalar_strain_yy_clad14 saved_scalar_strain_yy_clad15 saved_scalar_strain_yy_clad16 saved_scalar_strain_yy_clad17 saved_scalar_strain_yy_clad18 saved_scalar_strain_yy_clad19 saved_scalar_strain_yy_clad20 saved_scalar_strain_yy_clad21 saved_scalar_strain_yy_clad22 saved_scalar_strain_yy_clad23 saved_scalar_strain_yy_clad24 saved_scalar_strain_yy_clad25 saved_scalar_strain_yy_clad26 saved_scalar_strain_yy_clad27 saved_scalar_strain_yy_clad28 saved_scalar_strain_yy_clad29 saved_scalar_strain_yy_clad30 saved_scalar_strain_yy_clad31 saved_scalar_strain_yy_clad32 saved_scalar_strain_yy_clad33 saved_scalar_strain_yy_clad34 saved_scalar_strain_yy_clad35 saved_scalar_strain_yy_clad36 saved_scalar_strain_yy_clad37 saved_scalar_strain_yy_clad38 saved_scalar_strain_yy_clad39 saved_scalar_strain_yy_clad40 saved_scalar_strain_yy_clad41 saved_scalar_strain_yy_clad42 saved_scalar_strain_yy_clad43 saved_scalar_strain_yy_clad44 saved_scalar_strain_yy_clad45 saved_scalar_strain_yy_clad46 saved_scalar_strain_yy_clad47 saved_scalar_strain_yy_clad48 saved_scalar_strain_yy_clad49'
[./csv]
type = CSV
execute_on = 'initial timestep_end'
[../]
[./chkfile]
type = CSV
show = 'fission_gas_release plenum_pressure rod_average_fuel_temp max_fuel_centerline_temp burnup_EAV'
sync_only = true
sync_times = '0 10800 97200'
[../]
[]
assessment/LWR/validation/IFA_432/analysis/rod2/SM/IFA_432_rod2_sm.i
[GlobalParams]
density = 10431 # initial fuel density 95% of theoretical (10980 kg/m3)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa_432_rod2_fine.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 513.3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4 5'
initial_condition = 3.5e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = bol_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factor]
type = PiecewiseBilinear
data_file = bol_axial.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.029395 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factor'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = '3 4 5'
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
factor = 1.6e12 #(n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4 5'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = '3 4 5'
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
num_radial = 81
num_axial = 21
a_lower = 0.01494
a_upper = 0.57374
fuel_inner_radius = 0.00
fuel_outer_radius = 0.005264
fuel_volume_ratio = 0.988069
i_enrich = '0.1 .9 0 0 0 0' # 10% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_fuel = 2.16e-6
roughness_clad = 6.35e-7
roughness_coef = 3.2
quadrature = true
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 513.3
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0135e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = '3 4 5'
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_density]
type = Density
block = '3 4 5'
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4 5'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = '3 4 5'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
stress_free_temperature = 297
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = '3 4 5'
burnup_function = burnup
q = q
diameter = 1.0528e-2
gap = 381.0e-6
relocation_activation1 = 5000
burnup_relocation_stop = 0.00821
tensor_mechanics_compatibility = true
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
stress_free_temperature = 297
model_irradiation_growth = true
model_thermal_expansion = false
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4 5'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 80
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# Time steps set up to match halden data
# start_time = -100
n_startup_steps = 1
end_time = 29700
dtmin = 1
[./TimeStepper]
type = ConstantDT
dt = 900
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3 4 5'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4 5'
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3 4 5'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
block = '3 4 5'
burnup_function = burnup
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4 5'
outputs = exodus
[../]
[./power_lower_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.075265 0'
[../]
[./power_upper_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.41499 0'
[../]
[./upper_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 8728 # paraview global node id 8729
[../]
[./lower_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 2694 # paraviw global node id 2695
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'fission_gas_released rod_total_power upper_TC_temp lower_TC_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'temp disp_x disp_y'
show_var_residual_norms = true
[]
assessment/TRISO/benchmark/IAEA_CRP-6/case_11/case_11_1D.i
[GlobalParams]
density = 10810.0 # kg/m^3
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
type = TRISO1DMesh
elem_type = EDGE3
coordinates = '0 2.485e-4 3.425e-4 3.425e-4 3.835e-4 4.195e-4 4.595e-4'
mesh_density = '6 6 0 6 8 6'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[Problem]
coord_type = RSPHERICAL
[]
[Variables]
[./disp_x]
[../]
[./temp]
initial_condition = 1608.0
[../]
[]
[Functions]
[./radial_eigenstrain]
type = ParsedFunction
value = 't*(4.52013e-4/6.0*t*t*t*t*t - 8.36313e-3/5.0*t*t*t*t + 5.67549e-2/4.0*t*t*t - 1.74247e-1/3.0*t*t + 2.62692e-1/2.0*t - 1.43234e-1)'
[../]
[./tangential_eigenstrain]
type = ParsedFunction
value = 't*(1.30457e-4/4.0*t*t*t - 2.10029e-3/3.0*t*t + 9.07826e-3/2.0*t - 3.24737e-2)'
[../]
[./fission_rate]
type = ParsedFunction
value = 1.1135e20 # units of fissions/m**3
[../]
[./k_function]
type = ParsedFunction
value = '4.93e-29'
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./burnup]
block = fuel
initial_condition = 0.0
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
initial_condition = 0.0
[../]
[./fission_rate]
block = fuel
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
factor = 2.37417e18 # n/m^2-sec
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./fission_rate]
type = FunctionAux
variable= fission_rate
block = fuel
function = fission_rate
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = IPyC_left_boundary
slave = buffer_right_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = IPyC_left_boundary
slave = buffer_right_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
# contact_pressure_input = 10e6
# quadrature = true
[../]
[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = DirichletBC
variable = temp
boundary = exterior
value = 1608.0
[../]
# exterior and internal pressures
[./exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
component = 0
factor = 0.1e6
[../]
[./PlenumPressure] # apply gas pressure on buffer and IPyC boundaries
[./plenumPressure]
boundary = buffer_IPyC_boundary
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[Materials]
[./fission_gas_release] # Sifgr fission gas release mode
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[../]
[./stress]
type = ComputeLinearElasticStress
block = 'fuel buffer SiC'
[../]
[./strain]
type = ComputeRSphericalSmallStrain
block = 'fuel buffer SiC'
eigenstrain_names = thermal_strain
[../]
[./PyC_stress]
type = PyCCreep
block = 'IPyC OPyC'
k = k_function
nu = 0.4
flux = fast_neutron_flux
temperature = temp
density = 1880.0 # kg/m^3
[../]
[./PyC_strain]
type = ComputeRSphericalIncrementalStrain
block = 'IPyC OPyC'
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
[../]
[./PyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = 'IPyC OPyC'
fluence = fast_neutron_fluence
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[../]
[./fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1608.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./PyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1608.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1608.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[../]
[./fuel_den]
type = Density
block = fuel
disp_r = disp_x
[../]
[./buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_den]
type = Density
density = 1000 #kg/m^3
block = buffer
disp_r = disp_x
[../]
[./PyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[../]
[./PyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./PyC_den]
type = Density
density = 1880.0 # kg/m^3
block = 'IPyC OPyC'
disp_r = disp_x
[../]
[./SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_den]
type = Density
density = 3200.0 # kg/m^3
block = SiC
disp_r = disp_x
[../]
[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
# petsc_options = '-snes_mf_operator -snes_ksp_ew -ksp_monitor'
# petsc_options_iname = '-pc_type -pc_hypre_type'
# petsc_options_value = 'hypre boomeramg'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 3.032e7
dtmax = 2e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[./burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[../]
[./volumeTotal]
type = InternalVolume
boundary = exterior
[../]
[./volumeFuel]
type = InternalVolume
boundary = fuel_right_boundary
[../]
[./volumeGas]
type = InternalVolume
boundary = 'fuel_right_boundary IPyC_left_boundary'
addition = -5.53e-11
execute_on = 'initial timestep_end'
[../]
[./volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temp
execute_on = 'initial timestep_end'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
[../]
[./tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[../]
[]
[Outputs]
print_linear_residuals = true
interval = 1
exodus = true
csv = true
perf_graph = true
[]
assessment/MOX/JOYO/MK-I/analysis/MK-I_75MW_master_new_bubble_gb_lim.i
[GlobalParams]
density = 10836.8
initial_porosity = 0.065
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.6
pellet_outer_radius = 0.0027
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000100
clad_thickness = 0.00035
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 0.599
elem_type = QUAD8
nx_c = 4
ny_c = 200
nx_p = 20
ny_p = 200
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
[../]
[]
[AuxVariables]
[./pore]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fission_rate]
block = pellet
[../]
[./burnup]
block = pellet
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
[../]
[]
[Functions]
[./power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = '0 70000 25000000'
y = '0 38974.7 38974.7'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 70000 25000000'
y = '0 1.9e+19 1.9e+19'
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
x = '0 0.071 0.146 0.221 0.296 0.37 0.443 0.566'
y = '0 25000000'
z = '0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672 0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672'
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./average_power_history]
type = PiecewiseLinear
x = '0 70000 25000000'
y = '0 32000 32000'
[../]
[./clad_surface_temp]
type = PiecewiseBilinear
x = '0 0.071 0.146 0.221 0.296 0.37 0.443 0.566'
y = '0 25000000'
z = '295 295 295 295 295 295 295 295 593.58 606.36 619.13 630.26 640.87 651.76 662.67 673.67'
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.065
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
execute_on = timestep_end
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
execute_on = timestep_end
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
execute_on = timestep_end
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
execute_on = timestep_end
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
execute_on = timestep_end
[../]
[./nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vcn_bdr_2
execute_on = timestep_end
[../]
[./atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atm_bbl_bdr
execute_on = timestep_end
[../]
[./vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vcn_bbl_bdr
execute_on = timestep_end
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
execute_on = timestep_end
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
execute_on = timestep_end
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = timestep_end
[../]
[./volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = vol_bbl_bdr
execute_on = timestep_end
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = fast_neutron_flux_function
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = '12'
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp_clad_out]
type = FunctionPresetBC
variable = temp
boundary = '2'
function = clad_surface_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 101325
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 300000
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10836.8
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = Thermal316
block = clad
temp = temp
[../]
[./clad_density]
type = Density
block = clad
density = 8000
[../]
[./clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
diff_coeff_option = 4
fission_rate = fission_rate
grain_radius_const = 8.01e-6 #I'm keeping the grain radius const because the grain growth in MOX is probably different due to high Temp
bubble_gb_limit = 1.0e+11
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
picard_abs_tol = 1e-5
picard_rel_tol = 1e-5
picard_max_its = 1
l_max_its = 70
l_tol = 8e-3
nl_max_its = 70
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = 0
n_startup_steps = 1
end_time = 25000000
dtmax = 1e6
dtmin = 0.25
[./TimeStepper]
type = IterationAdaptiveDT
dt = 5000
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.6 # rod height
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./ave_pore]
type = ElementAverageValue
variable = pore
[../]
[./max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[../]
[./min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[../]
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = MK-I_75MW_sub_new_bubble_gb_lim.i
[../]
[]
[Transfers]
[./temp_to_sub]
type = MultiAppProjectionTransfer
direction = to_multiapp
multi_app = sub
source_variable = temp
variable = temp
[../]
[./pore_from_sub]
type = MultiAppInterpolationTransfer
direction = from_multiapp
multi_app = sub
source_variable = pore
variable = pore
[../]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temp disp_x disp_y'
[]
assessment/LWR/validation/Tribulation/analysis/BN3X15/BN3X15.i
[GlobalParams]
density = 10414 # 94.843 % TD assuming TS 10980
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
initial_porosity = 0.05157
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
type = SmearedPelletMesh
dim = 2
pellet_quantity = 1
pellet_height = 0.9956
pellet_outer_radius = 0.00402
pellet_mesh_density = customize
nx_p = 11
ny_p = 243
clad_bot_gap_height = 0.001
clad_gap_width = 100.0e-6
clad_thickness = 0.00063
clad_mesh_density = customize
nx_c = 4
ny_c = 249
top_bot_clad_height = 0.00224
clad_top_gap_height = 0.0952
elem_type = QUAD8
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 8.39e-6 # 2D grain radius 10.76e-6/2*1.56
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseBilinear
data_file = BN3X15_power.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 50807520 50893920 50980320 85442688 85529088 85615488 121321152 121407552'
y = '0.0073804 1 1 0.0073804 1 1 0.0073804 1 1 0.0073804'
[../]
[./flux]
type = PiecewiseBilinear
data_file = BN3X15_fast_flux.csv
axis = 1
[../]
[./clad_temp_bc]
type = PiecewiseBilinear
data_file = BN3X15_clad_temp.csv
axis = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./timestep_function]
type = PiecewiseLinear
data_file = BN3X15_time_function.csv
format = columns
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
i_enrich = '0.0576 0.9424 0 0 0 0' # 5.76% enriched U-235
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 0.3e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 13.729e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 980665
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
q = power_history
burnup_relocation_stop = 0.017
relocation_activation1 = 5000
fuel_pin_geometry = pin_geometry
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 0
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 60
l_tol = 8e-3
nl_max_its = 30
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 121407552
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 20
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = timestep_function
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[./fuel_max_temp]
type = ElementExtremeValue
block = 3
variable = temp
[../]
[./fuel_average_temp]
type = ElementAverageValue
block = 3
variable = temp
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage fuel_average_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
assessment/LWR/validation/IFA_535/analysis/rod_812/IFA_535_rod_812.i
# IFA 535.6 rod 812 (Table & Figure references are to IFA-535.pdf)
[GlobalParams]
density = 10398.06 #Table 1 (PDF page 14), 94.7% TD #Assuming a TD of 10980.
displacements = 'disp_x disp_y'
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
group_variables = 'disp_x disp_y'
[]
[Mesh]
file = ifa535_rod812.e
patch_size = 20 # 50
patch_update_strategy = auto
[]
[UserObjects]
[./fuelPinGeometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 297.0
# If the initial diameter from the mesh
# is compared to the pre & post-ramp diameters, then they should probably
# be compared at the same cladding temperatures.
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = 'clad'
[../]
[./fast_neutron_fluence]
block = 'clad'
[../]
[./grain_radius]
block = 'pellet_type_1' #'pellet'
initial_condition = 9.36e-6 # 2D grain radius 6um #From rod 810
#2.75e-6 #Table 3.2, 5.5/2 microns (Assuming 3D grain size)
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = avgPower_IFA535rod812.csv
format = columns
#direction = left
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = axialPowerPeakingFactor_IFA535rod812.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 212261117 212261147 212264717 212264747 222089867 222090767'
y = '1.4475e-2 1 1 1.4475e-2 1.4475e-2 1 1 1.4475e-2'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./cladTemp]
type = PiecewiseLinear
data_file = avgCladTemp_IFA535rod812.csv
format = columns
#direction = left
scale_factor = 1
[../]
[./cladPeakingFactors]
type = PiecewiseBilinear
data_file = axialCladTempPeakingFactor_IFA535rod811.csv
scale_factor = 1
axis = 1
[../]
[./cT]
type = CompositeFunction
functions = 'cladTemp cladPeakingFactors'
[../]
[./fluxFactor]
type = PiecewiseLinear
data_file = flux_IFA535rod811.csv
format = columns
#direction = left
scale_factor = 1
[../]
[./fluxValue]
type = CompositeFunction
functions = 'fluxFactor power_profile'
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = pellet_type_1
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_eigenstrain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
decomposition_method = EigenSolution
[../]
[./clad]
block = clad
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_strain clad_irradiation_growth'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
decomposition_method = EigenSolution
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = 'pellet_type_1' #'pellet' # fission rate applied to the fuel (block 2) only
#fission_rate = fission_rate # coupling to the fission_rate aux variable
burnup_function = burnup
#fuel_pin_geometry = fuelPinGeometry
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
order = CONSTANT
family = MONOMIAL
block = 'pellet_type_1' #'pellet'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
fuel_pin_geometry = fuelPinGeometry
#a_upper = 337.53e-3 #317.4e-3+20.13e-3 (a_lower+pellet_height),top of fuel stack
#a_lower = 20.13e-3 #From top_bot_clad_height #18.5e-3 #bottom of fuel stack, Figure 3.1
#fuel_inner_radius = 0
#fuel_outer_radius = 4.569e-3 #Table 3.2, from diameter
i_enrich = '0.0988 0.9012 0 0 0 0' #Table 3.2
#fuel_volume_ratio = 0.9756625712887741 #(dimple fraction) from calculations in fuel_volume_ratio.ipynb
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 'clad'
axial_power_profile = axial_peaking_factors
#rod_ave_lin_pow = power_profile
#factor = 3.71098e13 #from fluxCalc.xlsx #8.025e17 #Table 3.7, avg. of cycles 8-11, converted to n/(m^2-s)
function = fluxValue
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 'pellet_type_1' #'pellet'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
# Define mechanical contact between the
# fuel (sideset=10) and the clad (sideset=5)
master = 5
slave = 10
#penalty = 1e7 #for kinematic (default method is kinematic)
formulation = penalty #used by rod 810
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
# Define thermal contact between the
# fuel (sideset=10) and the clad (sideset=5)
type = GapHeatTransferLWR
variable = temp
master = 5 #'4 5 6' #5
slave = 10 #8 #10
initial_moles = initial_moles # coupling to a postprocessor
# which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor
# which supplies the fission gas addition
roughness_clad = 1e-6 #default
roughness_fuel = 2e-6 #use 2e-6 instead of default
roughness_coef = 3.2 #use 3.2 unless know better
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 212261147
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
# pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
# pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
# pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 7e6 #pp. 8 of "535.pdf"
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 0.1e6 #from pp.6 of "535.pdf" for IFA-409
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get
# inital fill gas mass
temperature = plenum_temperature # coupling to post processor to get
# gas temperature approximation
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get
# fission gas added
output = plenum_pressure # coupling to post processor to
# output plenum/gap pressure
refab_time = 212261147 #212264717 #217722744
refab_pressure = 3.21e6
refab_temperature = 298.15 #449.05
refab_volume = 9.6e-6
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
[../]
[../]
[./claddingSurfTemp]
type = FunctionDirichletBC
function = cT
boundary = '1 2 3' #2 # cladding boundary
variable = temp
[../]
[]
[Materials]
[./density_clad]
type = Density
block = 'clad'
density = 6551.0 #Check this value; cladding is Zr-2
[../]
[./density_fuel]
type = Density
block = 'pellet_type_1' #'pellet'
[../]
[./fuel_thermal]
# temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 'pellet_type_1' #'pellet'
temp = temp
burnup_function =burnup
initial_porosity = .053 #(1-density/theoreticalDensity)
thermal_conductivity_model = NFIR # thermal conductivity model (independent of reactor type)
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 'pellet_type_1'
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 'pellet_type_1'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 'pellet_type_1'
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 297.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation] # relocation strain measure for UO2
type = UO2RelocationEigenstrain
block = 'pellet_type_1'
burnup_function = burnup
fuel_pin_geometry = fuelPinGeometry
linear_heat_rate_function = q
burnup_relocation_stop = 0.2 #0.02
relocation_activation1 = 5000
eigenstrain_name = fuel_relocation_eigenstrain
[../]
[./clad_thermal]
# general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 'clad'
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor] # isotropic elasticity tensor for Zry cladding
type = ZryElasticityTensor
block = 'clad'
[../]
[./clad_stress] # stress update class to govern the return mapping algorithm for creep
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_creep'
block = 'clad'
[../]
[./clad_creep] # creep for zircaloy cladding
type = ZryCreepLimbackHoppeUpdate
block = 'clad'
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 'clad'
temperature = temp
stress_free_temperature = 297.0
eigenstrain_name = clad_thermal_strain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = 'clad'
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_growth
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 'pellet_type_1' #'pellet'
temperature = temp
burnup_function = burnup
initial_fuel_density = 10398.06
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 'pellet_type_1' #'pellet'
temp = temp
#fission_rate = fission_rate # coupling to fission_rate aux variable
#initial_grain_radius = 9.36e-6 # 2D grain radius 6um #From rod 810
#2.75e-6 #Table 3.2, 5.5/2 microns (Assuming 3D grain size)
grain_radius = grain_radius
gbs_model = true
burnup_function =burnup
#total_densification = 0.009 #Leave at default
initial_porosity = .053 #(1-density/theoreticalDensity)
transient_option = 2
#compute_swelling = true
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200.0
min_value = 200
[../]
# [./limitDisp]
# type = MaxIncrement
# max_increment = 1e-5
# variable = disp_x
# [../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-3 #1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 222090767 #last time step from avgPower_IFA535rod812.csv
dtmax = 2e6 #1e6
dtmin = 1
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
force_step_every_function_point = true
timestep_limiting_function = power_profile
max_function_change = 3e20
optimal_iterations = 20 #15
iteration_window = 6
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
# volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./avg_clad_temp]
# average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 'pellet_type_1' #'pellet'
[../]
[./input_rod_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./maxCenterlineTemp]
type = NodalMaxValue
boundary = 12 # pellet_centerline
variable = temp
[../]
[./maxFuelPenetration]
type = NodalMaxValue
boundary = 10 # pellet_centerline
variable = penetration
[../]
[./minFuelPenetration]
type = NodalExtremeValue
boundary = 10 # pellet_centerline
value_type = min
variable = penetration
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = 'pellet_type_1' #'pellet'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_1
temperature = temp
mechanics_system = TENSOR
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
#checkpoint = true
#execute_on = 'nonlinear timestep_end'
csv = true
exodus = true
[./console]
type = Console
output_linear = true
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
test/tests/fuelrodlinevaluesampler/example_problem_smeared_test2.i
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = SmearedTwoPelletOneType2D.e
displacements = 'disp_x disp_y'
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
# Define dependent variables and initial conditions
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
outputs = none
[../]
[./saved_y]
outputs = none
[../]
[./saved_t]
outputs = none
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
# Specify that we need solid mechanics (divergence of stress)
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
fuel_pin_geometry = 'pin_geometry'
#a_lower = 0.00324 # mesh dependent! ##Commentted out due to using FuelPinGeometry
#a_upper = 0.02696 # mesh dependent! ##Commentted out due to using FuelPinGeometry
#fuel_inner_radius = 0 ##Commentted out due to using FuelPinGeometry
#fuel_outer_radius = .0041 ##Commentted out due to using FuelPinGeometry
fuel_volume_ratio = 0.987775 # for use with dished pellets (ratio of actual volume to cylinder volume)
order = CONSTANT
family = MONOMIAL
#N235 = N235 # Activate to write N235 concentration to output file
#N236 = N236 # Activate to write N236 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
RPF = RPF
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'initial timestep_end'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'initial timestep_end'
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
contact_pressure = contact_pressure
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = -200
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
execute_on = 'initial linear'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
initial_porosity = 0.0
temp = temp
burnup_function = burnup
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (bison kernel)
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = pellet_type_1
temp = temp
burnup_function = burnup
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (bison kernel)
type = MechUO2
block = pellet_type_1
temp = temp
formulation = NonlinearRZ
burnup_function = burnup
model_swelling = true
name_swelling_model = fuel_solid_mechanics_swelling
model_relocation = true
name_relocation_model = fuel_relocation
model_thermal_expansion = true
model_hotpressing = true
model_creep = true
isotropic_cracking = true
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 10.0e-6
oxy_to_metal_ratio = 2.0
stress_free_temperature = 295.0
dep_matl_props = deltav_v0_bd
rod_ave_lin_pow = power_history
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
fuel_pin_geometry = 'pin_geometry'
#diameter = 0.0082 ##Commentted out due to using FuelPinGeometry
#gap = 160e-6 # diametral gap ##Commentted out due to using FuelPinGeometry
q = q
burnup_relocation_stop = 1.e20
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr4 (bison kernel)
type = ThermalIrradiationCreepZr4
block = clad
temp = temp
fast_neutron_flux = fast_neutron_flux
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
stress_free_temperature = 295.0
[../]
[./clad_irrgrowth]
type = IrradiationGrowthZr4
block = clad
fast_neutron_fluence = fast_neutron_fluence
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200
min_value = 300
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
coupled_groups = 'disp_x,disp_y'
[../]
[]
[Executioner]
# PETSC options:
# petsc_options
# petsc_options_iname
# petsc_options_value
#
# controls for linear iterations
# l_max_its
# l_tol
#
# controls for nonlinear iterations
# nl_max_its
# nl_rel_tol
# nl_abs_tol
#
# time control
# start_time
# dt
# optimal_iterations
# iteration_window
# linear_iteration_ratio
type = Transient
solve_type = 'PJFNK'
petsc_options = '-pc_type_asm'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-5 #8e-3
nl_max_its = 15
# This value is necessary to solve the displacements resonably tight for a good vonmises caluculation in the first timestep.
nl_rel_tol = 1e-10
# This value is here to "loosen" the relative tolerance for subsequent timesteps.
nl_abs_tol = 1e-8
start_time = -200
num_steps = 2
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2.0e2
optimal_iterations = 6
iteration_window = 2
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
execute_on = timestep_end
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
execute_on = timestep_end
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
execute_on = timestep_end
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
execute_on = timestep_end
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 9
component = 1
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./_dt] # time step
type = TimestepSize
execute_on = timestep_end
[../]
[./nonlinear_its] # number of nonlinear iterations at each timestep
type = NumNonlinearIterations
execute_on = timestep_end
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
execute_on = 'initial timestep_end'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.02372 # rod height
execute_on = 'initial timestep_end'
[../]
[]
[VectorPostprocessors]
[./fuel_vonmises]
type = FuelRodLineValueSampler
variable = vonmises
material = 'fuel'
fraction = 0.5
num_points = 20
orientation = 'vertical'
fuel_pin_geometry = 'pin_geometry'
outputs = chkfile
[../]
[./clad_vonmises]
type = FuelRodLineValueSampler
variable = vonmises
material = 'clad'
fraction = 0.5
num_points = 20
orientation = 'vertical'
fuel_pin_geometry = 'pin_geometry'
outputs = chkfile
[../]
[]
[Outputs]
exodus = true
color = false
csv = true
[./console]
type = Console
output_linear = true
max_rows = 25
[../]
[./chkfile]
type = CSV
execute_on = 'FINAL'
[../]
[]
test/tests/example_problem_test/example_problem_test.i
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = 2_pellet_discrete.e
displacements = 'disp_x disp_y'
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
# Define dependent variables and initial conditions
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
outputs = none
[../]
[./saved_y]
outputs = none
[../]
[./saved_t]
outputs = none
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
# Specify that we need solid mechanics (divergence of stress)
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
fuel_pin_geometry = 'pin_geometry'
#a_lower = 0.00324 # mesh dependent! ##Commentted out due to using FuelPinGeometry
#a_upper = 0.02696 # mesh dependent! ##Commentted out due to using FuelPinGeometry
#fuel_inner_radius = 0 ##Commentted out due to using FuelPinGeometry
#fuel_outer_radius = .0041 ##Commentted out due to using FuelPinGeometry
fuel_volume_ratio = 0.987775 # for use with dished pellets (ratio of actual volume to cylinder volume)
order = CONSTANT
family = MONOMIAL
#N235 = N235 # Activate to write N235 concentration to output file
#N236 = N236 # Activate to write N236 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
RPF = RPF
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'initial timestep_end'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'initial timestep_end'
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
contact_pressure = contact_pressure
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = -200
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
execute_on = 'initial linear'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
initial_porosity = 0.0
temp = temp
burnup_function = burnup
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (bison kernel)
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = pellet_type_1
temp = temp
burnup_function = burnup
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (bison kernel)
type = MechUO2
block = pellet_type_1
temp = temp
formulation = NonlinearRZ
burnup_function = burnup
model_swelling = true
name_swelling_model = fuel_solid_mechanics_swelling
model_relocation = true
name_relocation_model = fuel_relocation
model_thermal_expansion = true
model_hotpressing = true
model_creep = true
isotropic_cracking = true
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 10.0e-6
oxy_to_metal_ratio = 2.0
stress_free_temperature = 295.0
dep_matl_props = deltav_v0_bd
rod_ave_lin_pow = power_history
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
fuel_pin_geometry = 'pin_geometry'
#diameter = 0.0082 ##Commentted out due to using FuelPinGeometry
#gap = 160e-6 # diametral gap ##Commentted out due to using FuelPinGeometry
q = q
burnup_relocation_stop = 1.e20
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr4 (bison kernel)
type = ThermalIrradiationCreepZr4
block = clad
temp = temp
fast_neutron_flux = fast_neutron_flux
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
stress_free_temperature = 295.0
[../]
[./clad_irrgrowth]
type = IrradiationGrowthZr4
block = clad
fast_neutron_fluence = fast_neutron_fluence
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200
min_value = 300
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
coupled_groups = 'disp_x,disp_y'
[../]
[]
[Executioner]
# PETSC options:
# petsc_options
# petsc_options_iname
# petsc_options_value
#
# controls for linear iterations
# l_max_its
# l_tol
#
# controls for nonlinear iterations
# nl_max_its
# nl_rel_tol
# nl_abs_tol
#
# time control
# start_time
# dt
# optimal_iterations
# iteration_window
# linear_iteration_ratio
type = Transient
solve_type = 'PJFNK'
petsc_options = '-pc_type_asm'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-5 #8e-3
nl_max_its = 15
# This value is necessary to solve the displacements resonably tight for a good vonmises caluculation in the first timestep.
nl_rel_tol = 1e-10
# This value is here to "loosen" the relative tolerance for subsequent timesteps.
nl_abs_tol = 1e-8
start_time = -200
num_steps = 2
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2.0e2
optimal_iterations = 6
iteration_window = 2
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
execute_on = timestep_end
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
execute_on = timestep_end
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
execute_on = timestep_end
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
execute_on = timestep_end
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 9
component = 1
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./_dt] # time step
type = TimestepSize
execute_on = timestep_end
[../]
[./nonlinear_its] # number of nonlinear iterations at each timestep
type = NumNonlinearIterations
execute_on = timestep_end
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
execute_on = 'initial timestep_end'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.02372 # rod height
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
exodus = true
color = false
[./console]
type = Console
output_linear = true
max_rows = 25
[../]
[]
assessment/LWR/validation/IFA_432/analysis/rod2/IFA_432_rod2.i
[GlobalParams]
density = 10431 # initial fuel density 95% of theoretical (10980 kg/m3)
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa_432_rod2_fine.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 513.3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4 5'
initial_condition = 3.5e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = bol_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factor]
type = PiecewiseBilinear
data_file = bol_axial.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.029395 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factor'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[Modules/TensorMechanics/Master]
[./fuel]
block = '3 4 5'
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = '3 4 5'
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
factor = 1.6e12 #(n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4 5'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hydrostatic_stress]
block = '3'
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = hydrostatic
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = '3 4 5'
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
num_radial = 81
num_axial = 21
a_lower = 0.01494
a_upper = 0.57374
fuel_inner_radius = 0.00
fuel_outer_radius = 0.005264
fuel_volume_ratio = 0.988069
i_enrich = '0.1 .9 0 0 0 0' # 10% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_fuel = 2.16e-6
roughness_clad = 6.35e-7
roughness_coef = 3.2
quadrature = true
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = PresetBC
boundary = '1 2 3'
variable = temp
value = 513.3
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0135e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = '3 4 5'
thermal_conductivity_model = NFIR
initial_porosity = 0.05
temp = temp
burnup_function = burnup
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4 5'
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = '3 4 5'
temperature = temp
[../]
[./fuel_elasticity_and_creep]
type = ComputeThermalExpansionEigenstrain
block = '3 4 5'
temperature = temp
stress_free_temperature = 297
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4 5'
burnup_function = burnup
linear_heat_rate_function = q
diameter = 1.0528e-2
gap = 381.0e-6
burnup_relocation_stop = 0.00821
relocation_activation1 = 5000
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_inelastic_stressUpdate] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type =stress_relief_annealed
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
temperature = temp
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
[../]
[./clad_inelastic_stress] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = clad_inelastic_stressUpdate
[../]
[./clad_thermal_eigenstrain] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ComputeThermalExpansionEigenstrain
block = 1
temperature = temp
stress_free_temperature = 297
eigenstrain_name = 'clad_thermal_eigenstrain'
thermal_expansion_coeff = 5.0e-6
[../]
[./clad_irradiation_eigenstrain] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '3 4 5'
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4 5'
burnup = burnup
temperature = temp
initial_fuel_density = 10431
total_densification = .0043
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4 5'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 80
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# Time steps set up to match halden data
# start_time = -100
n_startup_steps = 1
end_time = 29700
dtmin = 1
[./TimeStepper]
type = ConstantDT
dt = 900
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3 4 5'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4 5'
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3 4 5'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
block = '3 4 5'
burnup_function = burnup
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4 5'
outputs = exodus
[../]
[./power_lower_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.075265 0'
[../]
[./power_upper_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.41499 0'
[../]
[./upper_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 8728 # paraview global node id 8729
[../]
[./lower_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 2694 # paraviw global node id 2695
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = TENSOR
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'fission_gas_released rod_total_power upper_TC_temp lower_TC_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'temp disp_x disp_y'
show_var_residual_norms = true
[]
examples/2D-RZ_rodlet_10pellets/discrete.i
# This model is a linear element, 10 discrete fuel pellet stack (pellet_type_1) with a fine mesh.
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
initial_porosity = 0.05
disp_x = disp_x
disp_y = disp_y
displacements = 'disp_x disp_y'
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
# Import mesh file
file = fine10_rz.e
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
# Define dependent variables and initial conditions
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
# Specify that we need solid mechanics (divergence of stress)
[./solid]
disp_r = disp_x
disp_z = disp_y
save_in_disp_r = saved_x
save_in_disp_z = saved_y
temp = temp
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 0.00324 # mesh dependent!
a_upper = 0.12184 # mesh dependent!
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 0.987775 # for use with dished pellets (ratio of actual volume to cylinder volume)
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
block = clad
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = linear
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = linear
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
disp_x = disp_x
disp_y = disp_y
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = pellet_type_1
temp = temp
burnup_function = burnup
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (BISON kernel)
type = Elastic
block = pellet_type_1
disp_r = disp_x
disp_z = disp_y
temp = temp
dep_matl_props = deltav_v0_bd
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = 0.0082
q = q
gap = 160e-6 # diametral gap
burnup_relocation_stop = .03
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr (BISON kernel)
type = MechZry
block = clad
disp_r = disp_x
disp_z = disp_y
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
# thermal_expansion = 5.0e-6 # unnecessary because computing the thermal expansion with MATPRO
model_irradiation_growth = true
model_thermal_expansion = true
stress_free_temperature = 295.0
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
disp_r = disp_x
disp_z = disp_y
[../]
[./fuel_density]
type = Density
block = pellet_type_1
disp_r = disp_x
disp_z = disp_y
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200
min_value = 0
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
# PETSC options:
# petsc_options
# petsc_options_iname
# petsc_options_value
#
# controls for linear iterations
# l_max_its
# l_tol
#
# controls for nonlinear iterations
# nl_max_its
# nl_rel_tol
# nl_abs_tol
#
# time control
# start_time
# dt
# optimal_iterations
# iteration_window
# linear_iteration_ratio
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = THIRD
side_order = FIFTH
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
execute_on = linear
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
execute_on = linear
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
execute_on = linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
execute_on = linear
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on = linear
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on = linear
[../]
[./_dt] # time step
type = TimestepSize
execute_on = linear
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
execute_on = linear
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
execute_on = linear
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[]
assessment/LWR/validation/RIA_NSRR_FK/analysis/FK4/FK04.i
# This file was created using BIF with the following inputs:
# FK04/FK04.var - md5sum: 789d603cfbdaaeb2625ea98056214f6f
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
[GlobalParams]
density = 10310.8809782
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
displacements = 'disp_x disp_y'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
displacements = 'disp_x disp_y'
patch_size = 5
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
top_bot_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.053182
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[AuxVariables]
[./BuTC]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gap]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./fission_rate]
initial_condition = 0
[../]
[./grain_radius]
block = 3
initial_condition = 5.96e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./integral_burnup]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_radial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.0592261881186
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[../]
[./flux]
type = ConstantFunction
value = 0.0
[../]
[./axial_peaking_factors]
type = ConstantFunction
value = 1
[../]
[./coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[../]
[./linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[../]
[./axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[../]
[./burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[../]
[./radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[../]
[./radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[../]
[./initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
i_enrich = '0.045 0.955 0.0 0.0 0.0 0.0'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
save_in = saved_t
block = 3
[../]
[]
[AuxKernels]
[./BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[../]
[./gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[../]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = timestep_begin
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_begin
[../]
[./radial_stress]
type = MaterialTensorAux
tensor = stress
variable = radial_stress
index = 0
execute_on = timestep_begin
[../]
[./axial_stress]
type = MaterialTensorAux
tensor = stress
variable = axial_stress
index = 1
execute_on = timestep_begin
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
index = 2
execute_on = timestep_begin
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./axial_strain]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = stress
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./elastic_radial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = radial_strain
index = 0
execute_on = timestep_begin
[../]
[./elastic_axial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_strain
index = 1
execute_on = timestep_begin
[../]
[./elastic_hoop_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_strain
index = 2
execute_on = timestep_begin
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_begin
[../]
[./creep_strain_radial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 0
execute_on = timestep_begin
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
index = 1
execute_on = timestep_begin
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 2
execute_on = timestep_begin
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
friction_coefficient = 2.5
normal_smoothing_distance = 0.1
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
roughness_coef = 3.2
roughness_fuel = 1.5e-6
roughness_clad = 1.75e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
initial_gas_fractions = '1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0'
gas_released = fission_gas_released
tangential_tolerance = 1.0e-6
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '10 5'
initial_pressure = 0.5e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
block = 3
temp = temp
burnup = BuTC
initial_porosity = 0.0592261881186
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
temp = temp
burnup = burnup
total_densification = 0.006
gas_swelling_type = SIFGRS
[../]
[./fuel_mech]
type = MechUO2
block = 3
temp = temp
burnup = BuTC
fission_rate = fission_rate
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 5.56e-06
oxy_to_metal_ratio = 2.0
model_thermal_expansion = true
model_swelling = true
name_swelling_model = fuel_swelling
model_relocation = false
name_relocation_model = fuel_relocation
model_creep = false
model_hotpressing = false
has_hotpressing_plasticity = false # used to turn on plasticity models
matpro_youngs_modulus = false
matpro_poissons_ratio = false
dep_matl_props = deltav_v0_bd
# input_yield_stress = 100e6 # used to turn on plasticity models
# input_hardening_modulus = 2e9 # used to turn on plasticity models
# transition_temperature = 1273 # used to change the hot presing temperature
# isotropic_cracking = true # used for isotropic softening model
# rod_ave_lin_pow = linear_heat_rate_profile # used for isotropic softening model
# cracking_stress = 120e6 # used for smeared cracking model
# cracking_release = exponential # used for smeared cracking model
# cracking_residual_stress = 0.1 # used for smeared cracking model
# cracking_beta = 0.01 # used for smeared cracking model
# compute_method = ShearRetention # used for smeared cracking model
# max_cracks = 3 # used for smeared cracking model
# active_crack_planes = '0 1 2' # used for smeared cracking model
stress_free_temperature = 293
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = buavg
q = linear_heat_generation_rate
diameter = 0.01054
gap = 1e-05
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.20e26
creeprate_scalef = 1
cold_work_factor = 0.01
material_type = 0
model_irradiation_growth = false
model_thermal_expansion = true
model_elastic_modulus = true
constitutive_model = plasticity
compute_JIntegral = true
formulation = NonlinearRZ
[../]
[./combined]
type = CombinedCreepPlasticity
block = clad
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = clad
temp = temp
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
material_type = 0
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.20e26
#output_properties = creep_strain
#outputs = all
[../]
[./plasticity]
type = ZryPlasticity
block = 1
temp = temp
initial_fast_fluence = 1.20e26
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
use_matpro = true
output_properties = yield_stress
outputs = all
scale_factor = 1.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = 2
[../]
[./clad_density]
type = Density
block = 1
density = 6551
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[UserObjects]
[./avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[../]
[./integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.000001
dtmax = 1.0
start_time = 0
end_time = 100
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Postprocessors]
[./average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[]
[VectorPostprocessors]
[./rad_temp]
type = LineValueSampler
end_point = '0.00527 0.0503 0.0'
start_point = '0.0 0.0503 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
output_linear = true
[../]
[./dummy]
type = CSV
enable = true
[../]
[]
test/tests/standard_lwr_outputs_action/pellet_only.i
[GlobalParams]
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
density = 10431.0
energy_per_fission = 3.20435313e-11
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = pellet_only.e
patch_size = 10
patch_update_strategy = auto
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
x = '0 100 1e8'
y = '0 20000 20000'
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = fuel_pellet
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_upper = 0.01496
a_lower = 0.00226
fuel_inner_radius = 0.0
fuel_outer_radius = 0.005305
RPF = RPF
[../]
[]
[BCs]
[./fuel_wall_temp]
type = DirichletBC
variable = temp
boundary = '10'
value = 673
[../]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_elastic]
type = Elastic
block = fuel_pellet
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
stress_free_temperature = 293.0
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_density]
type = Density
[../]
[./fission_gas_release]
type = Sifgrs
temp = temp
burnup_function = burnup
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
dtmax = 200
dtmin = 200
end_time = 200
[]
[StandardLWRFuelRodOutputs]
temperature = temp
mechanics_system = solid
rod_component = fuel
fuel_pellet_blocks = fuel_pellet
[]
[Outputs]
perf_graph = true
exodus = false
color = false
csv = true
[]
examples/Discrete_3D_3pellets/half_symm/3d_3pellets.i
[GlobalParams]
density = 10431.0 #95% TD (TD = 10980)
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
displacements = 'disp_x disp_y disp_z'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
[]
[Problem]
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y disp_z temp'
reference_residual_variables = 'saved_z saved_z saved_z saved_t'
[]
[Mesh]
file = DiscreteThreePellets3D.e
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
patch_update_strategy = auto
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 298
[../]
[]
[AuxVariables]
[./fission_rate]
block = '3'
[../]
[./burnup]
block = '3'
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./grain_radius]
block = '3'
initial_condition = 5e-6 # must be the same as the initial value in Sifgr
[../]
[./gas_swell]
order = CONSTANT
family = MONOMIAL
block = '3'
[../]
[./volumetric_strain]
order = CONSTANT
family = MONOMIAL
block = '3'
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./eff_creep_strain]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./hoop_creep_strain]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./hoop_plastic_strain]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[./pid]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_z]
[../]
[./saved_t]
[../]
[]
[Functions]
[./power_history]
# CoolantChannel requires this to have units while axial_peaking_factors must be normalized.
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 25e3 # 25 kW/m peak power.
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./coolant_pressure_ramp]
type = PiecewiseLinear
x = '0 10000'
y = '0 1'
[../]
[./q] # this is for fuel_relocation
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
save_in_disp_z = saved_z
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3'
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable= fission_rate
block = '3'
#convert W/m from power profile to fission/m**3-s
#calculated as 1/(energy_per_fission*area)
#using energy_per_fission = 3.2e-11, consistent with 200 MeV/fission
#BWR change: use cross-sectional area for BWR fuel
value = 5.3548e+14
function = q
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = '3'
fission_rate = fission_rate
molecular_weight = 0.270
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 2.34e+13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./gas_swell]
type = MaterialRealAux
block = '3'
variable = gas_swell
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
quantity = hoop
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = linear
[../]
[./eff_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = eff_creep_strain
execute_on = timestep_end
[../]
[./hoop_creep_strain]
type = MaterialTensorAux
tensor = creep_strain
variable = hoop_creep_strain
quantity = hoop
execute_on = timestep_end
[../]
[./hoop_plastic_strain]
type = MaterialTensorAux
tensor = plastic_strain
variable = hoop_plastic_strain
quantity = hoop
execute_on = timestep_end
[../]
[./vol_strain]
type = MaterialTensorAux
tensor = total_strain
variable = volumetric_strain
quantity = FirstInvariant
execute_on = timestep_end
[../]
[./pid]
type = ProcessorIDAux
variable = pid
[../]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
penalty = 1e+14 #1e7
model = frictionless
tangential_tolerance = 5e-4
normal_smoothing_distance = 0.1
normalize_penalty = true
[../]
[]
[ThermalContact]
[./pellet_clad_thermal]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
gas_released = fis_gas_released
initial_moles = initial_moles
jump_distance_model = KENNARD
interaction_layer = 1
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
emissivity_fuel = 0.8
emissivity_clad = 0.8
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = '1004'
value = 0.0
[../]
# pin entire clad bottom in y
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
# pin fuel bottom in y
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
# wedge bcs
[./no_z_wedge]
type = DirichletBC
variable = disp_z
boundary = 99
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '2'
factor = 15.5e6
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 0.50e6
startup_time = 0.0
material_input = fis_gas_released
output_initial_moles = initial_moles
R = 8.3143
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
displacements = 'disp_x disp_y disp_z'
save_in = 'saved_x saved_y saved_z'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '2'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # PA
inlet_massflux = 3880 # kg/m^2-sec
rod_diameter = 0.95e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = '3'
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_swelling]
type = VSwellingUO2
block = '3'
temp = temp
burnup = burnup
gas_swelling_type = sifgrs
[../]
[./fuel_solid_mechanics_elastic]
type = Elastic
block = '3'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = 0.345
thermal_expansion = 10.0e-6
dep_matl_props = deltav_v0_bd
[../]
[./fuel_relocation]
type = RelocationUO2
block = '3'
burnup = burnup
diameter = 0.00836 # matches mesh
q = q
gap = 50.0e-6
relocation_activation1 = 5000
#BWR change: this probably needs to be checked to stop on contact.
burnup_relocation_stop = .0006
[../]
[./fission_gas_release]
type = Sifgrs
block = '3'
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
diff_coeff_option = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = SolidModel
block = 1
temp = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
constitutive_model = clad_combined
[../]
[./clad_growth]
type = IrradiationGrowthZr4
block = 1
fast_neutron_fluence = fast_neutron_fluence
growth_direction = 1
[../]
[./clad_combined]
type = CombinedCreepPlasticity
block = 1
temp = temp
submodels = 'clad_creep clad_plasticity'
relative_tolerance = 1e-5
[../]
[./clad_creep]
type = CreepZryModel
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_primary_creep = true
material_type = 1
[../]
[./clad_plasticity]
type = IsotropicPlasticity
block = 1
temp = temp
yield_stress = 550e6
hardening_constant = 2.5e9
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '3'
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 25.0
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_z'
off_diag_column = 'disp_z disp_x'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 25
nl_max_its = 40
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8
dtmax = 2.0e6
dtmin = 1.0
end_time = 3.0e7
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e3
optimal_iterations = 30
iteration_window = 4
time_t = '0 1e4 1e8'
time_dt = '1e4 1e6 1e6'
timestep_limiting_function = power_history
force_step_every_function_point = true
growth_factor = 2.0
cutback_factor = 0.5
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
verbose = true
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
scale_factor = 2.0 # Half-Symmetry Model Correction
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
scale_factor = 2.0 # Half-Symmetry Model Correction
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
scale_factor = 2.0 # Half-Symmetry Model Correction
[../]
[./interior_temp]
type = SideAverageValue
boundary = 7 #bws was 9
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced_model] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = '3'
[../]
[./fis_gas_produced] # Scaled PostProcessor for Half-Symmetry Model
type = ScalePostprocessor
value = fis_gas_produced_model
scaling_factor = 2.0
execute_on = 'initial timestep_end'
[../]
[./fis_gas_released_model]
type = ElementIntegralFisGasReleasedSifgrs
block = '3'
[../]
[./fis_gas_released] # Scaled PostProcessor for Half-Symmetry Model
type = ScalePostprocessor
value = fis_gas_released_model
scaling_factor = 2.0
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
outputs = exodus
[../]
[./power_history]
type = FunctionValuePostprocessor
function = power_history
[../]
[./flux_from_clad_model]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_clad] # Scaled PostProcessor for Half-Symmetry Model
type = ScalePostprocessor
value = flux_from_clad_model
scaling_factor = 2.0
execute_on = 'initial timestep_end'
[../]
[./flux_from_fuel_model]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # Scaled PostProcessor for Half-Symmetry Model
type = ScalePostprocessor
value = flux_from_fuel_model
scaling_factor = 2.0
execute_on = 'initial timestep_end'
[../]
[./dt]
type = TimestepSize
[../]
[./residual]
type = Residual
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./average_burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[../]
[./average_fissionrate]
type = ElementAverageValue
block = '3'
variable = fission_rate
[../]
[./rod_total_power_model]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3'
[../]
[./rod_total_power] # Scaled PostProcessor for Half-Symmetry Model
type = ScalePostprocessor
value = rod_total_power_model
scaling_factor = 2.0
execute_on = 'initial timestep_end'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.03 #Fuel length
[../]
[]
[Outputs]
perf_graph = true
csv = true
interval = 1
exodus = true
[./console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[../]
[]
assessment/LWR/validation/Riso_AN8/analysis/SM/Riso_AN8_sm.i
[GlobalParams]
density = 10273.9 #TD assumed: 10960
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = mesh_AN8.e
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
scaling = 1e2
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = alhr_history.csv
format = columns
[../]
[./axial_power_factors]
type = PiecewiseBilinear
data_file = axial_lhr_factors.csv
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_power_factors'
[../]
[./clad_out_temp]
type = PiecewiseLinear
data_file = temp_outer_clad_history.csv
format = columns
[../]
[./axial_temp_factors]
type = PiecewiseBilinear
data_file = axial_temp_factors.csv
axis = 1
[../]
[./clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = pressure_coolant.csv
format = columns
[../]
[./fast_flux]
type = PiecewiseLinear
data_file = fast_neutron_flux.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 4.68e-06
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
initial_condition = 0.063
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./porosity]
type = PorosityAuxUO2
block = pellet_type_1
variable = porosity
execute_on = linear
[../]
[./pelletid]
type = PelletIdAux
block = pellet_type_1
variable = pellet_id
a_lower = 0.0153
a_upper = 0.52935
number_pellets = 75
execute_on = timestep_begin
[../]
[./oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises_stress
quantity = vonmises
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./strain_zz]
type = MaterialTensorAux
tensor = total_strain
variable = strain_zz
index = 2
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
index = 0
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
disp_r = disp_x
disp_z = disp_y
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_]
type = NeutronHeatSource
variable = temp
block = pellet_type_1
fission_rate = fission_rate
save_in = saved_t
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
save_in = saved_y
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 50
bias = 0.95
num_axial = 75
a_lower = 0.0153
a_upper = 0.52935
fuel_inner_radius = 0.0
fuel_outer_radius = 4.5265e-03
i_enrich = ' 0.0295 0.9705 0.0 0.0 0.0 0.0'
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1.0e+10
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
#TODO: Add option in StandardLWRFuelRodOutputs to compute plenum temperature this way.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./no_y_fuel_all]
type = DirichletBC
variable = disp_y
boundary = 4
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.31e+06
startup_time = 0
R = 8.314
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
save_in = 'saved_x saved_y'
[../]
[../]
[]
[Materials]
[./density_fuel]
type = Density
block = pellet_type_1
[../]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.063
[../]
[./fuel_swelling]
type = VSwellingUO2
temp = temp
burnup_function = burnup
gas_swelling_type = SIFGRS
block = pellet_type_1
tensor_mechanics_compatibility = true
[../]
[./fuel_mechanics]
type = Elastic
block = pellet_type_1
temp = temp
dep_matl_props = deltav_v0_bd
youngs_modulus = 2.0e+11
poissons_ratio = 0.345
thermal_expansion = 10.0e-06
stress_free_temperature = 293.15
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = 9.053e-03
q = q
gap = 208.0e-06
burnup_relocation_stop = 0.031
relocation_activation1 = 5000
tensor_mechanics_compatibility = true
[../]
[./fission_gas_release_and_swelling]
type = Sifgrs
block = pellet_type_1
diff_coeff_option = 3
transient_option = 1
res_param_option = 0
temp = temp
fission_rate = fission_rate
burnup_function = burnup
initial_porosity = 0.063
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[../]
[./density_clad]
type = Density
block = clad
density = 6550.0
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = clad
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 1.0e+11
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
stress_free_temperature = 293.15
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temp
clad_inner_radius = 4.6305e-03
clad_outer_radius = 5.405e-03
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 200
l_tol = 1.0e-02
nl_max_its = 30
nl_rel_tol = 1e-04
nl_abs_tol = 1e-06
start_time = -100.0
n_startup_steps = 1
end_time = 103599691.0
dtmax = 1.0e+06
dtmin = 0.01
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e+02
growth_factor = 2.0
timestep_limiting_function = power_history
max_function_change = 3000.0
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[UserObjects]
[./pbz]
type = PelletBrittleZone
block = pellet_type_1
pellet_id = pellet_id
temp = temp
pellet_radius = 4.5265e-03
a_lower = 0.0153
a_upper = 0.52935
number_pellets = 75
execute_on = linear
[../]
[]
[Postprocessors]
[./alhr_input]
type = FunctionValuePostprocessor
function = power_history
[../]
[./avg_gap_conductance]
type = SideAverageValue
boundary = 10
variable = gap_cond
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet_type_1
variable = burnup
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temp
nodeid = 54 # !! Mesh dependent
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
[../]
[./midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = 1138 # !! Mesh dependent
variable = strain_zz
[../]
[./midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = 1138 # !! Mesh dependent
variable = stress_zz
[../]
[./midplane_contact_pressure]
type = ElementalVariableValue
elementid = 163 # !! Mesh dependent
variable = contact_pressure
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = pellet_type_1
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage max_fuel_temp central_fuel_temp'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/Super_Ramp/analysis/PK63/PK63.i
[GlobalParams]
density = 10420.0
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = false
initial_porosity = 0.049
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temperature'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 10
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 28
pellet_height = 0.01125
pellet_outer_radius = 4.573e-3
pellet_mesh_density = customize
nx_p = 11
ny_p = 84
clad_mesh_density = customize
nx_c = 4
ny_c = 84
clad_gap_width = 73.0e-6
clad_thickness = 0.7265e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 1.15e-2
clad_top_gap_height = 3.3e-2
ny_cu = 3
ny_cl = 3
elem_type = QUAD8
[]
[Variables]
[./temperature]
initial_condition = 293.15
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = PK6-3_power_history.csv
format = columns
[../]
[./axial_power_factors]
type = PiecewiseBilinear
data_file = PK6-3_axial_power_factors.csv
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_power_factors'
[../]
[./clad_out_temp]
type = PiecewiseLinear
data_file = PK6-3_clad_out_temp.csv
format = columns
[../]
[./axial_temp_factors]
type = PiecewiseBilinear
data_file = PK6-3_axial_temp_factors.csv
axis = 1
[../]
[./clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = PK6-3_coolant_pressure.csv
format = columns
[../]
[./fast_flux]
type = PiecewiseLinear
data_file = PK6-3_fast_flux.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = 3
initial_condition = 17.16e-6
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
block = 3
initial_condition = 0.049
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain
fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy
stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz
creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx
strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temperature
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temperature
execute_on = linear
[../]
[./porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
a_lower = 0.0125
a_upper = 0.3275
number_pellets = 28
execute_on = initial
[../]
[./oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./layered_average_contact_pressure]
type = SpatialUserObjectAux
block = 3
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = 3
execute_on = nonlinear
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 80
num_axial = 20
i_enrich = '0.02985 0.97015 0.0 0.0 0.0 0.0'
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1.0e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
formulation = KINEMATIC
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temperature
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = 5
outer_surfaces = 10
temp = temperature
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temperature
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.25e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temperature
burnup_function = burnup
initial_fuel_density = 10420
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = 3
temperature = temperature
burnup_function = burnup
grain_radius = 17.16e-6
[../]
[./fuel_stress]
type = ComputeSmearedCrackingStress
block = 3
cracking_stress = 2.5e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
linear_heat_rate_function = power_history
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = true
max_relocation_recovery_fraction = 0.5
relocation_scaling_factor = 1
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
output_properties = 'relocation_strain recovered_relocation_strain'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
diff_coeff_option = 3
transient_option = 2
res_param_option = 0
temp = temperature
fission_rate = fission_rate
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6550.0
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temperature
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
fuel_pin_geometry = pin_geometry
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-4
nl_max_its = 30
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
start_time = 0.0
n_startup_steps = 1
end_time = 76630168.0
dtmax = 1.0e6
dtmin = 1.0
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 15
iteration_window = 3
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./avg_gap_conductance]
type = SideAverageValue
boundary = 10
variable = gap_cond
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temperature
nodeid = 3110 #Mesh dependent!
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = strain_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = stress_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_clad_outer_temp]
type = NodalVariableValue
nodeid = 757 # Mesh dependent
variable = temperature
[../]
[./midplane_clad_inner_temp]
type = NodalVariableValue
nodeid = 747 # Mesh dependent
variable = temperature
[../]
[./midplane_contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 3141 # Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./total_rod_integral_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = 3
[../]
[./total_rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.315 # rod height
[../]
[./vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = TENSOR
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage central_fuel_temp midplane_contact_pressure'
execute_on = 'FINAL'
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temperature
fuel_pin_geometry = pin_geometry
number_pellets = 28
execute_on = 'initial linear'
[../]
[./layered_average_contact_pressure]
type = LayeredSideAverage
variable = contact_pressure
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[../]
[]
assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.2/TM/IFA_650_2_tm.i
[GlobalParams]
density = 10412 # 0.95TD UO2, TD=10960
temperature = temp
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = mesh_ife6502_medium2.e
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./grain_radius]
initial_condition = 5.e-06 # !! assumption
[../]
[./max_fission_rate]
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase] # Fraction of beta phase in Zry
order = CONSTANT
family = MONOMIAL
[../]
[./scale_thickness] # ZrO2 scale thickness (m)
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfract_total] # Current oxigen weight fraction (oxide+metal) (/)
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total] # Gained oxigen weight fraction (oxide+metal) (/)
order = CONSTANT
family = MONOMIAL
[../]
[./burst_stress] # Hoop stress at cladding burst
order = CONSTANT
family = MONOMIAL
[../]
[./bursted] # Did cladding burst occur?
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./average_linear_heat_rate]
type = PiecewiseLinear
data_file = linear_heat_rate_av.csv
format = columns
scale_factor = 1
[../]
[./axial_power_peaking_factors]
type = PiecewiseBilinear
data_file = axial_peaking_factors_lhr.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./q]
type = CompositeFunction
functions = 'average_linear_heat_rate axial_power_peaking_factors'
[../]
[./average_clad_outer_temperature]
type = PiecewiseLinear
data_file = temperature_clad_outer_av.csv
format = columns
scale_factor = 1
[../]
[./axial_temperature_peaking_factors]
type = PiecewiseBilinear
data_file = axial_peaking_factors_ctemp.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_outer_temperature]
type = CompositeFunction
functions = 'average_clad_outer_temperature axial_temperature_peaking_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = pressure_rig.csv
format = columns
scale_factor = 1
[../]
[]
[Modules/TensorMechanics/Master]
[./uo2nat]
block = 'pellet_type_1 pellet_type_3'
add_variables = true
strain = FINITE
incremental = true
eigenstrain_names = 'uo2nat_thermal_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
decomposition_method = EigenSolution
[../]
[./fuel]
block = pellet_type_2
add_variables = true
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_eigenstrain fuel_volumetric_swelling_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
[../]
[./clad]
block = clad
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_strain clad_irradiation_growth'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
add_variables = true
decomposition_method = EigenSolution
[../]
[]
[Kernels]
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
#save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
#save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
#save_in = saved_t
block = pellet_type_2
fission_rate = fission_rate
decay_heat_function = decay_heat_function # Couple to postprocessor which defines the decay heat function
max_fission_rate = max_fission_rate # Couple to auxvariable which defines maximum fission rate over irradiation
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_2
rod_ave_lin_pow = average_linear_heat_rate
axial_power_profile = axial_power_peaking_factors
num_radial = 80
num_axial = 11
a_lower = 28.5e-03 # mesh dependent
a_upper = 528.5e-03 # mesh dependent
fuel_inner_radius = 0.
fuel_outer_radius = 4.145e-03
fuel_volume_ratio = 1. # for use with dished pellets (ratio of actual volume to cylinder volume)
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = average_linear_heat_rate
axial_power_profile = axial_power_peaking_factors
factor = 3.e+13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_2
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./max_fission_rate]
type = MaxFissionRateAux
variable = max_fission_rate
block = pellet_type_2
fission_rate = fission_rate
execute_on = timestep_begin
[../]
[./hoop_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hoop_stress
scalar_type = HoopStress
execute_on = timestep_end
[../]
[./creep_rate]
type = MaterialRealAux
block = clad
variable = creep_rate
property = creep_rate
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./hoop_strain]
type = RankTwoScalarAux
rank_two_tensor = total_strain
variable = hoop_strain
scalar_type = HoopStress
execute_on = timestep_end
[../]
[./fract_bphase]
type = MaterialRealAux
block = clad
variable = fract_beta_phase
property = fract_beta_phase
[../]
[./scl_thickness]
type = MaterialRealAux
boundary = 2
variable = scale_thickness
property = oxide_scale_thickness
[../]
[./ofract_total]
type = MaterialRealAux
boundary = 2
variable = oxywtfract_total
property = current_oxygen_weight_frac_total
[../]
[./ofgain_total]
type = MaterialRealAux
boundary = 2
variable = oxywtfgain_total
property = oxygen_weight_frac_gained_total
[../]
[./sigmaburst]
type = MaterialRealAux
boundary = 2
variable = burst_stress
property = burst_stress
[../]
[./hasbursted]
type = MaterialRealAux
boundary = 2
variable = bursted
property = failed
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
boundary = 10
property = gap_conductance
variable = gap_cond
[../]
[./nbbl2]
type = MaterialRealAux
block = pellet_type_2
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./radbbl]
type = MaterialRealAux
block = pellet_type_2
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./stcvrg]
type = MaterialRealAux
block = pellet_type_2
variable = sat_coverage
property = sat_coverage
[../]
[./frcvrg]
type = MaterialRealAux
block = pellet_type_2
variable = GBCoverage
property = GBCoverage
[../]
[./dvv0bd]
type = MaterialRealAux
block = pellet_type_2
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
disp_x = disp_x
disp_y = disp_y
penalty = 1.e+07
[../]
[]
#TODO: Add option in StandardLWRFuelRodOutputs to compute plenum temperature this way.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = PresetBC
variable = disp_x
boundary = 12
value = 0.
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = PresetBC
variable = disp_y
boundary = 1
value = 0.
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.
[../]
[./clad_outer_temperature]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = clad_outer_temperature
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 4.e+06
startup_time = -200
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = pellet_type_2
[../]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_2
thermal_conductivity_model = FINK_LUCUTA
temp = temp
burnup_function = burnup
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_2
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = pellet_type_2
[../]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
block = pellet_type_2
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_2
temperature = temp
burnup_function = burnup
initial_porosity = 0.0468
initial_fuel_density = 10447.
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_2
burnup_function = burnup
diameter = 0.00829
linear_heat_rate_function = q
gap = 70.e-06 # diametral gap
burnup_relocation_stop = 1.e+20
eigenstrain_name = fuel_relocation_eigenstrain
relocation_activation1 = 19685.039
[../]
[./fission_gas]
type = Sifgrs
block = pellet_type_2
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup_function = burnup
transient_option = 1 #2
[../]
[./clad_density]
type = Density
block = clad
density = 6550.
[../]
[./clad_thermal]
block = clad
type = ThermalZry
temp = temp
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 300.0 #TODO: It is odd to have different values for fuel and clad, but keeping this way to match SM
eigenstrain_name = clad_thermal_strain
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = clad
youngs_modulus = 1.e+11
poissons_ratio = 0.3
[../]
[./zry_thermal_creep]
type = ZryCreepLOCAErbacherLimbackHoppeUpdate
block = clad
temperature = temp
model_irradiation_creep = false
model_primary_creep = false
model_thermal_creep = true
max_inelastic_increment = 3.e-03
#TODO: The parameters below really should be provided, but they weren't specified in the SM model.
# They may have not been included because irradiation creep wasn't modeled. However, they are used in the thermal
# creep model as well.
# fast_neutron_flux = fast_neutron_flux
# fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'zry_thermal_creep'
block = clad
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = ESCORE_IrradiationGrowthZr4
eigenstrain_name = clad_irradiation_growth
[../]
[./clad_phase]
type = ZrPhase
block = clad
temperature = temp
numerical_method = 2
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temp
clad_inner_radius = 4.18e-03
clad_outer_radius = 4.75e-03
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
#use_coolant_channel = true
[../]
[./clad_failure_criterion]
type = ZryCladdingFailure
boundary = 2
failure_criterion = combined_overstress_and_plastic_instability
hoop_stress = hoop_stress
effective_strain_rate_creep = creep_rate
#eff_strain_rate_plast =
fraction_beta_phase = fract_beta_phase
fraction_oxygen_gain = oxywtfract_total
temperature = temp
[../]
[./uo2nat_thermal]
type = HeatConductionMaterial
block = 'pellet_type_1 pellet_type_3'
thermal_conductivity = 3. # !! assumption
specific_heat = 300. # !! assumption
[../]
[./uo2nat_density]
type = Density
block = 'pellet_type_1 pellet_type_3'
[../]
[./uo2nat_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 'pellet_type_1 pellet_type_3'
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = uo2nat_thermal_strain
[../]
[./uo2nat_elasticity_tensor]
type = UO2ElasticityTensor
block = 'pellet_type_1 pellet_type_3'
[../]
[./uo2nat_stress]
type = ComputeFiniteStrainElasticStress
block = 'pellet_type_1 pellet_type_3'
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1.e-05
variable = disp_x
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1.e-02
nl_max_its = 15
nl_rel_tol = 1.e-04
nl_abs_tol = 1.e-10
start_time = -200
n_startup_steps = 1
end_time = 229440
dtmax = 2700. #1000.
dtmin = 0.00000001
[./TimeStepper]
type = IterationAdaptiveDT
dt = 200.
#optimal_iterations = 4
#iteration_window = 2
#linear_iteration_ratio = 100
timestep_limiting_function = average_clad_outer_temperature
max_function_change = 10
timestep_limiting_postprocessor = material_timestep
time_t = '-200. 0. 3.5e+04 216000. 218700. 219180. 219240. 219799. 219819. 219821. 219999.'
time_dt = ' 200. 900. 2700. 2700. 60. 60. 20. 20.
10. 10. 2.'
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'bursted > 0'
[../]
[]
[Postprocessors]
[./decay_heat_function]
type = DecayHeatFunction
time_at_shutdown = 100000001.
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
value_type = max
variable = temp
block = clad
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
value_type = max
variable = temp
block = pellet_type_2
execute_on = 'initial timestep_end'
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temp
nodeid = 54 # Global node ID = 55 !! Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on = 'initial linear'
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on = 'initial linear'
[../]
[./alhr_input]
type = FunctionValuePostprocessor
function = average_linear_heat_rate
[../]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = clad
[../]
[./max_betaph_fract]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
block = clad
execute_on = 'initial timestep_end'
[../]
[./max_oxygen_fract]
type = ElementExtremeValue
block = clad
value_type = max
variable = oxywtfract_total
execute_on = 'initial timestep_end'
[../]
[./max_oxygen_fgain]
type = ElementExtremeValue
block = clad
value_type = max
variable = oxywtfgain_total
execute_on = 'initial timestep_end'
[../]
[./max_creep_rate]
type = ElementExtremeValue
value_type = max
variable = creep_rate
block = clad
execute_on = 'initial timestep_end'
[../]
[./max_creep_strain_mag]
type = ElementExtremeValue
value_type = max
variable = creep_strain_mag
block = clad
execute_on = 'initial timestep_end'
[../]
[./max_hoop_strain]
type = ElementExtremeValue
value_type = max
variable = hoop_strain
block = clad
execute_on = 'initial timestep_end'
[../]
[./max_hoop_stress]
type = ElementExtremeValue
value_type = max
variable = hoop_stress
block = clad
execute_on = 'initial timestep_end'
[../]
[./bursted]
type = ElementExtremeValue
value_type = max
variable = bursted
block = clad
execute_on = 'initial timestep_end'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_2
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
print_linear_residuals = true
csv = true
[./console]
type = Console
output_linear = true
max_rows = 25
[../]
[./out_vector_pp]
execute_vector_postprocessors_on = 'timestep_end'
type = CSV
[../]
[]
assessment/LWR/validation/RIA_CABRI_REP_Na4/analysis/REP_Na_4/REP_Na_4_tm.i
# REP Na 4 Rodlet Base Irradiation
[GlobalParams]
density = 10476.35 # assumed TD = 10970
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
acceptable_iterations = 30
acceptable_multiplier = 5
[]
[Mesh]
file = REP_Na4.e
patch_size = 40
#patch_update_strategy = auto
#partitioner = centroid
#centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.15
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
clad_inner_wall = 5
clad_outer_wall = 2
clad_top = 3
clad_bottom = 1
pellet_exteriors = 8
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = 'clad'
[../]
[./fast_neutron_fluence]
block = 'clad'
[../]
[./grain_radius]
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
initial_condition = 5.0e-6 # Assume Grain size 10 microns
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fuel_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./swelling_strain]
order = CONSTANT
family = MONOMIAL
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_plastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_plastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_elastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_elastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_htype]
order = CONSTANT
family = MONOMIAL
[../]
[./critical_heat_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 'clad'
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
block = 'clad'
[../]
[./oxywtfract_total]
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = REPNa4_power_history_Full.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = REPNa4_axial_peaking_Full.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # inlet coolant pressure evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 101325
8640 15499970
124675200 15499970
124718400 101325
125193600 101325
125193610 101325
125193650 500008
125193700 500008
125193900 500008
125194000 101325
125194100 101325'
[../]
[./temp_ramp] # inlet coolant temp evolution
type = PiecewiseLinear
format = columns
scale_factor = 0.985
xy_data = '0 293.15
8640 591
20476800 591
21859200 600
47692800 600
51840000 593
72144000 593
73440000 586
96940800 586
99360000 583
124675200 583
124761600 293.15
125193600 293.15
125193650 553.15
125193900.0 553.150
125194000.0 293.150
125194100.0 293.150'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./burnup_GWd]
type = ParsedFunction
value = bu*950
vars = 'bu'
vals = 'average_burnup'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 'clad'
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz plastic_strain_xx plastic_strain_yy plastic_strain_zz creep_strain_xx creep_strain_yy creep_strain_zz elastic_strain_xx elastic_strain_yy elastic_strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.5678974
a_lower = 0.0045
fuel_inner_radius = 0
fuel_outer_radius = 0.0040959
fuel_volume_ratio = 1
i_enrich = '0.0449 0.9551 0 0 0 0'
RPF = RPF
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_profile
factor = 3e13 #n/m2-s
block = 'clad'
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
block = 'clad'
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./fuel_conductance]
type = MaterialRealAux
property = thermal_conductivity
variable = fuel_cond
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
[../]
[./swelling_strain]
type = MaterialRealAux
property = volumetric_swelling_strain
variable = swelling_strain
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
[../]
[./vonmises_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises_stress
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hoop_stress]
type = RankTwoAux
rank_two_tensor = stress
variable = hoop_stress
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./axial_stress]
type = RankTwoAux
rank_two_tensor = stress
variable = axial_stress
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./hoop_creep_strain]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = hoop_creep_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = 'clad'
[../]
[./axial_creep_strain]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = axial_creep_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = 'clad'
[../]
[./hoop_plastic_strain]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = hoop_plastic_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = 'clad'
[../]
[./axial_plastic_strain]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = axial_plastic_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = 'clad'
[../]
[./total_hoop_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_hoop_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = 'clad'
[../]
[./total_axial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_axial_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = 'clad'
[../]
[./hoop_elastic_strain]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = hoop_elastic_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = 'clad'
[../]
[./axial_elastic_strain]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = axial_elastic_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = 'clad'
[../]
[./creep_strain_mag]
type = RankTwoScalarAux
rank_two_tensor = creep_strain
variable = creep_strain_mag
scalar_type = EffectiveStrain
execute_on = timestep_end
block = 'clad'
[../]
[./plastic_strain_mag]
type = RankTwoScalarAux
rank_two_tensor = plastic_strain
variable = plastic_strain_mag
scalar_type = EffectiveStrain
execute_on = timestep_end
block = 'clad'
[../]
[./clad_coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = clad_coolant_htc
boundary = 2
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = 2
[../]
[./clad_coolant_flux]
type = MaterialRealAux
property = output_heat_flux
variable = clad_coolant_flux
boundary = 2
[../]
[./coolant_channel_hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = coolant_channel_hmode
boundary = 2
[../]
[./coolant_channel_htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = coolant_channel_htype
boundary = 2
[../]
[./critical_heat_flux]
type = MaterialRealAux
property = critical_heat_flux
variable = critical_heat_flux
boundary = 2
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
[../]
[./ofract_total]
type = MaterialRealAux
property = current_oxygen_weight_frac_total
variable = oxywtfract_total
execute_on = timestep_end
boundary = 2
[../]
[./ofgain_total]
type = MaterialRealAux
property = oxygen_weight_frac_gained_total
variable = oxywtfgain_total
execute_on = timestep_end
boundary = 2
[../]
[./fract_bphase]
type = MaterialRealAux
property = fract_beta_phase
variable = fract_beta_phase
block = 'clad'
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 210 #10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 10.0
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[./pellet_clad_mechanical_2]
master = 5
slave = 410
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.0
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2.0e-6
roughness_clad = 0.5e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
emissivity_fuel = 0.800 #Emissivity for fuel
emissivity_clad = 0.325 #Emissivity for clad
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 125107200
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_coef = 20 #10 default
[../]
[]
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_temperature = 293.15
initial_pressure = 2.60e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior #plenumTemp
volume = gas_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
# save_in = 'saved_x saved_y'
refab_time = 125107200
refab_pressure = 0.301e6
refab_temperature = 293.15
refab_volume = 2.0e-6
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface_water] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp # K
inlet_pressure = pressure_ramp # Pa
inlet_massflux = 3244.044104 # kg/m^2-sec
rod_diameter = 0.00951 # m
rod_pitch = 1.26e-2 # m
coolant_material = 'water'
compute_enthalpy = true
oxide_thickness = oxide_thickness # coupled oxide_thickness
number_axial_zone = 50
[../]
#
# [./convective_clad_surface_sodium] # apply convective boundary to clad outer surface
# boundary = '1 2 3'
# variable = temp
# inlet_temperature = temp_ramp # K
# inlet_pressure = pressure_ramp # Pa
# inlet_massflux = 3533 # kg/m^2-sec Based on flow rate provided and flow area and estimated density of 885.1 kg/m^3
# flow_area = 8.74855e-5 #m^2
# heated_diameter = 1.172526e-2 #m
# hydraulic_diameter = 4.7e-3 #m
# heated_perimeter = 2.984513e-2 #m
# coolant_material = 'sodium'
# compute_enthalpy = true
# heat_transfer_mode = 0
# oxide_thickness = oxide_thickness # coupled oxide_thickness
# number_axial_zone = 50
# rod_diameter = 0.0095 # m
# htc_correlation_type = 2
# [../]
[]
[Materials]
[./fuel_density]
type = Density
#density = 10476.35
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
[../]
[./fuel_thermal]
type = ThermalFuel
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.045
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
matpro_poissons_ratio = 1
matpro_youngs_modulus = 1
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
[../]
[./fuel_thermal_expansion]
type = UO2ThermalExpansionMATPROEigenstrain
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
temperature = temp
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
burnup_function = burnup
linear_heat_rate_function = q
relocation_activation1 = 5000
burnup_relocation_stop = 0.0208
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = 'pin_geometry'
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
temperature = temp
burnup_function = burnup
initial_fuel_density = 10476.35
total_densification = 0.00675
initial_porosity = 0.045
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
temp = temp
fission_rate = fission_rate
burnup_function = burnup
initial_porosity = 0.045
grain_radius = grain_radius
gbs_model = true
transient_option = 0
[../]
[./clad_density]
type = Density
block = 'clad'
density = 6550
[../]
[./clad_thermal]
type = ThermalZry
block = 'clad'
temp = temp
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
temperature = temp
matpro_poissons_ratio = true
matpro_youngs_modulus = true
cold_work_factor = 0.5
fast_neutron_fluence = fast_neutron_fluence
block = 'clad'
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep clad_zryplasticity'
block = 'clad'
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = 'clad'
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
creeprate_scale_factor = 1
model_irradiation_creep = 1
model_primary_creep = 1
model_thermal_creep = 1
max_inelastic_increment = 0.0002
[../]
[./clad_zryplasticity]
type = ZryPlasticityUpdate
block = 'clad'
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
plasticity_model_type = MATPRO
zircaloy_alloy_type = 4
max_inelastic_increment = 0.0002
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 'clad'
temperature = temp
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = 'clad'
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.00417789
clad_outer_radius = 0.00475615
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
oxygen_weight_fraction_initial = 0.0012
[../]
[./phase]
type = ZrPhase
block = 'clad'
numerical_method = 2
temperature = temp
[../]
[./StrainEnergyDensity]
type = StrainEnergyDensity
block = 'clad'
incremental = 1
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
max_value = 3200 # The maximum permissible iterative value for the variable.
min_value = 200 # The minimum permissible iterative value for the variable.
variable = temp # The name of the variable that this damper operates on
[../]
[./contact_slip]
type = ContactSlipDamper
master = 5
slave = 10
min_damping_factor = 0.05
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
#full = true
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'contact'
contact_line_search_allowed_lambda_cuts = 0
contact_line_search_ltol = 0.5
verbose = true
l_max_its = 100
l_tol = 1e-3
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = 0
end_time = 125193600 #125194100 is the end time for the RIA
dtmax = 1e6
dtmin = 1e-7
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e3
optimal_iterations = 100
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
max_function_change = 1e6
force_step_every_function_point = true
timestep_limiting_postprocessor = material_timestep
time_t = '125193610 125193620 125193630 125193640 125193650 125193660 125193670 125193680'
time_dt = '10 10 10 10 10 10 10 10'
growth_factor = 5
[../]
[./Quadrature]
order = FIFTH #SEVENTH
side_order = SEVENTH #Comment out if order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9 #For RIA the node number is ##***8479***##
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = 'clad'
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = 'clad'
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
outputs = exodus
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./1_rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./average_burnup]
type = ElementAverageValue
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
variable = burnup
[../]
[./3_burnup_GWd]
type = FunctionValuePostprocessor
function = burnup_GWd
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = 'clad'
variable = vonmises_stress
[../]
[./z_average_RPF]
type = ElementAverageValue
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
variable = RPF
[../]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = 'clad'
[../]
## Nodal values
[./FCT] #fuel centerline temperature
type = NodalVariableValue
variable = temp
nodeid = 3866 #(0, 0.303375, 0)
[../]
[./FST] #fuel surface temperature
type = NodalVariableValue
variable = temp
nodeid = 3823 #(0.0040959, 0.303375, 0)
[../]
[./CIST] #clad inner surface temperature
type = NodalVariableValue
variable = temp
nodeid = 9557 #(0.0041779, 0.305106, 0)
[../]
[./COST] #clad outer surface temperature
type = NodalVariableValue
variable = temp
nodeid = 9547 #(0.00475615, 0.305106, 0)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 3823 #(0.0040959, 0.303375, 0)
use_displaced_mesh = true
[../]
#######################################
[./qpoint_penetration] #FOCE
type = ElementalVariableValue
variable = qpoint_penetration
elementid = 1200
use_displaced_mesh = 1
[../]
[./penetration] #FOCN
type = NodalVariableValue
variable = penetration
nodeid = 3823
use_displaced_mesh = 1
[../]
[./contact_pressure] #FOCN
type = NodalVariableValue
variable = contact_pressure
nodeid = 3823
use_displaced_mesh = 1
[../]
[./gap_cond] #FOCE
type = ElementalVariableValue
variable = gap_cond
elementid = 1200
use_displaced_mesh = 1
[../]
[./creep_hoop_strain] #COCE
type = ElementalVariableValue
variable = hoop_creep_strain
elementid = 2981
use_displaced_mesh = 1
[../]
[./elastic_hoop_strain] #COCE
type = ElementalVariableValue
variable = hoop_elastic_strain
elementid = 2981
use_displaced_mesh = 1
[../]
[./plastic_hoop_strain] #COCE
type = ElementalVariableValue
variable = hoop_plastic_strain
elementid = 2981
use_displaced_mesh = 1
[../]
[./total_hoop_strain] #COCE
type = ElementalVariableValue
variable = total_hoop_strain
elementid = 2981
use_displaced_mesh = 1
[../]
[./clad_hoop_stress] #COCE
type = ElementalVariableValue
variable = hoop_stress
elementid = 2981
use_displaced_mesh = 1
[../]
[./clad_axial_elongation] #COTN
type = NodalVariableValue
variable = disp_y
nodeid = 10755
use_displaced_mesh = 1
[../]
[./clad_oxide_thickness] #COCE
type = ElementalVariableValue
variable = oxide_thickness
elementid = 2981
use_displaced_mesh = 1
[../]
[./clad_coolant_htc] #COCE
type = ElementalVariableValue
variable = clad_coolant_htc
elementid = 2981
use_displaced_mesh = 1
[../]
[./coolant_temp] #COCE
type = ElementalVariableValue
variable = coolant_temp
elementid = 2981
use_displaced_mesh = 1
[../]
[./clad_coolant_flux] #COCE
type = ElementalVariableValue
variable = clad_coolant_flux
elementid = 2981
use_displaced_mesh = 1
[../]
[./coolant_channel_hmode] #COCE
type = ElementalVariableValue
variable = coolant_channel_hmode
elementid = 2981
use_displaced_mesh = 1
[../]
[./coolant_channel_htype] #COCE
type = ElementalVariableValue
variable = coolant_channel_htype
elementid = 2981
use_displaced_mesh = 1
[../]
[./critical_heat_flux] #COCE
type = ElementalVariableValue
variable = critical_heat_flux
elementid = 2981
use_displaced_mesh = 1
[../]
[./fuel_centerline_temp] #FICN
type = NodalVariableValue
variable = temp
nodeid = 3866
[../]
[./fuel_surface_temp] #FOCN
type = NodalVariableValue
variable = temp
nodeid = 3823
[../]
[./clad_inner_surface_temp] #CICN
type = NodalVariableValue
variable = temp
nodeid = 9557
[../]
[./clad_outer_surface_temp] #COCN
type = NodalVariableValue
variable = temp
nodeid = 9547
[../]
[./fuel_axial_elongation] #FOTN
type = NodalVariableValue
variable = disp_y
nodeid = 7739
[../]
[./clad_radial_elongation] #COCN
type = NodalVariableValue
variable = disp_x
nodeid = 9547
[../]
[./fuel_radial_elongation] #FOCN
type = NodalVariableValue
variable = disp_x
nodeid = 3823
[../]
[./SED_PPN_O] #COCE
type = ElementalVariableValue
variable = SED
elementid = 2981
use_displaced_mesh = 1
[../]
[./SED_PPN_I] #CICE
type = ElementalVariableValue
variable = SED
elementid = 2984
use_displaced_mesh = 1
[../]
[./zz_OFract_PPN_O] #COCE
type = ElementalVariableValue
variable = oxywtfract_total
elementid = 2981
use_displaced_mesh = 1
[../]
[./zz_OGain_PPN_O] #COCE
type = ElementalVariableValue
variable = oxywtfgain_total
elementid = 2981
use_displaced_mesh = 1
[../]
#######################################
[./max_clad_SED]
type = ElementExtremeValue
block = 'clad'
variable = SED
value_type = max
[../]
#Post processor to calculate radial average enthalpy. This postprocessor isnt available yet in BISON
[./z_RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_clad_diameter'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_pellet_diameter'
[../]
#Location of peak power node at appoximately 0.3 m in mesh
[./rad_temp]
type = LineValueSampler
end_point = '0.0040959 0.3 0.0'
start_point = '0.0 0.3 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = 'outfile_radial_temp'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 'pellet_type_1 pellet_type_2 pellet_type_3'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
interval = 1
csv = true
#exodus = true
color = false
[./outfile_clad_diameter]
type = CSV
sync_times = '125194100'
sync_only = true
[../]
[./outfile_pellet_diameter]
type = CSV
sync_times = '125194100'
sync_only = true
[../]
[./outfile_radial_temp]
type = CSV
end_time = -100000
[../]
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'ave_temp_interior fission_gas_released FCT average_burnup'
execute_on = 'FINAL'
[../]
[./exodus]
type = Exodus
interval = 4
end_time = 125193700
[../]
[./exodus_RIA]
type = Exodus
interval = 3
start_time = 125193695
[../]
[./checkpoint_RIA]
type = Checkpoint
file_base = recover_files_RIA
sync_times = '124761600 125107200 125193600 125193650 125193700 125193700.06 125193700.07 125193700.08 125193700.09 125193700.10 125193700.20 125193700.30 125193700.40 125193700.50 125193700.60 125193700.70 125193700.80 125193700.90 125193701.00 125193701.25 125193701.50 125193701.75 125193702.00 125193702.25 125193702.50 125193702.75 125193703.00 125193704.00 125193705.00'
sync_only = true
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
show_material_props = true
[]
assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_2/REP_Na_2_tm.i
# REP Na 2 Base Irradiation
[GlobalParams]
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 30
acceptable_multiplier = 10
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
nx_p = 11
ny_p = 336
ny_cu = 3
ny_c = 350
ny_cl = 3
nx_c = 4
clad_thickness = 0.000637
pellet_outer_radius = 0.0040248
pellet_quantity = 84
pellet_height = 0.0119888
clad_top_gap_height = 0.041077
clad_bot_gap_height = 0.003
clad_gap_width = 93.0e-6
top_bot_clad_height = 0.0015
elem_type = QUAD8
patch_size = 40
[]
[Variables]
[./temp]
initial_condition = 293.15
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5.0e-6
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fuel_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./swelling_strain]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_plastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_plastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_elastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_elastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_htype]
order = CONSTANT
family = MONOMIAL
[../]
[./critical_heat_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./plastic_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./oxywtfract_total]
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = REPNa2_power_history.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = REPNa2_axial_peaking.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
format = columns
xy_data = '0 101325
8640 13999808
57067200 13999808
57110400 101325
57542410 101325
57542450 500008
57542700 500008
57542800 101325
57542900 101325'
[../]
[./temp_ramp]
type = PiecewiseLinear
format = columns
xy_data = '0 293.15
8640 543.15
57067200 543.15
57110400 293.15
57542410 293.15
57542450 553.15
57542700 553.15
57542800 293.15
57542900 293.15'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./Fuel_CTE_function] #Fuel CTE as a function of temp from MATPRO data
type = PiecewiseLinear
format = columns
xy_data = ' 0 1.000E-05
300 1.000E-05
350 1.000E-05
400 1.000E-05
450 1.000E-05
500 1.001E-05
550 1.002E-05
600 1.003E-05
650 1.005E-05
700 1.008E-05
750 1.011E-05
800 1.015E-05
850 1.020E-05
900 1.026E-05
950 1.032E-05
1000 1.039E-05
1050 1.046E-05
1100 1.053E-05
1150 1.061E-05
1200 1.069E-05
1250 1.077E-05
1300 1.085E-05
1350 1.094E-05
1400 1.102E-05
1450 1.111E-05
1500 1.119E-05
1550 1.127E-05
1600 1.135E-05
1650 1.143E-05
1700 1.151E-05
1750 1.158E-05
1800 1.166E-05
1850 1.173E-05
1900 1.180E-05
1950 1.187E-05
2000 1.193E-05
2050 1.199E-05
2100 1.205E-05
2150 1.211E-05
2200 1.217E-05
2250 1.222E-05
2300 1.227E-05
2350 1.232E-05
2400 1.237E-05
2450 1.242E-05
2500 1.246E-05
2550 1.250E-05
2600 1.254E-05
2650 1.258E-05
2700 1.262E-05
2750 1.265E-05
2800 1.268E-05
2850 1.271E-05
2900 1.274E-05
2950 1.277E-05
3000 1.280E-05
3050 1.282E-05
3100 1.285E-05'
[../]
[./burnup_GWd]
type = ParsedFunction
value = bu*950
vars = 'bu'
vals = 'average_burnup'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
[../]
[./clad]
block = 1
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
density = 10344.71
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 85
a_upper = 1.0115592
a_lower = 0.0045
fuel_inner_radius = 0
fuel_outer_radius = 0.0040248
fuel_volume_ratio = 1
i_enrich = '0.0685 0.9315 0 0 0 0'
RPF = RPF
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_profile
factor = 3e13 #n/m2-s
block = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
block = 1
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./fuel_conductance]
type = MaterialRealAux
property = thermal_conductivity
variable = fuel_cond
block = 3
[../]
[./swelling_strain]
type = MaterialRealAux
property = volumetric_swelling_strain
variable = swelling_strain
block = 3
[../]
[./vonmises_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises_stress
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hoop_stress]
type = RankTwoAux
rank_two_tensor = stress
variable = hoop_stress
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./axial_stress]
type = RankTwoAux
rank_two_tensor = stress
variable = axial_stress
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./hoop_creep_strain]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = hoop_creep_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = 1
[../]
[./axial_creep_strain]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = axial_creep_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = 1
[../]
[./hoop_plastic_strain]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = hoop_plastic_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = 1
[../]
[./axial_plastic_strain]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = axial_plastic_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = 1
[../]
[./total_hoop_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_hoop_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = 1
[../]
[./total_axial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_axial_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = 1
[../]
[./hoop_elastic_strain]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = hoop_elastic_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = 1
[../]
[./axial_elastic_strain]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = axial_elastic_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = 1
[../]
[./creep_strain_mag]
type = RankTwoScalarAux
rank_two_tensor = creep_strain
variable = creep_strain_mag
scalar_type = EffectiveStrain
execute_on = timestep_end
[../]
[./plastic_strain_mag]
type = RankTwoScalarAux
rank_two_tensor = plastic_strain
variable = plastic_strain_mag
scalar_type = EffectiveStrain
execute_on = timestep_end
block = 1
[../]
[./clad_coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = clad_coolant_htc
boundary = 2
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = 2
[../]
[./clad_coolant_flux]
type = MaterialRealAux
property = output_heat_flux
variable = clad_coolant_flux
boundary = 2
[../]
[./coolant_channel_hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = coolant_channel_hmode
boundary = 2
[../]
[./coolant_channel_htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = coolant_channel_htype
boundary = 2
[../]
[./critical_heat_flux]
type = MaterialRealAux
property = critical_heat_flux
variable = critical_heat_flux
boundary = 2
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[./ofract_total]
type = MaterialRealAux
property = current_oxygen_weight_frac_total
variable = oxywtfract_total
execute_on = timestep_end
boundary = 2
[../]
[./ofgain_total]
type = MaterialRealAux
property = oxygen_weight_frac_gained_total
variable = oxywtfgain_total
execute_on = timestep_end
boundary = 2
[../]
[./fract_bphase]
type = MaterialRealAux
property = fract_beta_phase
variable = fract_beta_phase
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
formulation = penalty
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2.0e-6
roughness_clad = 0.5e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
emissivity_fuel = 0.797698
emissivity_clad = 0.325
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 57456000
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_temperature = 293.15
initial_pressure = 1.70e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 57456000
refab_pressure = 0.1e6
refab_temperature = 293.15
refab_volume = 2.3e-6
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface_water]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp # K
inlet_pressure = pressure_ramp # Pa
inlet_massflux = 1779 # kg/m^2-sec
rod_diameter = 0.0095096 # m
rod_pitch = 1.265e-2 # m
coolant_material = 'water'
compute_enthalpy = true
oxide_thickness = oxide_thickness
#number_axial_zone = 50 ##Turned off to make the input consistent with 1.5D case
[../]
[]
[Materials]
[./fuel_density]
type = Density
density = 10344.71
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.057
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeInstantaneousThermalExpansionFunctionEigenstrain
block = 3
thermal_expansion_function = Fuel_CTE_function
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0080496
linear_heat_rate_function = q
gap = 186.0e-6 #diametral gap
relocation_activation1 = 5000
burnup_relocation_stop = 0.024
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
temperature = temp
burnup_function = burnup
initial_fuel_density = 10344.71
total_densification = 0.00676
initial_porosity = 0.057
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
initial_porosity = 0.057
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = 1
density = 6550
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
cold_work_factor = 0.5
fast_neutron_fluence = fast_neutron_fluence
block = 1
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep clad_zryplasticity'
block = 1
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = 1
max_inelastic_increment = 1.0e-4
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_zryplasticity]
type = ZryPlasticityUpdate
block = 1
cold_work_factor = 0.5
max_inelastic_increment = 1.0e-4
fast_neutron_fluence = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
plasticity_model_type = MATPRO
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0041178
clad_outer_radius = 0.0047549
use_coolant_channel = true
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_phase]
type = ZrPhase
block = 1
numerical_method = 2
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
[./contact_slip]
type = ContactSlipDamper
master = 5
slave = 10
min_damping_factor = 0.05
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1e-3
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = 0
end_time = 57542400
dtmax = 1e6
dtmin = 1e-7
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e3
optimal_iterations = 10
iteration_window = 4
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
max_function_change = 1e6
force_step_every_function_point = true
timestep_limiting_postprocessor = material_timestep_control
time_t = '57542410 57542420 57542430 57542440 57542450 57542460 57542470 57542480'
time_dt = '10 10 10 10 10 10 10 10'
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = 1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = 1
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 1.05114 # rod height
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./burnup_GWd]
type = FunctionValuePostprocessor
function = burnup_GWd
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = 3
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = 1
variable = vonmises_stress
[../]
[./material_timestep_control]
type = MaterialTimeStepPostprocessor
block = 1
[../]
## Nodal values
[./FCT] #fuel centerline temperature
type = NodalVariableValue
variable = temp
nodeid = 11699 #(0, 0.558982, 0)
[../]
[./FST] #fuel surface temperature
type = NodalVariableValue
variable = temp
nodeid = 11730 #(0.0040248, 0.558982, 0)
[../]
[./CIST] #clad inner surface temperature
type = NodalVariableValue
variable = temp
nodeid = 2766 #(0.0041178, 0.558602, 0)
[../]
[./COST] #clad outer surface temperature
type = NodalVariableValue
variable = temp
nodeid = 2774 #(0.0047548, 0.558602, 0)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 11730 #(0.0040248, 0.558982, 0)
use_displaced_mesh = true
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 11730 #(0.0040248, 0.558982, 0)
use_displaced_mesh = true
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_clad_diameter'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_pellet_diameter'
[../]
[./ox_thick]
type = SideValueSampler
variable = oxide_thickness
boundary = 2
sort_by = y
outputs = 'outfile_oxide_thickness'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
interval = 1
csv = true
color = false
[./outfile_clad_diameter]
type = CSV
sync_times = '57542400 57542900'
sync_only = true
[../]
[./outfile_pellet_diameter]
type = CSV
sync_times = '57542400 57542900'
sync_only = true
[../]
[./outfile_oxide_thickness]
type = CSV
sync_times = '57542400 57542900'
sync_only = true
[../]
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
sync_times = '57542400'
sync_only = true
[../]
[./chkfile]
type = CSV
show = 'plenum_temperature fission_gas_released_percentage FCT average_burnup'
execute_on = 'FINAL'
[../]
[./exodus]
type = Exodus
interval = 4
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
show_material_props = true
[]
assessment/LWR/validation/RE_Ginna_Rodlets/analysis/RE_Ginna_rodlet-4/RE_Ginna_rodlet_4.i
[GlobalParams]
density = 10321.2 #94% TD = 10980
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = rodlet4_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 10.0e-6 # 2D grain radius 10.0e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = rodlet4_power.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = rodlet4_axial_peaking.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 115273407.3 115273767.3'
y = '0.006533 1 1 0.006533'
[../]
[./flux]
type = PiecewiseLinear
data_file = rodlet4_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_temp_bc]
type = PiecewiseBilinear
data_file = rodlet4_clad_bc.csv
axis = 1
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises_stress]
type = MaterialTensorAux
tensor = stress
variable = vonmises_stress
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_zz]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_zz
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00324
a_upper = 0.545022
fuel_inner_radius = 0.001407
fuel_outer_radius = 0.0044515
i_enrich = '0.037 .963 0 0 0 0' # 3.7% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.1e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
stress_free_temperature = 293.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
model_volumetric_scaling = false # this defaults to true and was set to false for SM-TM comparisons
burnup_function = burnup
diameter = 0.008903
gap = 1.9e-4
q = q
burnup_relocation_stop = 0.0204
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
stress_free_temperature = 293.0
model_irradiation_growth = true
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
model_thermal_expansion = false
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 115273767.3
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = 1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = 1
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.541782 # rod height
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = 3
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = 1
variable = vonmises_stress
[../]
## Nodal comparison values
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 1211 # coords (0.001407, 0.300689)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 1188 #coords (0.0044515, 0.300689)
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 1188 #coords (0.0044515, 0.300689)
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = '3'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM071/TM/BFM071_tm.i
################################################################################
#
# Description: Calvert Cliffs BFM071
#
#
#
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFM071_power.csv
# axial peaking factor file BFM071_axial_peaking.csv
# flux boundary condition file BFM071_fast_flux.csv
################################################################################
[GlobalParams]
density = 10386.93 #94.662 %TD Assume TD = 10972.65 kg/cm3
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.31727
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 3.85e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFM071_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFM071_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 178956096 178956456'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 178956096 178956456'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFM071_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155 # m
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0095631 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 190.5e-6 #diametral gap in m
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10386.93
total_densification = 0.01
initial_porosity = 0.05
eigenstrain_name = fuel_volumetric_strain
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 178956456
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Super_Ramp/analysis/PK12/PK12.i
[GlobalParams]
density = 10360.0
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = false
initial_porosity = 0.054
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temperature'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 10
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 28
pellet_height = 0.011143
pellet_outer_radius = 4.555e-3
pellet_mesh_density = customize
nx_p = 11
ny_p = 84
clad_mesh_density = customize
nx_c = 4
ny_c = 84
clad_gap_width = 100.0e-6
clad_thickness = 0.725e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 15.5e-3
clad_top_gap_height = 32.2e-3
ny_cu = 3
ny_cl = 3
elem_type = QUAD8
[]
[Variables]
[./temperature]
initial_condition = 293.15
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = alhr_history.csv
format = columns
[../]
[./axial_power_factors]
type = PiecewiseBilinear
data_file = axial_lhr_factors.csv
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_power_factors'
[../]
[./clad_out_temp]
type = PiecewiseLinear
data_file = temp_outer_clad_history.csv
format = columns
[../]
[./axial_temp_factors]
type = PiecewiseBilinear
data_file = axial_temp_factors.csv
axis = 1
[../]
[./clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = pressure_coolant.csv
format = columns
[../]
[./fast_flux]
type = PiecewiseLinear
data_file = fast_neutron_flux.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = 3
initial_condition = 4.68e-6
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
block = 3
initial_condition = 0.054
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain
fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy
stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz
creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx
strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temperature
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temperature
execute_on = linear
[../]
[./porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
a_lower = 0.0165
a_upper = 0.328504
number_pellets = 28
execute_on = initial
[../]
[./oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./layered_average_contact_pressure]
type = SpatialUserObjectAux
block = 3
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = 3
execute_on = nonlinear
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 80
num_axial = 20
i_enrich = '0.032 0.968 0.0 0.0 0.0 0.0'
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1.0e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
formulation = KINEMATIC
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temperature
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = 5
outer_surfaces = 10
temp = temperature
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temperature
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.25e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temperature
burnup_function = burnup
initial_fuel_density = 10360
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = 3
temperature = temperature
burnup_function = burnup
grain_radius = 4.68e-6
[../]
[./fuel_stress]
type = ComputeSmearedCrackingStress
block = 3
cracking_stress = 1.68e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
linear_heat_rate_function = power_history
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = true
max_relocation_recovery_fraction = 0.5
relocation_scaling_factor = 1
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
output_properties = 'relocation_strain recovered_relocation_strain'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
diff_coeff_option = 3
transient_option = 2
res_param_option = 0
temp = temperature
fission_rate = fission_rate
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6550.0
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temperature
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
fuel_pin_geometry = pin_geometry
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-4
nl_max_its = 30
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
start_time = 0.0
n_startup_steps = 1
end_time = 75918708.0
dtmax = 1.0e6
dtmin = 1.0
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 15
iteration_window = 3
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./avg_gap_conductance]
type = SideAverageValue
boundary = 10
variable = gap_cond
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temperature
nodeid = 3110 #Mesh dependent!
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = strain_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = stress_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 3141 # Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./total_rod_integral_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = 3
[../]
[./total_rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.376004 # rod height
[../]
[./vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = TENSOR
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage central_fuel_temp midplane_contact_pressure'
execute_on = 'FINAL'
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temperature
fuel_pin_geometry = pin_geometry
number_pellets = 28
execute_on = 'initial linear'
[../]
[./layered_average_contact_pressure]
type = LayeredSideAverage
variable = contact_pressure
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[../]
[]
examples/3D_rodlet_3pellets/smearedTest3D.i
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
displacements = 'disp_x disp_y disp_z'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
file = smearedTest3.e
patch_size = 5 #40
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Problem]
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y disp_z temp'
reference_residual_variables = 'saved_x saved_y saved_z saved_t'
[]
[Variables]
# Define dependent variables and initial conditions
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 580 # set to coolant inlet temp
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_z]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = ParsedFunction
value = '1'
# type = PiecewiseBilinear
# data_file = peakingfactors5.csv
# scale_factor = 1
# axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
# Specify that we need solid mechanics (divergence of stress)
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
save_in_disp_z = saved_z
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate # coupling to the fission_rate aux variable
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 2.49e-3 #2.26e-3
a_upper = 2.621e-2 #1.2086e-1
fuel_inner_radius = 0
fuel_outer_radius = .0041
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
RPF = RPF
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
block = clad
tensor = creep_strain
variable = creep_strain_hoop
quantity = Hoop
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
# formulation = penalty
penalty = 1e8
tangential_tolerance = 1e-4
model = frictionless
normal_smoothing_distance = 0.1
system = constraint
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
tangential_tolerance = 1e-4
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_z_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_z
boundary = 13
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y disp_z'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = FINK_LUCUTA # Fink-Lucuta
temp = temp
burnup = burnup
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = MATPRO
block = pellet_type_1
temp = temp
burnup = burnup
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (BISON kernel)
type = Elastic #CreepUO2
block = pellet_type_1
temp = temp
# fission_rate = fission_rate
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
# grain_radius = 10.0e-6
# oxy_to_metal_ratio = 2.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup = burnup
diameter = 0.0082
q = q
gap = 160e-6 # diametral gap
# burnup_relocation_stop = 0.0136
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr4 (BISON kernel)
type = MechZry #ThermalIrradiationCreepZr4
block = clad
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
model_thermal_expansion = false
stress_free_temperature = 295.0
[../]
# [./clad_irrgrowth]
# type = IrradiationGrowthZr4
# block = clad
# fast_neutron_fluence = fast_neutron_fluence
# [../]
[./fission_gas_release] # Forsberg-Massih fission gas release mode
type = Sifgrs
block = pellet_type_1
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
# PETSC options:
# petsc_options
# petsc_options_iname
# petsc_options_value
#
# controls for linear iterations
# l_max_its
# l_tol
#
# controls for nonlinear iterations
# nl_max_its
# nl_rel_tol
# nl_abs_tol
#
# time control
# start_time
# dt
# optimal_iterations
# iteration_window
# linear_iteration_ratio
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart -snes_ksp_ew_rtol0 -snes_ksp_ew_rtolmax -snes_ksp_ew_gamma -snes_ksp_ew_alpha -snes_ksp_ew_alpha2 -snes_ksp_ew_threshold'
petsc_options_value = ' lu superlu_dist 51 0.5 0.9 1 2 2 0.1'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
outputs = exodus
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./_dt] # time step
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./rod_total_power] # should be 1/4 of the rod_input_power as we are using in quarter symmetry
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.02372 # rod height (2 pellets)
[../]
[./average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_history
[../]
[]
[Outputs]
perf_graph = true
exodus = true
[./console]
type = Console
max_rows = 25
[../]
[]
test/tests/triso_failure/sub.i
[GlobalParams]
density = 10810.0 # kg/m^3
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
type = TRISO1DMesh
elem_type = EDGE3
coordinates = '0 2.485e-4 3.425e-4 3.425e-4 3.835e-4 4.195e-4 4.595e-4'
mesh_density = '6 6 0 6 8 6'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[Problem]
coord_type = RSPHERICAL
[]
[Variables]
[./disp_x]
[../]
[./temp]
initial_condition = 1346.0
[../]
[]
[Functions]
[./radial_eigenstrain]
type = ParsedFunction
value = 't*(4.52013e-4/6.0*t*t*t*t*t - 8.36313e-3/5.0*t*t*t*t + 5.67549e-2/4.0*t*t*t - 1.74247e-1/3.0*t*t + 2.62692e-1/2.0*t - 1.43234e-1)'
[../]
[./tangential_eigenstrain]
type = ParsedFunction
value = 't*(1.30457e-4/4.0*t*t*t - 2.10029e-3/3.0*t*t + 9.07826e-3/2.0*t - 3.24737e-2)'
[../]
[./fission_rate]
type = ParsedFunction
value = 7.75e19 # units of fissions/m**3
[../]
[./k_function]
type = ParsedFunction
value = '4.93e-29'
[../]
[./high_fidelity_strength_crackedIPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1000000 1000000'
[../]
[./high_fidelity_strength_crackedOPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1000000 1000000'
[../]
[./stress_correlation_crackedOPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1 1'
[../]
[./stress_correlation_crackedIPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1 1'
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./burnup]
block = fuel
initial_condition = 0.0
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
initial_condition = 0.0
[../]
[./fission_rate]
block = fuel
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
factor = 1.708707e18 # n/m^2-sec
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./fission_rate]
type = FunctionAux
variable= fission_rate
block = fuel
function = fission_rate
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = IPyC_left_boundary
slave = buffer_right_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = IPyC_left_boundary
slave = buffer_right_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
# contact_pressure_input = 10e6
# quadrature = true
[../]
[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = DirichletBC
variable = temp
boundary = exterior
value = 1346.0
[../]
# exterior and internal pressures
[./exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
component = 0
factor = 0.1e6
[../]
[./PlenumPressure] # apply gas pressure on buffer and IPyC boundaries
[./plenumPressure]
boundary = buffer_IPyC_boundary
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[Materials]
[./fission_gas_release] # Sifgr fission gas release mode
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[../]
[./stress]
type = ComputeLinearElasticStress
block = 'fuel buffer SiC'
[../]
[./strain]
type = ComputeRSphericalSmallStrain
block = 'fuel buffer SiC'
eigenstrain_names = thermal_strain
[../]
[./PyC_stress]
type = PyCCreep
block = 'IPyC OPyC'
k = k_function
nu = 0.4
flux = fast_neutron_flux
temperature = temp
density = 1880.0 # kg/m^3
[../]
[./PyC_strain]
type = ComputeRSphericalIncrementalStrain
block = 'IPyC OPyC'
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
[../]
[./PyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = 'IPyC OPyC'
fluence = fast_neutron_fluence
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[../]
[./fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./PyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[../]
[./fuel_den]
type = Density
block = fuel
disp_r = disp_x
[../]
[./buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_den]
type = Density
density = 1000 #kg/m^3
block = buffer
disp_r = disp_x
[../]
[./PyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10 #47787559927.148 #3.96e10
poissons_ratio = 0.33
[../]
[./PyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./PyC_den]
type = Density
density = 1880.0 # kg/m^3
block = 'IPyC OPyC'
disp_r = disp_x
[../]
[./SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_den]
type = Density
density = 3200.0 # kg/m^3
block = SiC
disp_r = disp_x
[../]
[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
# petsc_options = '-snes_mf_operator -snes_ksp_ew -ksp_monitor'
# petsc_options_iname = '-pc_type -pc_hypre_type'
# petsc_options_value = 'hypre boomeramg'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
num_steps = 2
dtmax = 2e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[./burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[../]
[./volumeTotal]
type = InternalVolume
boundary = exterior
[../]
[./volumeFuel]
type = InternalVolume
boundary = fuel_right_boundary
[../]
[./volumeGas]
type = InternalVolume
boundary = 'fuel_right_boundary IPyC_left_boundary'
addition = -5.53e-11
execute_on = 'initial timestep_end'
[../]
[./volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temp
execute_on = 'initial timestep_end'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
[../]
[./tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[../]
[./strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
characteristic_strength = 9640000
[../]
[./failure_indicator_SiC]
type = WeibullFailureIndicator
block = SiC
weibull_modulus = 6
effective_mean_strength = strength_SiC
[../]
[./strength_IPyC]
type = WeibullEffectiveMeanStrength
block = IPyC
weibull_modulus = 6
characteristic_strength = 964000
[../]
[./failure_indicator_IPyC]
type = WeibullFailureIndicator
block = IPyC
weibull_modulus = 6
effective_mean_strength = strength_IPyC
[../]
[./strength_OPyC]
type = WeibullEffectiveMeanStrength
block = OPyC
weibull_modulus = 6
characteristic_strength = 964000
[../]
[./failure_indicator_OPyC]
type = WeibullFailureIndicator
block = OPyC
weibull_modulus = 6
effective_mean_strength = strength_OPyC
[../]
[./failure_indicator_SiC_crackedIPyC]
type = WeibullFailureIndicator
block = SiC
weibull_modulus = 6
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
[../]
[./failure_indicator_SiC_crackedOPyC]
type = WeibullFailureIndicator
block = SiC
weibull_modulus = 6
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedOPyC'
[../]
[./triso_failure]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
OPyC_failure = failure_indicator_OPyC
SiC_failure = failure_indicator_SiC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure_crackedOPyC = failure_indicator_SiC_crackedOPyC
[../]
[./left_bc]
type = NodalExtremeValue
boundary = xzero
variable = disp_x
[../]
[]
[UserObjects]
[./triso_failure_terminator]
type = Terminator
expression = 'triso_failure > 0'
[../]
[]
[Outputs]
print_linear_residuals = true
interval = 1
csv = false
perf_graph = true
[]
[Controls]
[./stochastic]
type = SamplerReceiver
[../]
[]
examples/experimental_design/3D_asbuiltCCM/simulation/APMT/final_2.i
[GlobalParams]
density = 10431.0
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
displacements = 'disp_x disp_y disp_z'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
[./file_mesh]
type = FileMeshGenerator
file = geAPMT_2.e
[../]
[./scale] # Convert CUBIT geometry (built in 100x inches) into meters.
type = TransformGenerator
transform = SCALE
vector_value = '2.54e-4 2.54e-4 2.54e-4'
input = file_mesh
[../]
dim = 3
patch_size = 1000 # For contact algorithm
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./T]
initial_condition = 300
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 8.64E+04 3.46E+05 4.32E+05 777600 864000 2332800 3801600 5097600 5184000 8985600 9072000 10627200 12182400 13564800 13651200 18057600 18144000 19699200 21254400 22636800 22723200 25920000 26006400 27388800 28771200'
y = '0 29100.13691 2.91E+04 0 0 28765.65338 27821.9286 27415.44121 27415.44121 0 0 27494.58176 26612.85703 26149.9983 26149.9983 0 0 33820.63602 32566.74267 31819.53594 31819.53594 0 0 33065.95692 31851.27402 31230.11945'
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = '1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./initial_power_ramp]
type = PiecewiseLinear
x = '0 8.64e4'
y = '0 1'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-400 0'
y = '0 1'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = T
block = 3
fission_rate = fission_rate
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = T
[../]
[./heat_source_clad]
type = NeutronHeatSource
variable = T
block = 2
fission_rate = gamma_heating_clad
[../]
[./heat_source_cap]
type = NeutronHeatSource
variable = T
block = 1
fission_rate = gamma_heating_cap
[../]
[]
[BCs]
[./convective_capsule_surface]
type = ConvectiveFluxBC
boundary = 1
variable = T
rate = 45800.0 # convection coefficient (h)
initial = 325 # initial coolant temp
final = 325 # coolant temperature following initial power ramp
duration = 0.0 # duration of initial power ramp
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = 1
factor = 2.4e6
function = pressure_ramp
[../]
[../]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = '102 105 108 100 101 103 104 106 107 20 21'
value = 0.0
[../]
[./no_y_all]
type = DirichletBC
variable = disp_y
boundary = '100 101 103 104 106 107 20 21'
value = 0.0
[../]
[./no_z_all]
type = DirichletBC
variable = disp_z
boundary = '100 103 106'
value = 0.0
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 13
initial_pressure = 1e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
output = capsule_pressure
displacements = 'disp_x disp_y disp_z'
[../]
[./plenumPressure1]
boundary = 12
initial_pressure = 1e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles1
temperature = ave_temp_interior1
volume = gas_volume1
material_input = fis_gas_released1
output = plenum_pressure1
displacements = 'disp_x disp_y disp_z'
[../]
[../]
[]
[SolidMechanics]
[./solid]
temp = T
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 50
a_lower = 5.17269685344284e-05
a_upper = 0.0949369541451446
fuel_inner_radius = 0
fuel_outer_radius = 0.00410464
[../]
[]
[AuxKernels]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./stress_xy]
type = MaterialTensorAux
tensor = stress
variable = stress_xy
index = 3
execute_on = timestep_end
[../]
[./stress_yz]
type = MaterialTensorAux
tensor = stress
variable = stress_yz
index = 4
execute_on = timestep_end
[../]
[./stress_xz]
type = MaterialTensorAux
tensor = stress
variable = stress_xz
index = 5
execute_on = timestep_end
[../]
[./conductance_fuel]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 5
[../]
[./conductance_gap]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 3
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = T
execute_on = linear
[../]
[./gamma_heating_clad]
type = FissionRateAux
variable = gamma_heating_clad
block = 2
value = 2e18
function = initial_power_ramp
[../]
[./gamma_heating_cap]
type = FissionRateAux
variable = gamma_heating_cap
block = 1
value = 2e18
function = initial_power_ramp
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
factor = 9.7e17 # n/m^2-sec from ATR user guide for other flux traps
[../]
[]
[AuxVariables]
[./fission_rate]
block = 3
[../]
[./grain_radius]
block = 3
initial_condition = 10e-6
[../]
[./gamma_heating_clad]
block = 2
[../]
[./gamma_heating_cap]
block = 1
[../]
[./burnup]
block = 3
[../]
[./fast_neutron_flux]
order = FIRST
family = LAGRANGE
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
# [./coolant_htc]
# order = CONSTANT
# family = MONOMIAL
# [../]
[]
[ThermalContact]
[./thermal_contact_fuel]
type = GapHeatTransferLWR
variable = T
master = 4 # clad inner
slave = 5 # fuel outer
jump_distance_model=KENNARD
plenum_pressure=plenum_pressure1 #required for KENNARD
emissivity_fuel=0.85
emissivity_clad=0.85
roughness_fuel=8e-7
roughness_clad=8e-7
roughness_coef=3.2
contact_pressure = contact_pressure
initial_gas_fractions= '1 0 0 0 0 0 0 0 0 0'
quadrature = true
[../]
[./thermal_contact_capsule]
type = GapHeatTransferLWR
variable = T
master = 2 # capsule inner
slave = 3 # clad outer
jump_distance_model=KENNARD
plenum_pressure=capsule_pressure #required for KENNARD
emissivity_fuel=0.85
emissivity_clad=0.85
roughness_fuel=4e-7
roughness_clad=8e-7
roughness_coef=3.2
contact_pressure = contact_pressure
quadrature = true
[../]
[./fuel_clad_bottom_contact]
type = GapHeatTransferLWR
variable = T
master = 31 # capsule inner
slave = 30 # clad outer
jump_distance_model=KENNARD
plenum_pressure=capsule_pressure #required for KENNARD
emissivity_fuel=0.85
emissivity_clad=0.85
roughness_fuel=8e-7
roughness_clad=8e-7
roughness_coef=3.2
contact_pressure = contact_pressure
initial_gas_fractions= '1 0 0 0 0 0 0 0 0 0'
quadrature = true
[../]
[]
[Contact]
[./fuel_clad_mechanical]
master = 4
slave = 5
formulation = penalty
penalty = 1e7
tangential_tolerance = 1e-2
normal_smoothing_distance = 0.1
[../]
[./cap_clad_mechanical]
master = 2
slave = 3
formulation = penalty
penalty = 1e7
tangential_tolerance = 1e-2
normal_smoothing_distance = 0.1
[../]
[./fuel_clad_bottom_mechanical]
master = 31
slave = 30
formulation = penalty
penalty = 1e7
tangential_tolerance = 1e-2
normal_smoothing_distance = 0.1
[../]
[]
[Materials]
# --- CLADDING ----
[./clad]
type = ThermalFeCrAl
block = 2
temp = T
[../]
[./clad_density]
type = Density
block = 2
density = 7874
[../]
[./clad_disp]
type = MechFeCrAl
block = 2
temp = T
youngs_modulus = 190295293200
poissons_ratio = 0.3
[../]
# --- FUEL ----
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
temp = T
burnup = burnup
thermal_conductivity_model = FINK_LUCUTA
initial_porosity = 0.05
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_disp]
type = Elastic
block = 3
temp = T
youngs_modulus = 2.e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = MATPRO
block = 3
temp = T
burnup = burnup
[../]
[./fission_gas_release] # Forsberg-Massih fission gas release mode
type = Sifgrs
block = 3
temp = T
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius = grain_radius
gbs_model = true
[../]
# --- CAPSULE ----
[./capsule]
type = Thermal316
block = 1
temp = T
[../]
[./capsule_density]
type = Density
block = 1
density = 7980
[../]
[./cap_disp]
type = MechSS316
block = 1
youngs_modulus = 1.93e11
poissons_ratio = 0.31
temp = T
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 10
variable = T
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-ksp_gmres_modifiedgramschmidt'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_composite_pcs -sub_0_pc_hypre_type -sub_0_pc_hypre_boomeramg_max_iter -sub_0_pc_hypre_boomeramg_grid_sweeps_all -sub_1_sub_pc_type -pc_composite_type -ksp_type -mat_mffd_type -pc_hypre_boomeramg_strong_threshold'
petsc_options_value = '201 composite hypre,asm boomeramg 2 2 lu multiplicative fgmres ds 0.7'
# petsc_options = '-snes_linesearch_monitor'
# petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter -pc_hypre_boomeramg_strong_threshold'
# petsc_options_value = '201 hypre boomeramg 4 0.7'
scheme = bdf2
l_max_its = 100
l_tol = 1e-3
nl_max_its = 15
nl_rel_tol = 1e-3
nl_abs_tol = 1e-8
start_time = -400
end_time = 864000
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 400
optimal_iterations = 8
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 13
variable = T
[../]
[./ave_temp_interior1]
type = SideAverageValue
boundary = 12
variable = T
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 15
outputs = exodus
[../]
[./pellet_volume]
type = InternalVolume
boundary = 14
outputs = exodus
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 15
variable = T
[../]
[./_dt]
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = T
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.0
[../]
[./average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_history
[../]
[./peak_clad_temp]
type = NodalMaxValue
variable = T
block = 2
[../]
[./PostProcessorBurnup]
type = ElementAverageValue
variable = burnup
block = 3
[../]
[./fis_gas_produced1]
type = ElementIntegralFisGasGeneratedSifgrs
block = 3
[../]
[./fis_gas_released1]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 13 #capsule_inner
[../]
[./gas_volume1] # gas volume
type = InternalVolume
boundary = 12 #rodlet_inner
[../]
[]
[Outputs]
perf_graph = true
exodus = true
sync_times = '0 8.64E+04 3.46E+05 4.32E+05 777600 864000 2332800 3801600 5097600 5184000 8985600 9072000 10627200 12182400 13564800 13651200 18057600 18144000 19699200 21254400 22636800 22723200 25920000 26006400 27388800 28771200'
[]
assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_2d/27_2d.i
[GlobalParams]
density = 10485.9 #95.5% TD (TD = 10980)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11 # J/fission (200 MeV)
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
pellet_quantity = 1
pellet_height = 3.5
pellet_outer_radius = 0.00456
pellet_mesh_density = customize
ny_p = 318
nx_p = 11
clad_thickness = 7.3e-4
clad_gap_width = 8.5e-5
clad_bot_gap_height = 1e-3
top_bot_clad_height = 0.00224
clad_top_gap_height = 0.315
clad_mesh_density = customize
ny_c = 324
nx_c = 4
elem_type = QUAD8
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 7.8e-6 # 10e-6 / 2 * 1.56 = 7.8e-6
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseBilinear
data_file = 27_2d_power.csv
axis = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.006537 1'
[../]
[./time_function]
type = PiecewiseLinear
data_file = 27_2d_time_function.csv
format = columns
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
i_enrich = '0.04 0.96 0 0 0 0' # 4% enriched U235
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = 3
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
block = 1
factor = 4.0e13 # (n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.2e6 # FUMEXII_27(2d) => 22 bar (2.2 MPa) (He fill)
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_tmp_int
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 563
inlet_pressure = 15.5e6
inlet_massflux = 3800
rod_diameter = 9.12e-3
rod_pitch = 1.43e-2
linear_heat_rate = power_profile
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.045
[../]
[./fuel_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
stress_free_temperature = 293.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
q = power_profile
burnup_relocation_stop = 0.006
relocation_activation1 = 5000
fuel_pin_geometry = pin_geometry
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
stress_free_temperature = 293.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
initial_porosity = 0.045
gbs_model = true
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 100.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
dtmax = 1e6
dtmin = 1
end_time = 146085120
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = time_function
force_step_every_function_point = true
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./ave_tmp_int]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 3
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./int_flux_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./int_flux_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./average_fissionrate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 3.5 # rod height
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = 1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = 1
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fis_gas_percent'
execute_on = 'FINAL'
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_first_stage.i
# @Requirement F2.40
# This test is for evaluating the first stage (i.e., the intra-granular diffusion calculation) of the Sifgrs fission gas behavior model.
# The first stage is isolated by setting the fractional bubble coverage at grain boundary saturation to zero (saturation_coverage = 0). Under this condition (i.e. gas reaching the grain boundaries goes instantaneously to the plenum), the ratio of fission gas released to fission gas generated calculated by the model should compare very closely with the analytical expression for fractional fission gas release fraction from the grains published by Speight (Nuclear Science and Engineering 37, 180, 1969). The Speight equation for fission gas release fraction (released/produced) is
#
# parameters:
# n and no are summation integers
# a = grain radius in m
# pi = the number pi 3.14159...
# D = effective diffusion coeficient in m^2/s where D includes the effects of intragranular trapping and resolution (see White, JNM 118, 1, 1983, and the
# fgr_diffusion_coefficient_test in fox for a description)
# t = time in seconds
#
# 6*a^2
# f = 1 - sum(n=1, to no) ---------------- * {1 - exp -[D*n^2*pi^2*t/a^2]}
# pi^4 * D*t*n^4
#
# For no = 1, D = 4.123e-19 m^2/s, a = 1e-5 m, t = 1e6 s, f = 0.596.
# For no = 50, and the same parameters defined above, f = 0.1388
#
# With the output from this test, if one calculates fission gas released / fission gas produced at
# t = 1.e+06, the result should be 0.1032, which compares well with the analytical solution from Speight.
#
# See also the sheet sifgrs_first_stage of the attached excel file (regression_tests_sifgrs.xlsx).
# Check of fission gas produced
# beta = rate of gas production per unit volume by fission
# beta * time * volume = gas produced
# The following parameters are used to calculate beta
#
# t = time in seconds = 5e7
# Avogadros number = 6.023e23 atoms/mol
# FY = fractional yield = fraction of fission gas atoms per fission = 0.3017 atoms/fission
# Y = yield = FY/Avogadros number = atoms/fission / atoms/mol to give mols/fission
# F = fission rate = fissions/m^3*s = 2.5e19
# beta = F*Y = fissions/m^3s * mols/fission = mols/m^3*s
# gas produced = beta * time * volume
# For this test problem, volume = (0.01m)^3 = 1e-6m^3 = volume of single finite element in this problem
#
# Y = 0.3017/6.023e23 = 5.0091e-25 mol/fission
# beta = 2.5e19*5.009e-25 = 1.25e-5 mol/m^3s
# gas produced = 1.25e-5*5e7*1e-6 = 6.26e-4 mols
#
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = '1700'
[../]
[./Fiss_func]
type = ParsedFunction
value = '2.5e19'
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 1700
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./FRA]
type = MaterialRealAux
variable = fract_FGR_analytical
property = fract_FGR_analytical
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[../]
[]
[Materials]
[./UO2]
type = HeatConductionMaterial
block = 1
temp = T
thermal_conductivity = 1.0
specific_heat = 1.0
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 1
skip_bdr_model = true
temp = T
fission_rate = fission_rate
testing_output = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
test/tests/meso_thcond_test/sifgrs_swelling_fissiongas.i
# This test is for the fuel swelling and porosity computation in the Sifgrs
# fission gas behavior model for UO2.
# As complementary to the fission gas release process, the fission gas
# swelling is related to gas retention in the fuel in the form of bubbles.
# Through a direct description of the gas bubble development, the fission
# gas swelling and release are modeled as inherently coupled processes, on a
# physical basis. Only the fission gas swelling due to grain-face bubbles is
# considered.
# In a comprehensive treatment of fission gas release and fuel swelling, Sifgrs
# also incorporates empirical models for the swelling due to solid fission
# products and the fuel densification.
# Moreover, the different contributions to fuel porosity, namely, those due to
# fabrication pores, gas bubbles (thus associated with fission gas swelling),
# and sintering (densification), are computed consistently with the swelling
# calculations. Then, the fuel total porosity in each mesh location can be
# tracked (auxkernel PorosityAuxUO2), and considered in the computation of
# other relevant material properties like the fuel thermal conductivity
# (material model ThermalFuel).
# This test aims at demonstrating the above model capabilities. The considered
# case involves a single-element cubic domain, constant temperature (1400 K)
# and fission rate (1e19 f/(m**3s)), and a irradiation time of 1e8 s. The
# Sifgrs model is adopted for calculating the fission gas release and fuel
# swelling. Starting from a typical as-fabricated value of 5%, the fuel
# porosity evolves consistently with the swelling. The fuel thermal
# conductivity is calculated as coupled with porosity, which allows taking
# into account the conductivity degradation due to progressive increase of
# gaseous porosity (see also the attached file regression_tests_sifgrs.xlsx).
[Mesh]
type = FileMesh
file = cube_111.e
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = 1400.
[../]
[./Fiss_func]
type = ParsedFunction
value = 1.e19
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 1400.
[../]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./burnup]
order = FIRST
family = LAGRANGE
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.05
[../]
[./density]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_sl]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_dn]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
[../]
[./intra_porosity]
order = CONSTANT
family = MONOMIAL
[../]
[./gas_atom_conc]
order = CONSTANT
family = MONOMIAL
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
[../]
[./GBresistance]
order = CONSTANT
family = MONOMIAL
[../]
[./grain_radius]
order = CONSTANT
family = MONOMIAL
initial_condition = 5e-6
[../]
[]
[SolidMechanics]
[./solid]
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
temp = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./frate]
type = FissionRateAux
variable = fission_rate
block = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./brnp]
type = BurnupAux
variable = burnup
block = 1
fission_rate = fission_rate
density = 10417.
execute_on = 'initial timestep_begin'
[../]
[./por]
type = PorosityAuxUO2
block = 1
variable = porosity
execute_on = linear
[../]
[./rho]
type = MaterialRealAux
variable = density
property = density
execute_on = 'initial timestep_end'
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = total_swell
[../]
[./thcond]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./GBCoverage]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = 'initial timestep_end'
[../]
[./intra_porosity]
type = MaterialRealAux
variable = intra_porosity
property = intra_porosity
[../]
[./gas_atom_conc]
type = MaterialRealAux
variable = gas_atom_conc
property = gas_atom_conc
[../]
[./deltav_v0_dn]
type = MaterialRealAux
variable = deltav_v0_dn
property = densification
[../]
[./deltav_v0_sl]
type = MaterialRealAux
variable = deltav_v0_sl
property = solid_swell
[../]
[./rad_bbl_bdr]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = 'initial timestep_end'
[../]
[./GBresistance]
type = MaterialRealAux
variable = GBresistance
property = GBresistance
execute_on = 'initial timestep_end'
[../]
# [./grain_radius]
# type = GrainRadiusAux
# variable = grain_radius
# temp = temp
# [../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[../]
[./x_disp]
type = DirichletBC
variable = disp_x
value = 0
boundary = 1
[../]
[./y_disp]
type = DirichletBC
variable = disp_y
value = 0
boundary = 2
[../]
[./z_disp]
type = DirichletBC
variable = disp_z
value = 0
boundary = 3
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 1
burnup = burnup
temp = temp
density = 10417.
save_solid_swell = true
save_densification = true
[../]
[./solid]
type = Elastic
block = 1
temp = temp
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
youngs_modulus = 2.e+11
poissons_ratio = 0.3
thermal_expansion = 1.e-05
dep_matl_props = deltav_v0_bd
[../]
[./density]
type = Density
block = 1
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
density = 10417.
[../]
[./fission_gas_release_and_swelling]
type = Sifgrs
block = 1
temp = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.05
[../]
[./fuel_thermal_meso]
type = ThermalUO2FissionGas
block = 1
temp = temp
burnup = burnup
grain_radius = 5e-6
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-05
nl_rel_tol = 1.e-05
start_time = 0.
num_steps = 100
dt = 1.e+06
end_time = 1.e+08
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[./GBCov]
type = ElementalVariableValue
variable = GBCoverage
elementid = 0
execute_on = 'initial timestep_end'
[../]
[./gas_atom_conc]
type = ElementalVariableValue
variable = gas_atom_conc
elementid = 0
[../]
[./thcond]
type = ElementalVariableValue
variable = thermal_conductivity
elementid = 0
execute_on = 'initial timestep_end'
[../]
[./intra_porosity]
type = ElementalVariableValue
variable = intra_porosity
elementid = 0
[../]
[./rad_bbl_bdr]
type = ElementalVariableValue
variable = rad_bbl_bdr
elementid = 0
execute_on = 'initial timestep_end'
[../]
[./GBresistance]
type = ElementalVariableValue
variable = GBresistance
elementid = 0
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
file_base = fissiongas
csv = true
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[]
assessment/LWR/validation/RIA_NSRR_FK/analysis/FK9/FK09.i
# This file was created using BIF with the following inputs:
# FK06/FK06.var - md5sum: 5a60c05af67ba840a89caacf70b852e2
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
[GlobalParams]
density = 10310.8809782
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
displacements = 'disp_x disp_y'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
displacements = 'disp_x disp_y'
patch_size = 5
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
top_bot_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.05265
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[AuxVariables]
[./BuTC]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gap]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./fission_rate]
initial_condition = 0
[../]
[./grain_radius]
block = 3
initial_condition = 5.96e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./integral_burnup]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_radial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.0592261881186
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[../]
[./flux]
type = ConstantFunction
value = 0.0
[../]
[./axial_peaking_factors]
type = ConstantFunction
value = 1
[../]
[./coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[../]
[./linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[../]
[./axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[../]
[./burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[../]
[./radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[../]
[./radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[../]
[./initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
i_enrich = '0.045 0.955 0.0 0.0 0.0 0.0'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
save_in = saved_t
block = 3
[../]
[]
[AuxKernels]
[./BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[../]
[./gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[../]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = timestep_begin
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_begin
[../]
[./radial_stress]
type = MaterialTensorAux
tensor = stress
variable = radial_stress
index = 0
execute_on = timestep_begin
[../]
[./axial_stress]
type = MaterialTensorAux
tensor = stress
variable = axial_stress
index = 1
execute_on = timestep_begin
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
index = 2
execute_on = timestep_begin
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./axial_strain]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = stress
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./elastic_radial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = radial_strain
index = 0
execute_on = timestep_begin
[../]
[./elastic_axial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_strain
index = 1
execute_on = timestep_begin
[../]
[./elastic_hoop_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_strain
index = 2
execute_on = timestep_begin
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_begin
[../]
[./creep_strain_radial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 0
execute_on = timestep_begin
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
index = 1
execute_on = timestep_begin
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 2
execute_on = timestep_begin
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
friction_coefficient = 2.5
normal_smoothing_distance = 0.1
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
roughness_coef = 3.2
roughness_fuel = 1.5e-6
roughness_clad = 1.75e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
initial_gas_fractions = '0.25 0.75 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0'
gas_released = fission_gas_released
tangential_tolerance = 1.0e-6
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '10 5'
initial_pressure = 0.1e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
block = 3
temp = temp
burnup = BuTC
initial_porosity = 0.0592261881186
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
temp = temp
burnup = burnup
total_densification = 0.006
gas_swelling_type = SIFGRS
[../]
[./fuel_mech]
type = MechUO2
block = 3
temp = temp
burnup = BuTC
fission_rate = fission_rate
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 5.56e-06
oxy_to_metal_ratio = 2.0
model_thermal_expansion = true
model_swelling = true
name_swelling_model = fuel_swelling
model_relocation = false
name_relocation_model = fuel_relocation
model_creep = false
model_hotpressing = false
has_hotpressing_plasticity = false # used to turn on plasticity models
matpro_youngs_modulus = false
matpro_poissons_ratio = false
dep_matl_props = deltav_v0_bd
# input_yield_stress = 100e6 # used to turn on plasticity models
# input_hardening_modulus = 2e9 # used to turn on plasticity models
# transition_temperature = 1273 # used to change the hot presing temperature
# isotropic_cracking = true # used for isotropic softening model
# rod_ave_lin_pow = linear_heat_rate_profile # used for isotropic softening model
# cracking_stress = 120e6 # used for smeared cracking model
# cracking_release = exponential # used for smeared cracking model
# cracking_residual_stress = 0.1 # used for smeared cracking model
# cracking_beta = 0.01 # used for smeared cracking model
# compute_method = ShearRetention # used for smeared cracking model
# max_cracks = 3 # used for smeared cracking model
# active_crack_planes = '0 1 2' # used for smeared cracking model
stress_free_temperature = 293
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = buavg
q = linear_heat_generation_rate
diameter = 0.01054
gap = 1e-05
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
creeprate_scalef = 1
cold_work_factor = 0.01
material_type = 0
model_irradiation_growth = false
model_thermal_expansion = true
model_elastic_modulus = true
constitutive_model = plasticity
compute_JIntegral = true
formulation = NonlinearRZ
[../]
[./combined]
type = CombinedCreepPlasticity
block = clad
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = clad
temp = temp
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
material_type = 0
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
[../]
[./plasticity]
type = ZryPlasticity
block = 1
temp = temp
initial_fast_fluence = 1.30e26
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
use_matpro = true
output_properties = yield_stress
outputs = all
scale_factor = 1.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = 2
[../]
[./clad_density]
type = Density
block = 1
density = 6551
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[UserObjects]
[./avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[../]
[./integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[./contactslip]
type = ContactSlipDamper
master = 5
slave = 8
min_damping_factor = 0.05
[../]
[]
[Postprocessors]
[./average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[]
[VectorPostprocessors]
[./rad_temp]
type = LineValueSampler
end_point = '0.00527 0.0503 0.0'
start_point = '0.0 0.0503 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
output_linear = true
[../]
[./dummy]
type = CSV
enable = true
[../]
[]
examples/2D-RZ_rodlet_10pellets/Smeared.i
# Model is of a 10 pellet stack of smeared fuel (pellet_type_2).
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
initial_porosity = 0.05
disp_x = disp_x
disp_y = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
# Import mesh file
file = smeared.e
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
# Define dependent variables and initial conditions
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors12.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
# Specify that we need solid mechanics (divergence of stress)
[./solid]
disp_r = disp_x
disp_z = disp_y
save_in_disp_r = saved_x
save_in_disp_z = saved_y
temp = temp
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 0.00324 # mesh dependent
a_upper = 0.12184 # mesh dependent
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 1.0 # for use with dished pellets (ratio of actual volume to cylinder volume)
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
block = clad
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = linear
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = linear
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
disp_x = disp_x
disp_y = disp_y
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
quadrature = true
contact_pressure = contact_pressure
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = pellet_type_1
temp = temp
burnup_function = burnup
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (BISON kernel)
type = Elastic
block = pellet_type_1
disp_r = disp_x
disp_z = disp_y
temp = temp
dep_matl_props = deltav_v0_bd
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = 0.0082
q = q
gap = 160e-6 # diametral gap
burnup_relocation_stop = 0.024
relocation_activation1 = 5000
[../]
[./clad_thermal] # general thermal property input
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr4 (BISON kernel)
type = MechZry
block = clad
disp_r = disp_x
disp_z = disp_y
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
# thermal_expansion = 5.0e-6 # unnecessary because computing the thermal expansion with MATPRO
model_irradiation_growth = true
model_thermal_expansion = true
stress_free_temperature = 295.0
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
disp_r = disp_x
disp_z = disp_y
[../]
[./fuel_density]
type = Density
block = pellet_type_1
disp_r = disp_x
disp_z = disp_y
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200
min_value = 0
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
# PETSC options:
# petsc_options
# petsc_options_iname
# petsc_options_value
#
# controls for linear iterations
# l_max_its
# l_tol
#
# controls for nonlinear iterations
# nl_max_its
# nl_rel_tol
# nl_abs_tol
#
# time control
# start_time
# dt
# optimal_iterations
# iteration_window
# linear_iteration_ratio
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
execute_on = linear
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
execute_on = linear
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
execute_on = linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
execute_on = linear
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on = timestep_end
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on = timestep_end
[../]
[./_dt] # time step
type = TimestepSize
execute_on = timestep_end
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
execute_on = timestep_end
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
execute_on = timestep_end
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[]
assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.10/SM/IFA_650_10_part1.i
# Halden test IFA-650.10
[GlobalParams]
density = 10447. # 95.32% of 10960
displacements = 'disp_x disp_y'
disp_r = disp_x
disp_z = disp_y
order = FIRST #SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = mesh_ifa65010.e
displacements = 'disp_x disp_y'
patch_size = 5 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.
[../]
[]
[Functions]
[./linear_heat_rate]
type = PiecewiseLinear
data_file = lhr_average.csv
scale_factor = 1.e+03
format = columns
[../]
[./axial_power_peaking_factors]
type = PiecewiseBilinear
data_file = lhr_peaking_factors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./rod_outer_pressure]
type = PiecewiseLinear
data_file = rod_outer_pressure.csv
scale_factor = 1.e+06
format = columns
[../]
[./clad_outer_temperature]
type = PiecewiseBilinear
data_file = temp_outer_clad.csv
scale_factor = 1.
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./q] # same as linear_heat_rate for the base irradiation
type = PiecewiseLinear
data_file = lhr_average.csv
scale_factor = 1.e+03
format = columns
[../]
[./heat_sink_temperature]
type = PiecewiseBilinear
data_file = heat_sink_temperature.csv
scale_factor = 1.
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./average_coolant_htc]
type = PiecewiseLinear
data_file = htc_average.csv
scale_factor = 1.
format = columns
[../]
[./heat_transfer_mode]
type = PiecewiseConstant
x = '0 125690842. 125691189.5'
y = '9 9 8 '
direction = 'right'
[../]
[./forced_times]
type = PiecewiseLinear
data_file = timestep_limiting.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./grain_radius]
initial_condition = 4.65e-06
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase] # Fraction of beta phase in Zry
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness] # ZrO2 scale thickness (m)
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfract_total] # Current oxigen weight fraction (oxide+metal) (/)
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total] # Gained oxigen weight fraction (oxide+metal) (/)
order = CONSTANT
family = MONOMIAL
[../]
[./bursted] # Did cladding burst occur?
order = CONSTANT
family = MONOMIAL
[../]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_hflux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./htype]
order = CONSTANT
family = MONOMIAL
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
block = clad
variable = fast_neutron_flux
rod_ave_lin_pow = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./thcond]
type = MaterialRealAux
property = thermal_conductivity
variable = thermal_conductivity
block = pellet_type_1
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises_stress
quantity = vonmises
execute_on = timestep_end
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
quantity = hoop
execute_on = timestep_end
[../]
[./creep_rate]
type = MaterialRealAux
block = clad
variable = creep_rate
property = creep_rate
execute_on = timestep_end
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = hoop_strain
quantity = hoop
execute_on = timestep_end
[../]
[./fract_bphase]
type = MaterialRealAux
block = clad
variable = fract_beta_phase
property = fract_beta_phase
execute_on = 'initial linear'
[../]
[./oxi_thickness]
type = MaterialRealAux
boundary = 2
variable = oxide_thickness
property = oxide_scale_thickness
execute_on = 'initial linear'
[../]
[./ofract_total]
type = MaterialRealAux
boundary = 2
variable = oxywtfract_total
property = current_oxygen_weight_frac_total
execute_on = 'initial linear'
[../]
[./ofgain_total]
type = MaterialRealAux
boundary = 2
variable = oxywtfgain_total
property = oxygen_weight_frac_gained_total
execute_on = 'initial linear'
[../]
[./hasbursted]
type = MaterialRealAux
boundary = 2
variable = bursted
property = failed
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
boundary = 10
property = gap_conductance
variable = gap_conductance
execute_on = 'initial linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./coolant_hflux]
type = MaterialRealAux
property = output_heat_flux
variable = coolant_hflux
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = hmode
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = htype
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./pelletid]
type = PelletIdAux
block = pellet_type_1
variable = pellet_id
a_lower = 8.5e-03
a_upper = 448.5e-03
number_pellets = 44
execute_on = initial
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
[../]
[]
[Kernels]
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
rod_ave_lin_pow = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
num_radial = 50
bias = 0.95
num_axial = 20
a_lower = 8.5e-03
a_upper = 448.5e-03
fuel_inner_radius = 0.
fuel_outer_radius = 4.105e-03
fuel_volume_ratio = 1.
i_enrich = '0.04487 0.95513 0 0 0 0'
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
disp_x = disp_x
disp_y = disp_y
penalty = 1.e+07
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_gas_fractions = '1. 0. 0. 0. 0. 0. 0. 0. 0. 0.'
initial_moles = initial_moles
gas_released = fission_gas_released
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
quadrature = true
normal_smoothing_distance = 0.1
roughness_clad = 1.8e-07
roughness_fuel = 2.e-06
roughness_coef = 3.2
refab_gas_fractions = '0.05 0.95 0. 0. 0. 0. 0. 0. 0. 0.'
refab_time = 124861061.
refab_type = 0
[../]
[]
#TODO: Add option in StandardLWRFuelRodOutputs to compute plenum temperature this way.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[BCs]
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.
[../]
[./clad_outer_temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_outer_temperature
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
function = rod_outer_pressure
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.6e+06
startup_time = 0.
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 124861061.
refab_pressure = 4.e+06
refab_temperature = 293.15
refab_volume = 1.7e-05
[../]
[../]
[]
[Controls]
[./period0]
type = TimePeriod
disable_objects = 'BCs/clad_outer_temp'
start_time = 0.
end_time = 124861061.0
[../]
#[./period1]
# type = TimePeriod
# disable_objects = 'BCs/clad_outer_temp'
# start_time = 125690771.0
# end_time = 125691189.5
#[../]
[]
[CoolantChannel]
[./convective_clad_surface] # PWR conditions (ignored after base irradiation)
boundary = '1 2 3'
variable = temp
heat_transfer_mode = heat_transfer_mode # prescribe htc until end of blowdown. Then use radiative (+ convective prescribed)
heat_transfer_coefficient = average_coolant_htc # For base irradiation, using averge htc from a previous simulation. Afterwards, use constant values (from jernkvist) plus radiation from end of blowdown
effective_emissivity = 0.6 # 0.75 # cf. Jernkvist
inlet_temperature = heat_sink_temperature # K
#inlet_pressure = 15.5e+06 # Pa
#inlet_massflux = 3800. # kg/m^2-s
rod_diameter = 9.5e-03 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
compute_enthalpy = false #true
#oxide_thickness = oxide_thickness
#heat_transfer_mode = 1 # Natural convection
#htc_correlation_type = 2 # Jens-Lottes (recommended for Halden HBWR)
outputs = all
output_properties = 'coolant_channel_htype coolant_channel_hmode'
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
initial_porosity = 0.0468
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./fuel_swelling]
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = pellet_type_1
temp = temp
burnup_function = burnup
initial_porosity = 0.0468
tensor_mechanics_compatibility = true
[../]
[./fuel_solid_mechanics]
type = CreepUO2
block = pellet_type_1
temp = temp
youngs_modulus = 2.e+11
poissons_ratio = .345
thermal_expansion = 10.e-06
stress_free_temperature = 295.0
dep_matl_props = deltav_v0_bd
fission_rate = fission_rate
#burnup_function = burnup
grain_radius = 4.65e-6
oxy_to_metal_ratio = 2.0
isotropic_cracking = true
rod_ave_lin_pow = linear_heat_rate
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = 8.21e-03
q = q
gap = 150.e-06
burnup_relocation_stop = 1.e+20
tensor_mechanics_compatibility = true
[../]
[./fission_gas]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.0468
diff_coeff_option = 3
transient_option = 1 #0
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
[../]
[./clad_density]
type = Density
block = clad
density = 6550.
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.
specific_heat = 330.
[../]
[./clad_solid_mechanics]
type = MechZry
block = clad
temp = temp
youngs_modulus = 1.e+11
poissons_ratio = 0.3
constitutive_model = clad_creep
formulation = NonlinearRZ
increment_calculation = eigen
model_irradiation_growth = false
[../]
[./clad_creep]
type = CreepZryModel
block = clad
temp = temp
model_irradiation_creep = false
model_primary_creep = false
model_thermal_creep = false
model_thermal_creep_loca = true
#time_loca_begin = 219920.5
compute_material_timestep_limit = true
[../]
[./clad_irrgrowth]
type = IrradiationGrowthZr4
block = clad
fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_phase]
type = ZrPhase
block = clad
temperature = temp
numerical_method = 2
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temp
clad_inner_radius = 4.18e-03
clad_outer_radius = 4.75e-03
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = cathcart
use_coolant_channel = true
[../]
[./clad_failure_criterion]
type = FailureCladding
boundary = 2
criterion = 1 #2 # 1 = Plastic instability
hoop_stress = hoop_stress
eff_strain_rate_creep = creep_rate
#eff_strain_rate_plast =
temperature = temp
fract_beta_phase = fract_beta_phase
fract_oxygen_gain = oxywtfgain_total
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1.e-05
variable = disp_x
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_tol = 1.e-02 # <--- l_tol is ignored when EW is used.
#l_tol = 8.e-03
line_search = 'none'
l_max_its = 200
nl_max_its = 15
nl_rel_tol = 1.e-04
nl_abs_tol = 1.e-10
start_time = 0.
n_startup_steps = 1
#end_time = 124861061. # End of base irradiation
end_time = 125690771. # Blowdown. End prescribing clad outer temperature.
#end_time = 125690842. # End of blowdown
#end_time = 125691189.5
dtmax = 5.e+05
dtmin = 0.00000001
[./TimeStepper]
type = IterationAdaptiveDT
timestep_limiting_postprocessor = timestep_material
dt = 1.e+02
#growth_factor = 1.1
#optimal_iterations = 4
#iteration_window = 2
timestep_limiting_function = forced_times #linear_heat_rate
max_function_change = 2000.
force_step_every_function_point = true
time_t = '121509219. 124861061. 125680151. 125690151. 125690771. 125691027. 125691033.'
time_dt = '5.e+05 1.e+04 1.e+04 10. 5. 0.5 5. '
[../]
[]
[UserObjects]
[./pbz]
type = PelletBrittleZone
block = pellet_type_1
pellet_id = pellet_id
temp = temp
a_lower = 8.5e-03
a_upper = 448.5e-03
pellet_radius = 4.105e-03
number_pellets = 44
execute_on = 'initial linear'
[../]
[./terminator]
type = Terminator
expression = 'bursted > 0'
execute_on = timestep_end
[../]
[]
[Postprocessors]
[./alhr_input]
type = FunctionValuePostprocessor
function = linear_heat_rate
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet_type_1
variable = burnup
[../]
[./temp_clad_max]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./betaph_fract_max]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
block = clad
execute_on = 'initial timestep_end'
[../]
[./oxygen_fract_max]
type = ElementExtremeValue
block = clad
value_type = max
variable = oxywtfract_total
execute_on = 'initial timestep_end'
[../]
[./oxygen_fgain_max]
type = ElementExtremeValue
block = clad
value_type = max
variable = oxywtfgain_total
execute_on = 'initial timestep_end'
[../]
[./creep_rate_max]
type = ElementExtremeValue
value_type = max
variable = creep_rate
block = clad
[../]
[./timestep_material]
type = MaterialTimeStepPostprocessor
block = clad
[../]
[./strain_clad_hoop_max]
type = ElementExtremeValue
value_type = max
variable = hoop_strain
block = clad
[../]
[./stress_clad_hoop_max]
type = ElementExtremeValue
value_type = max
variable = hoop_stress
block = clad
execute_on = 'initial timestep_end'
[../]
[./bursted]
type = ElementExtremeValue
value_type = max
variable = bursted
block = clad
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_midplane]
type = NodalVariableValue
nodeid = 676 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_tclow]
type = NodalVariableValue
nodeid = 826 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_tchigh]
type = NodalVariableValue
nodeid = 511 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_plenum_mid]
type = NodalVariableValue
nodeid = 241 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_inner_midplane]
type = NodalVariableValue
nodeid = 679 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_max]
type = NodalExtremeValue
boundary = '1 2 3'
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_ave]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_max]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_central]
type = NodalVariableValue
variable = temp
nodeid = 1569 # !! Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_outer_max]
type = NodalExtremeValue
boundary = 10
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./strain_clad_hoop_outer_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = hoop_strain
execute_on = 'initial timestep_end'
[../]
[./stress_clad_hoop_outer_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = hoop_stress
execute_on = 'initial timestep_end'
[../]
[./contact_pressure_midplane]
type = ElementalVariableValue
elementid = 1300 # !! Mesh dependent
variable = contact_pressure
execute_on = 'initial timestep_end'
[../]
[./oxide_thickness_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = oxide_thickness
execute_on = 'initial timestep_end'
[../]
[./gap_conductance_average]
type = SideAverageValue
boundary = 10
variable = gap_conductance
execute_on = 'initial timestep_end'
[../]
[./coolant_htc_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = coolant_htc
execute_on = 'initial timestep_end'
[../]
[./coolant_htc_average]
type = SideAverageValue
boundary = 2
variable = coolant_htc
execute_on = 'initial timestep_end'
[../]
[./coolant_hflux_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = coolant_hflux
execute_on = 'initial timestep_end'
[../]
[./coolant_hflux_average]
type = SideAverageValue
boundary = 2
variable = coolant_hflux
execute_on = 'initial timestep_end'
[../]
[]
[VectorPostprocessors]
[./clad_radial_disp]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_1'
[../]
[./clad_out_temp]
type = NodalValueSampler
variable = temp
boundary = 2
sort_by = y
outputs = 'outfile_temp_1'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_1
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
interval = 1
num_files = 1
[../]
[./outfile_1]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_temp_1]
type = CSV
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/IFA_597_3/analysis/rod_8/SM/IFA_597_rod8_frictionless_sm.i
[GlobalParams]
density = 10500.0
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 10
acceptable_multiplier = 10
[]
[Mesh]
file = ifa_597r8.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4'
initial_condition = 6.1074e-6
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = 597-R8_linear_power.csv
format = columns
scale_factor = 1.0526316
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = 597-R8_axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 269029548 269030508 269055648 269056588 280124964 280125417'
y = '0 1 1 0.014475 0.014475 0.457 0.457 0.014475'
[../]
[./flux]
type = PiecewiseLinear
data_file = flux.csv
format = columns
[../]
[./clad_average_temp]
type = PiecewiseLinear
data_file = 597-R8_clad_outer_temperature.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_y = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3 4'
fission_rate = fission_rate
fraction = 0.95 # per Glyn Rossiter's suggestion
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00324
a_upper = 0.3571
fuel_inner_radius = 0.000
fuel_outer_radius = 0.0052195
fuel_volume_ratio = .994899
i_enrich = '0.03347 0.96653 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3 4'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.3e-6
roughness_fuel = 1.38e-6
roughness_coef = 3.2
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 269055648
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_average_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 #changes to 3.2e6 after 59 MWd/kgUO2
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0e5 #changes to 5e5 after 59 MWd/kgUO2
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 269055648
refab_pressure = 5e5
refab_temperature = 500
refab_volume = 6e-6
save_in = 'saved_x saved_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = '3 4'
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./density_clad]
type = Density
block = 1
density = 6551.0
[../]
[./density_fuel]
type = Density
block = '3 4'
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4'
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
initial_porosity = 0.04372
[../]
[./fuel_mechanics]
type = Elastic
block = '3 4'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
stress_free_temperature = 297
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = '3 4'
burnup_function = burnup
diameter = 0.010439
q = q
gap = 2.11e-4
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
stress_free_temperature = 297
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.04372
diff_coeff_option = 3
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 280125417
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 20
linear_iteration_ratio = 100
dt = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3 4'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = exodus
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = exodus
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3 4'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.3539 # rod height
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = '3 4'
[../]
[./average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_profile
fuel_outer_radius = 0.0052195
fuel_inner_radius = 0.000
outputs = exodus
[../]
[./power_tc_location]
type = FunctionValuePostprocessor
function = q
point = '0 0.33319 0'
[../]
[./TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 7476 # Global NodeID 7477
[../]
[./elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 1887 # Global NodeID 1888
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = '3 4'
[]
[Outputs]
perf_graph = true
csv = 1
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage TC_temp rod_total_power elongation'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/Super_Ramp/analysis/PK23/PK23.i
[GlobalParams]
density = 10340.0
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = false
initial_porosity = 0.057
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temperature'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 10
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 28
pellet_height = 0.011143
pellet_outer_radius = 4.57e-3
pellet_mesh_density = customize
nx_p = 11
ny_p = 84
clad_mesh_density = customize
nx_c = 4
ny_c = 84
clad_gap_width = 70.0e-6
clad_thickness = 0.735e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 15.5e-3
clad_top_gap_height = 32.5e-3
ny_cu = 3
ny_cl = 3
elem_type = QUAD8
[]
[Variables]
[./temperature]
initial_condition = 293.15
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = alhr_history.csv
format = columns
[../]
[./axial_power_factors]
type = PiecewiseBilinear
data_file = axial_lhr_factors.csv
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_power_factors'
[../]
[./clad_out_temp]
type = PiecewiseLinear
data_file = temp_outer_clad_history.csv
format = columns
[../]
[./axial_temp_factors]
type = PiecewiseBilinear
data_file = axial_temp_factors.csv
axis = 1
[../]
[./clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = pressure_coolant.csv
format = columns
[../]
[./fast_flux]
type = PiecewiseLinear
data_file = fast_neutron_flux.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = 3
initial_condition = 4.29e-6
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
block = 3
initial_condition = 0.057
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain
fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy
stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz
creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx
strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temperature
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temperature
execute_on = linear
[../]
[./porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
a_lower = 0.0165
a_upper = 0.328504
number_pellets = 28
execute_on = initial
[../]
[./oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./layered_average_contact_pressure]
type = SpatialUserObjectAux
block = 3
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = 3
execute_on = nonlinear
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 80
num_axial = 20
i_enrich = '0.0321 0.9679 0.0 0.0 0.0 0.0'
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1.0e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
formulation = KINEMATIC
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temperature
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = 5
outer_surfaces = 10
temp = temperature
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temperature
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.25e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temperature
burnup_function = burnup
initial_fuel_density = 10340
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = 3
temperature = temperature
burnup_function = burnup
grain_radius = 4.29e-6
[../]
[./fuel_stress]
type = ComputeSmearedCrackingStress
block = 3
cracking_stress = 3.0e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
linear_heat_rate_function = power_history
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = true
max_relocation_recovery_fraction = 0.5
relocation_scaling_factor = 1
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
output_properties = 'relocation_strain recovered_relocation_strain'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
diff_coeff_option = 3
transient_option = 2
res_param_option = 0
temp = temperature
fission_rate = fission_rate
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6550.0
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temperature
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
fuel_pin_geometry = pin_geometry
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-4
nl_max_its = 30
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
start_time = 0.0
n_startup_steps = 1
end_time = 101359908.0
dtmax = 1.0e6
dtmin = 1.0
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 15
iteration_window = 3
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./avg_gap_conductance]
type = SideAverageValue
boundary = 10
variable = gap_cond
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temperature
nodeid = 3110 #Mesh dependent!
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = strain_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = stress_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 3141 # Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./total_rod_integral_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = 3
[../]
[./total_rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.376004 # rod height
[../]
[./vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = TENSOR
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage central_fuel_temp midplane_contact_pressure'
execute_on = 'FINAL'
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temperature
fuel_pin_geometry = pin_geometry
number_pellets = 28
execute_on = 'initial linear'
[../]
[./layered_average_contact_pressure]
type = LayeredSideAverage
variable = contact_pressure
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[../]
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFG092/SM/BFG092.i
################################################################################
#
# Description: Calvert Cliffs BFG092
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFG092_power.csv
# axial peaking factor file BFG092_axial_peaking.csv
# flux boundary condition file BFG092_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10411.07 #94.882 %TD Assume TD = 10972.65 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.28354
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.2e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFG092_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFG092_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 177711767 177712127'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 177711767 177712127'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFG092_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 5e8
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 5e-6
al_incremental_slip_tolerance = 1e-4
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elasticity_and_creep]
type = Elastic #CreepUO2
block = 3
temp = temp
# fission_rate = fission_rate
# cracking_stress = 130e6
# max_cracks = 1
# active_crack_planes = 2
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
# grain_radius = 6.0e-6
# grain_radius = 10.0e-6 # set larger than 6 microns (see ForMas) to impove convergence
# oxy_to_metal_ratio = 2.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.0095631 # fuel pellet diamter in meters
gap = 190.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = 0.029 # turn off relocation
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 177712127
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/RE_Ginna_Rodlets/analysis/RE_Ginna_rodlet-4/RE_Ginna_rodlet_4_1pt5.i
[GlobalParams]
displacements = disp_x
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = Layered1DMesh
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
pellet_inner_radius = 0.001407
pellet_outer_radius = 0.0044515
clad_gap_width = 9.5e-5
clad_thickness = 7.495e-4
fuel_height = 0.541782
plenum_height = 0.047316
slices_per_block = 10
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 293.0
scaling = 1e3
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = fuel
initial_condition = 10.0e-6 # 2D grain radius 10.0e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = rodlet4_power.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = rodlet4_axial_peaking.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 115273407.3 115273767.3'
y = '0.006533 1 1 0.006533'
[../]
[./flux]
type = PiecewiseLinear
data_file = rodlet4_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_temp_bc]
type = PiecewiseBilinear
data_file = rodlet4_clad_bc.csv
axis = 1
[../]
[./clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 15.51e6
fuel_pin_geometry = pin_geometry
[../]
[./fuel_axial_pressure]
type = ParsedFunction
value = plenum_pressure
vars = plenum_pressure
vals = plenum_pressure
[../]
[]
[Modules]
[./TensorMechanics]
[./Layered1DMaster]
[./fuel]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = fuel
out_of_plane_pressure = fuel_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain fuel_relocation_strain'
[../]
[./clad]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = clad
out_of_plane_pressure = clad_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
[../]
[../]
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises_stress
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = hydrostatic
execute_on = timestep_end
block = fuel
[../]
[./creep_strain_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xx
index_i = 0
index_j = 0
block = clad
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xy
index_i = 0
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_zz
index_i = 2
index_j = 2
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = fuel
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
density = 10321.2
num_radial = 81
num_axial = 11
a_lower = 0.00324
a_upper = 0.545022
fuel_inner_radius = 0.001407
fuel_outer_radius = 0.0044515
i_enrich = '0.037 .963 0 0 0 0' # 3.7% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
quadrature = true
[../]
[]
[BCs]
[./clad_surface_temp]
type = FunctionDirichletBC
boundary = 2
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = 2
factor = 15.51e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.1e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = fuel
burnup_function = burnup
initial_fuel_density = 10321.2
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup_function = burnup
diameter = 0.008903
gap = 1.9e-4
linear_heat_rate_function = q
burnup_relocation_stop = 0.0204
relocation_activation1 = 5000
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_density]
type = Density
block = fuel
density = 10321.2 #94% TD = 10980
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_primary_creep = true
model_irradiation_creep = true
model_thermal_creep = true
[../]
[./clad_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 5.0e-6
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 115273767.3
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
fuel_pin_geometry = pin_geometry
execute_on = 'initial linear'
[../]
[./clad_inner_vol]
type = LayeredInternalVolumePostprocessor
boundary = 7
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = LayeredInternalVolumePostprocessor
boundary = 8
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = LayeredSideAverageValuePostprocessor
boundary = 7
variable = temp
fuel_pin_geometry = pin_geometry
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./gas_volume]
type = LayeredInternalVolumePostprocessor
boundary = 9
execute_on = 'initial linear'
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./flux_from_clad]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 5
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_fuel]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.541782 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
block = fuel
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = fuel
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = fuel
burnup_function = burnup
variable = temp
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = fuel
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
# nodal value comparison
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 264 # GlobalNodeID 265, coords (0.001407, 0.30122)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 295 #coords (0.0044515, 0.30122)
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 295 #coords (0.0044515, 0.30122)
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_clad'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_pellet'
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./outfile_clad]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_pellet]
type = CSV
execute_on = 'FINAL'
[../]
[./chkfile]
type = CSV
show = 'average_burnup fis_gas_percent FCT rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/HBEP/analysis/BK370/SM/HBEP_BK370_sm.i
[GlobalParams]
density = 10233 #93.2% of TD (TD assumed to be 10980)
initial_porosity = 0.068
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = HBEP.e
patch_size = 5 # 20 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 10.60e-6
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
# reads and interpolates an input file containing rod average linear power vs time
type = PiecewiseLinear
data_file = BK370_linear_power.csv
format = columns
[../]
[./axial_peaking_factors]
# reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = BK370_power_peaking_factors.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
# reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
#Ambient for initial build @ 0.101353 MPa, PWR @ 13.73 MPa and PIE @ 0.101353 MPa
x = '-100 0 108313920'
y = '0.007382 1 0.007382'
[../]
[./flux]
type = PiecewiseLinear
data_file = BK370_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear #PiecewiseConstant
data_file = BK370_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
# reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = BK370_clad_temp_peaking_factors.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1 # fission rate applied to the fuel only
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
a_lower = 0.00324
a_upper = 1.02024
fuel_outer_radius = 4.095e-3
fuel_inner_radius = 1.24e-3
i_enrich = '0.0707 0.9293 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = pellet_type_1
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = '1'
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = '1'
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./hydrostatic_stress]
block = pellet_type_1
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
# computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
index = 0
execute_on = timestep_end
block = 1
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
index = 1
execute_on = timestep_end
block = 1
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
index = 3
execute_on = timestep_end
block = 1
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
index = 2
execute_on = timestep_end
block = 1
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = 1
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
system = constraint
penalty = 1e7
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = .955e-6
roughness_fuel = 1.5e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 13.73e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.88e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = plenum_temperature
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = pellet_type_1
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic
dep_matl_props = deltav_v0_bd
block = pellet_type_1
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = .00819
q = q
gap = 1.7e-4 #diameteral gap
relocation_activation1 = 5000 # intial relocation activation power set to 5kW/m
burnup_relocation_stop = .04
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_thermal_expansion = true
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
diff_coeff_option = 2
transient_option = 2
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 50
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 108313920
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_history
max_function_change = 2e6
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block =pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.017 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = pellet_type_1
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = pellet_type_1
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 4784
[../]
[./maxFuelPenetration]
type = NodalMaxValue
boundary = 10 # pellet_centerline
variable = penetration
[../]
[./minFuelPenetration]
type = NodalExtremeValue
boundary = 10 # pellet_centerline
value_type = min
variable = penetration
[../]
[./clad_fuel_gap]
type = NodalMaxValue
variable = penetration
boundary = 10
[../]
[./max_cont_press]
type = NodalMaxValue
variable = contact_pressure
boundary = 10
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_new_DiffCoeff4.i
[GlobalParams]
density = 10431.0
initial_porosity = 0.2
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.9144
pellet_outer_radius = 2.794e-3
pellet_inner_radius = 6.985e-4
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 101.6e-6
clad_thickness = 0.5334e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 1.057
elem_type = QUAD8
nx_c = 4
ny_c = 1000
nx_p = 10
ny_p = 500
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
scaling = 1
[../]
[]
[AuxVariables]
[./fission_rate]
block = pellet
[../]
[./burnup]
block = pellet
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./fraction_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 0.854004932 0.854004932'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 2.99513e+19 2.99513e+19'
[../]
[./axial_power_profile]
type = PiecewiseBilinear
x = '0.0334152 0.09468 0.1559448 0.2162952 0.27756 0.3388248 0.3991752 0.46044 0.5217048 0.5820552 0.64332 0.7045848 0.7649352 0.8262 0.8874648'
y = '0 31858942.74'
z = '5493.43832 7183.727034 29157.48031 34228.34646 37608.92388 40144.35696 41412.07349 42257.21785 41834.64567 39721.78478 37608.92388 33805.77428 28312.33596 4225.721785 2535.433071 5041.338583 6592.519685 26757.87402 31411.41732 34513.77953 36840.55118 38003.93701 38779.52756 38391.73228 36452.75591 34513.77953 31023.62205 25982.28346 3877.952756 2326.771654'
scale_factor = 1
axis = 1
[../]
[./average_power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24264.05646 24264.05646'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.2
axial_power_profile = axial_power_profile
rod_ave_lin_pow = fraction_history
pellet_diameter = 0.005588
execute_on = timestep_begin
pellet_inner_diameter = 0.001397
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
execute_on = timestep_end
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
execute_on = timestep_end
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
execute_on = timestep_end
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
execute_on = timestep_end
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
execute_on = timestep_end
[../]
[./nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vcn_bdr_2
execute_on = timestep_end
[../]
[./atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atm_bbl_bdr
execute_on = timestep_end
[../]
[./vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vcn_bbl_bdr
execute_on = timestep_end
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
execute_on = timestep_end
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
execute_on = timestep_end
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = timestep_end
[../]
[./volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = vol_bbl_bdr
execute_on = timestep_end
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 0.151e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580
inlet_pressure = 0.151e6
inlet_massflux = 1687.43
rod_diameter = 6.858e-3
rod_pitch = 1.7e-2
linear_heat_rate = fraction_history
axial_power_profile = axial_power_profile
coolant_material = sodium
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = 0.2
output_properties = 'thermal_conductivity'
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
outputs = exodus
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = ThermalHT9
block = clad
temp = temp
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.88e11
poissons_ratio = 0.236
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_ht9creep'
block = clad
[../]
[./clad_ht9creep]
type = HT9CreepUpdate
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 1.2e-5
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
fission_rate = fission_rate
diff_coeff_option = 4
grain_radius_const = 10e-06
bubble_gb_limit = 1.0e+11
[../]
[./clad_density]
type = Density
block = clad
density = 7874.0
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[./fast_neutron_flux]
type = GenericFunctionMaterial
block = clad
prop_names = fast_neutron_flux
prop_values = fast_neutron_flux_function
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = fraction_history
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.9144 # rod height
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
assessment/LWR/validation/HbepR1/analysis/A184/HbepR1_A184.i
[GlobalParams]
density = 10490 #94.882 %TD Assume TD = 10972.65 kg/cm3
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
temperature = temp
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.95e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .0049695
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.68
ny_cl = 3
clad_top_gap_height = 0.24682
clad_gap_width = 1.005e-4
elem_type = QUAD8
patch_size = 100 # 1000 lowering this and setting the strategy to auto will reduce the amount of memory required to run the job.
patch_update_strategy = iteration#auto
partitioner = centroid # this will help with run time
centroid_partitioner_direction = y # this will help with run time
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 273 #K
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5.148e-6
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = A184-power.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = A184-axial-profile.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '-100 0 166323600 166327200' #
y = '0.014429 1 1 0.014429'
[../]
[./temp_ramp]
type = PiecewiseBilinear
data_file = A184-axial-tempprofile.csv
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[Modules/TensorMechanics/Master]
[./fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz
vonmises_stress hydrostatic_stress'
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz creep_strain_xx
creep_strain_xy creep_strain_yy vonmises_stress creep_strain_zz'
[../]
[]
# Define kernels for the various terms in the PDE system
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3 # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate # coupling to the fission_rate aux variable
save_in = saved_t
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
factor = 1.68664e13 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.68478
fuel_inner_radius = 0.0
fuel_outer_radius = .0049695 # m
i_enrich = '0.0233 .9767 0 0 0 0'
RPF = RPF
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 1.1e-6
roughness_clad = 3.5e-7
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 # Pa
function = pressure_ramp
[../]
[../]
[./coolant_temp]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = temp_ramp
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9 # clad interior + fuel exterior
initial_pressure = 0.375e6 # Pa
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = plenum_temperature # coupling to post processor to get gas temperature approximation
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
initial_porosity = 0.04
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.00507
clad_outer_radius = 0.005865
use_coolant_channel = true
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
stress_free_temperature = 273
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup = burnup
diameter = 0.00939 # fuel pellet diamter in meters
gap = 100.5e-6 # nominal diametral gap in meters
linear_heat_rate_function = q
burnup_relocation_stop = .047 # turn off relocation
relocation_activation1 = 5000
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_inelastic_stressUpdate]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type =recrystalization_annealed
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = clad_inelastic_stressUpdate
[../]
[./clad_thermal_eigenstrain]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 273
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_eigenstrain]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = recrystallization_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup = burnup
initial_fuel_density = 10490
total_densification = .0043
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[UserObjects]
[./integral_burnup] # Added the computation of the average fuel rod burnup
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 166327200
dtmax = 1e6
dtmin = 0.1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
# Clad postprocessor (The rest are created with StandardLWRFuelRodOutputs)
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
[../]
[./clad_fuel_gap]
type = NodalMaxValue
variable = penetration
boundary = 10
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = true
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/IFA_535/analysis/rod_810/IFA_535_rod_810.i
[GlobalParams]
density = 10398.06 #Assuming 10980 as the theoretical density
displacements = 'disp_x disp_y'
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
group_variables = 'disp_x disp_y'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
file = ifa535_rod810.e
patch_size = 20 # 50
patch_update_strategy = auto
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./fast_neutron_flux]
block = 'clad'
[../]
[./fast_neutron_fluence]
block = 'clad'
[../]
[./grain_radius]
block = 'pellet_type_1'
initial_condition = 9.36e-6 # 2D grain radius 6um
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_profile]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = ifa535_810_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = ifa535_810_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
x = '-100 0 217720944 217722744 217724544 217742544 224388540 224388576'
y = ' 0.0303 1 1 0.0303 0.0303 1 1 0.0303'
[../]
[./flux] # reads and interpolates input data defining fast neutron flux
type = PiecewiseLinear
data_file = ifa535_810_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = ifa535_810_clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction # reads and interpolates an input file containing rod average linear power vs time
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = pellet_type_1
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_eigenstrain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_strain clad_irradiation_growth'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
[../]
[]
# Define kernels for the various terms in the PDE system (in all cases here, the axisymmetric (RZ) version is specified)
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 'pellet_type_1' # fission rate applied to the fuel (block 2) only
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
order = CONSTANT
family = MONOMIAL
block = 'pellet_type_1'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.48724
a_lower = 0.01924
fuel_inner_radius = 0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1
RPF = RPF
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 'clad'
axial_power_profile = axial_peaking_factors
function = flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 'clad'
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 'pellet_type_1'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
roughness_clad = 0.81e-6
roughness_fuel = 1.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 226498428
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 3.2e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 0.1e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get inital fill gas mass
temperature = plenum_temperature # coupling to post processor to get gas temperature approximation
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
refab_time = 217722744
refab_pressure = 3.2e6
refab_temperature = 449.05
refab_volume = 9.6e-6
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./swelling]
type = UO2VolumetricSwellingEigenstrain
block = 'pellet_type_1'
burnup_function = burnup
initial_fuel_density = 10398.06
eigenstrain_name = fuel_volumetric_strain
[../]
[./density_clad]
type = Density
block = 'clad'
density = 6551.0
[../]
[./density_fuel]
type = Density
block = 'pellet_type_1'
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 'pellet_type_1'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 'pellet_type_1'
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 'pellet_type_1'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 'pellet_type_1'
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 'pellet_type_1'
burnup_function = burnup
diameter = 0.01054 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 2.44e-4 #diametral gap in m
burnup_relocation_stop = 0.029
relocation_activation1 = 5000 #initial relocation activation power in W/m
eigenstrain_name = fuel_relocation_eigenstrain
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 'clad'
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 5.0e-6
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_strain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_growth
[../]
[./fission_gas_release]
type = Sifgrs
block = 'pellet_type_1'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
# controls for linear iterations
l_max_its = 60
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
# time control
start_time = -100
end_time = 224388576
dtmax = 5e5
dtmin = 1
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
force_step_every_function_point = true
timestep_limiting_function = power_profile
optimal_iterations = 25
iteration_window = 6
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 'pellet_type_1'
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = 'pellet_type_1'
[../]
[./clad_elong]
type = NodalVariableValue
variable = disp_y
nodeid = 2359 #Global node ID 9739
[../]
[./input_rod_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_1
temperature = temp
mechanics_system = TENSOR
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
sync_times = 5556726
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Riso_AN4/analysis/Riso_AN4.i
[GlobalParams]
density = 10292.652 #93.74% TD = 10980
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = riso_an4.e
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4'
initial_condition = 3.0e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = an4_power_history.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = an4_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 103528800 103529000 103534230 103795758 103795770'
y = '0.006529 1 1 0.006529 0.986 0.986 0.006529'
[../]
[./flux]
type = PiecewiseLinear
data_file = an4_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
add_variables = false
block = '3 4'
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz vonmises_stress'
eigenstrain_names = 'fuel_volumetric_swelling_eigenstrain fuel_thermal_eigenstrain fuel_relocation_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[./clad]
add_variables = false
block = 1
strain = FINITE
incremental = true
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
eigenstrain_names = 'clad_irradiation_growth_eigenstrain clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = '3 4'
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00734
a_upper = 0.299312
fuel_inner_radius = 0.000
fuel_outer_radius = 0.0045265
fuel_volume_ratio = .989292
i_enrich = '0.0295 0.9705 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.9e17
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = 1
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = penalty
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
interaction_layer = 1
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
contact_pressure = contact_pressure
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 103529000
refab_gas_fractions = '0 0 0 1 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.52e6 #changes to 1.53e7 for bump tests
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.31e6 #changes to 1e5 for bump tests
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 103529000
refab_pressure = 1.0e5
refab_temperature = 273
refab_volume = 7.9e-6
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4'
burnup_function = burnup
temperature = temp
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
initial_fuel_density = 10211.0
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '3 4'
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4'
[../]
[./fuel_elasticity]
type = UO2ElasticityTensor
block = '3 4'
temperature = temp
[../]
[./fuel_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = '3 4'
temperature = temp
thermal_expansion_coeff = 10e-6
stress_free_temperature = 297
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4'
burnup_function = burnup
diameter = 0.009053
linear_heat_rate_function = q
gap = 2.05e-4 #diametral gap in m
burnup_relocation_stop = 0.029
relocation_activation1 = 5000
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity]
type = ZryElasticityTensor
block = 1
[../]
[./clad_irradiation_growth_eigenstrain]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_creep]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_primary_creep = true
temperature = temp
[../]
[./clad_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = 1
stress_free_temperature = 297
temperature = temp
thermal_expansion_coeff = 5.0e-6
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = 'clad_creep'
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 25.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 103795770
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3 4'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = '3 4'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.292 # rod height
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = '3 4'
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4'
[../]
[./TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 9982 #Global node ID 9983
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = '3 4'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage TC_temp rod_total_power'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_2a/27_2a.i
[GlobalParams]
density = 10431.0
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11 # J/fission (200 MeV)
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 9.5e-4
pellet_mesh_density = customize
ny_p = 8
nx_c = 4
nx_p = 12
pellet_outer_radius = 0.005305
ny_cu = 3
ny_c = 8
clad_bot_gap_height = 1e-3
pellet_quantity = 1
pellet_height = 0.0127
ny_cl = 3
plenum_fuel_ratio = 0.45
clad_gap_width = 9.5e-5
elem_type = QUAD8
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 7.5e-6
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
x = '0 100'
y = '0 15000'
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.02914 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_upper = 0.01594
a_lower = 0.00324
fuel_inner_radius = 0.0
fuel_outer_radius = 0.005305
i_enrich = '0.13 0.87 0 0 0 0' # 13% enriched U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = 3
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
execute_on = timestep_begin
factor = 1.6e12 # (n/m2-s per W/m) used HALDEN fast flux
block = 1
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = 1
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = 1
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
roughness_coef = 3.2
roughness_fuel = 2.0e-6
roughness_clad = 1.0e-6
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_bc]
type = DirichletBC
variable = temp
boundary = '1 2 3'
value = 516.2 # Clad wall temp = 240+.4162*(LHR)^.75, where temp is C and LHR is kW/m
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6 # Halden coolant pressure
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 5.0e5 # FUMEXII => 500 kPa pressure (He fill)
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
[../]
[./fuel_density]
type = Density
block = '3'
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
initial_porosity = 0.05
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
stress_free_temperature = 293.0
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 10.61e-3
q = q
gap = 0.19e-3
burnup_relocation_stop = 0.044
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
stress_free_temperature = 293.0
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
dtmax = 1e6
dtmin = 1
end_time = 4.74e8
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
outputs = exodus
[../]
[./intg_flux_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./intg_flux_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./fuel_center_temperature]
type = NodalVariableValue
nodeid = 467 # GlobalNodeID 468
variable = temp
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./average_fissionrate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = '3'
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fuel_center_temperature rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_old.i
[GlobalParams]
density = 10431.0
initial_porosity = 0.2
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.9144
pellet_outer_radius = 2.794e-3
pellet_inner_radius = 6.985e-4
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 101.6e-6
clad_thickness = 0.5334e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 1.057
elem_type = QUAD8
nx_c = 4
ny_c = 1000
nx_p = 10
ny_p = 500
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
scaling = 1
[../]
[]
[AuxVariables]
[./fission_rate]
block = pellet
[../]
[./burnup]
block = pellet
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = pellet
initial_condition = 10e-6
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./fraction_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 0.854004932 0.854004932'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 2.99513e+19 2.99513e+19'
[../]
[./axial_power_profile]
type = PiecewiseBilinear
x = '0.0334152 0.09468 0.1559448 0.2162952 0.27756 0.3388248 0.3991752 0.46044 0.5217048 0.5820552 0.64332 0.7045848 0.7649352 0.8262 0.8874648'
y = '0 31858942.74'
z = '5493.43832 7183.727034 29157.48031 34228.34646 37608.92388 40144.35696 41412.07349 42257.21785 41834.64567 39721.78478 37608.92388 33805.77428 28312.33596 4225.721785 2535.433071 5041.338583 6592.519685 26757.87402 31411.41732 34513.77953 36840.55118 38003.93701 38779.52756 38391.73228 36452.75591 34513.77953 31023.62205 25982.28346 3877.952756 2326.771654'
scale_factor = 1
axis = 1
[../]
[./average_power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24264.05646 24264.05646'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.2
axial_power_profile = axial_power_profile
rod_ave_lin_pow = fraction_history
pellet_diameter = 0.005588
execute_on = timestep_begin
pellet_inner_diameter = 0.001397
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
execute_on = timestep_end
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
execute_on = timestep_end
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
execute_on = timestep_end
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
execute_on = timestep_end
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
execute_on = timestep_end
[../]
[./nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vcn_bdr_2
execute_on = timestep_end
[../]
[./atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atm_bbl_bdr
execute_on = timestep_end
[../]
[./vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vcn_bbl_bdr
execute_on = timestep_end
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
execute_on = timestep_end
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
execute_on = timestep_end
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = timestep_end
[../]
[./volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = vol_bbl_bdr
execute_on = timestep_end
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 0.151e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580
inlet_pressure = 0.151e6
inlet_massflux = 1687.43
rod_diameter = 6.858e-3
rod_pitch = 1.7e-2
linear_heat_rate = fraction_history
axial_power_profile = axial_power_profile
coolant_material = sodium
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = 0.2
output_properties = 'thermal_conductivity'
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
outputs = exodus
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = ThermalHT9
block = clad
temp = temp
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.88e11
poissons_ratio = 0.236
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_ht9creep'
block = clad
[../]
[./clad_ht9creep]
type = HT9CreepUpdate
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 1.2e-5
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 7874.0
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[./fast_neutron_flux]
type = GenericFunctionMaterial
block = clad
prop_names = fast_neutron_flux
prop_values = fast_neutron_flux_function
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = fraction_history
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
outputs = exodus
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
outputs = exodus
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.9144 # rod height
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
examples/2D-RZ_rodlet_10pellets/fuelpingeo.i
# Model is of a smeared pellet fuel rod (pellet_type_1), using the user object fuel pin geometry.
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
initial_porosity = 0.05
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
# Import mesh file
file = smeared.e
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
# Define dependent variables and initial conditions
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors12.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
# Specify that we need solid mechanics (divergence of stress)
[./solid]
save_in_disp_r = saved_x
save_in_disp_z = saved_y
temp = temp
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
fuel_pin_geometry = 'pin_geometry'
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
block = clad
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = total_strain
variable = radial_strain
index = 0
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = linear
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = linear
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
quadrature = true
contact_pressure = contact_pressure
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (BISON kernel)
type = Elastic
block = pellet_type_1
temp = temp
dep_matl_props = deltav_v0_bd
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
formulation = NonlinearRZ
stress_free_temperature = 295.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
q = q
fuel_pin_geometry = 'pin_geometry'
burnup_relocation_stop = 0.024
relocation_activation1 = 5000
model = ESCORE_modified
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = pellet_type_1
temp = temp
burnup_function = burnup
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./clad_thermal] # general thermal property input
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr (BISON kernel)
type = MechZry
block = clad
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
# thermal_expansion = 5.0e-6 # unnecessary because computing the thermal expansion with MATPRO
model_irradiation_growth = true
model_thermal_expansion = true
stress_free_temperature = 295.0
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
material_type = SRA
formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200
min_value = 0
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
execute_on = linear
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
execute_on = linear
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
execute_on = linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
execute_on = linear
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on = timestep_end
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on = timestep_end
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
execute_on = timestep_end
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
execute_on = timestep_end
[../]
#Stress Measures
[./center_vonMises_fuel]
type = ElementalVariableValue
elementid = 176 # mesh dependent (contains pt. 0.0041, 0.0546333)
variable = vonmises
execute_on = timestep_end
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises
block = pellet_type_1
execute_on = timestep_end
[../]
[./center_vonMises_clad_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent (contains pt. 0.00418, 0.0556267)
variable = vonmises
execute_on = timestep_end
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises
block = clad
execute_on = timestep_end
[../]
# Radial Strain
[./center_strain_rr_fuel]
type = ElementalVariableValue
elementid = 176 # mesh dependent (contains pt. 0.0041, 0.0546333)
variable = radial_strain
execute_on = timestep_end
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet_type_1
execute_on = timestep_end
[../]
[./center_strain_rr_clad_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent (contains pt. 0.00418, 0.0556267)
variable = radial_strain
execute_on = timestep_end
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
execute_on = timestep_end
[../]
[./center_creep_strain_clad_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent (contains pt. 0.00418, 0.0556267)
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = creep_strain_mag
block = clad
execute_on = timestep_end
[../]
# Contact quantities
[./center_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
execute_on = timestep_end
[../]
[./center_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
execute_on = timestep_end
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[]
[VectorPostprocessors]
[./clad]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_clad_radial_displacement'
execute_on = timestep_end
[../]
[./pellet]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_fuel_radial_displacement'
execute_on = timestep_end
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./outfile_clad_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[]
examples/multiapp/pin1.i
##In this example the multiapp system is called to run another BISON simulation. (input1.i calls input2.i) An application of this might be multiple fuel pins in an assembly. This example also demonstrates the internal mesh maker.
[GlobalParams]
density = 10200
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
a_lower = 0.06951
a_upper = 3.72711
initial_porosity = 0.04
[]
# ==================================================== #
# Mesh (and Geometry, internally-meshed)
# ==================================================== #
[Mesh]
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 10
patch_update_strategy = auto
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
clad_thickness = 0.0005
pellet_outer_radius = 0.0041
clad_bot_gap_height = 0.00152
clad_top_gap_height = 0.16
pellet_quantity = 1
pellet_height = 3.6576
clad_gap_width = 8.0e-05
top_bot_clad_height = 0.0167
nx_p = 6 # number of radial elements in the fuel
ny_p = 48 # number of axial elements in the fuel
nx_c = 3 # number of elements in the clad thickness
ny_c = 48 # number of elements in the axially in the clad
ny_cu = 1
ny_cl = 1
intervals = '0.03866 0.08211 0.08211 0.08211 0.08212 0.08211 0.08211 0.08211 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.079212 0.079212 0.079212 0.079212 0.079212'
elem_type = QUAD4
[]
[DefaultElementQuality]
aspect_ratio_upper_bound = 493
[]
# ==================================================== #
# Dimensions and Primary Variables
# ==================================================== #
[Problem]
coord_type = RZ
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 3.000000e+02
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
[../]
[]
# ==================================================== #
# Auxiliary Variables
# ==================================================== #
[AuxVariables]
# ================================================== #
# Nodal Quantities
# ================================================== #
[./htcl]
initial_condition = 500.0
[../]
[./htcv]
initial_condition = 0.0
[../]
[./Tl]
initial_condition = 565.0
[../]
[./Tv]
initial_condition = 565.0
[../]
[./burnup]
block = 3
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5.240000e-06
[../]
# ================================================== #
# Constant Monomial Quantities (Mechanics)
# ================================================== #
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_radial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
# ================================================== #
# Constant Monomial Quantities (Non-Mechanics)
# ================================================== #
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./axial_fission_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_burnup]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_temperature]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.04
[../]
[]
# ==================================================== #
# Time- and Space-Dependent Source and BCs
# ==================================================== #
[Functions]
[./linear_heat_rate_profile]
type = PiecewiseLinear
x = '-100 0 5000'
y = '0 0 25000'
scale_factor = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./coolant_temperature]
type = PiecewiseLinear
x = '-100 0'
y = '293 565'
axis = y
[../]
[./coolant_pressure_ramp]
# used in coolantPressure BC
type = PiecewiseLinear
scale_factor = 1
x = '0 10000.0'
y = '0 1.0'
[../]
[./q]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[../]
[]
# ==================================================== #
# Burnup Equation Set
# ==================================================== #
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.0041
fuel_volume_ratio = 1.0
i_enrich = '3.100e-02 9.690e-01 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00'
RPF = RPF
[../]
[]
# ==================================================== #
# Primary Kernels used in Heat Transfer
# ==================================================== #
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
[../]
[./heat_ie]
# time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
block = 3
[../]
[]
[AuxKernels]
# ================================================== #
# Pre-Defined Types
# ================================================== #
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
factor = 1.27e+14 # (n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
execute_on = linear
[../]
# ================================================== #
# General Mechanics Types
# ================================================== #
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
index = 2
execute_on = timestep_begin
[../]
[./radial_stress]
type = MaterialTensorAux
tensor = stress
variable = radial_stress
index = 0
execute_on = timestep_begin
[../]
[./axial_stress]
type = MaterialTensorAux
tensor = stress
variable = axial_stress
index = 1
execute_on = timestep_begin
[../]
[./radial]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_end
[../]
[./axial]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_end
[../]
[./hoop]
type = MaterialTensorAux
tensor = stress
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_end
[../]
[./elastic_radial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = radial_strain
index = 0
execute_on = timestep_end
[../]
[./elastic_axial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_strain
index = 1
execute_on = timestep_end
[../]
[./elastic_hoop_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_strain
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_radial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 0
execute_on = timestep_end
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
index = 1
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 2
execute_on = timestep_begin
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
execute_on = linear
[../]
# ================================================== #
# Other General Types
# ================================================== #
[./axial_burnup]
type = SpatialUserObjectAux
block = 3
variable = axial_burnup
user_object = axial_burnup
execute_on = timestep_begin
[../]
[./axial_temperature]
type = SpatialUserObjectAux
block = 3
variable = axial_temperature
user_object = axial_temperature
execute_on = timestep_begin
[../]
[]
# ==================================================== #
# Mechanical and Thermal Contact
# ==================================================== #
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
penalty = 1e+14
normalize_penalty = true
normal_smoothing_distance = 0.1
model = frictionless
system = Constraint
formulation = Kinematic
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5 # clad
slave = 10 # fuel
roughness_coef = 3.200000e+00
roughness_fuel = 1.8e-06
roughness_clad = 8e-07
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
initial_gas_fractions = '1.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00'
gas_released = fis_gas_released
tangential_tolerance = 0.0001
normal_smoothing_distance = 0.1
order = FIRST
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./convective_clad_surface_bottom]
type = ConvectiveFluxBC
boundary = '1 2 3'
variable = temp
rate = 38200.0 #convection coefficient (h)
initial = 565.0
final = 585.0
duration = 1.0e4 #duration of initial power ramp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1.55132e+07
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9 # '10 5'
initial_pressure = 1.99948e+06
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get temperature for plenum gas
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
# ==================================================== #
# Specification of Material Properties
# ==================================================== #
[Materials]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
block = 3
temp = temp
burnup = burnup
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
temp = temp
burnup = burnup
total_densification = 1.00000e-02
gas_swelling_type = Sifgrs
[../]
[./fuel_mech]
type = MechUO2
block = 3
temp = temp
burnup = burnup
fission_rate = fission_rate
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 2.5e-06
oxy_to_metal_ratio = 2.0
model_thermal_expansion = true
model_swelling = true
name_swelling_model = fuel_swelling
model_relocation = true
name_relocation_model = fuel_relocation
model_creep = true
matpro_youngs_modulus = true
matpro_poissons_ratio = true
dep_matl_props = deltav_v0_bd
[../]
[./fuel_relocation]
type = RelocationUO2
model = ESCORE
block = 3
burnup = burnup
q = q
diameter = 0.008192
gap = 0.000168
relocation_activation1 = 16404
# Average burnup at which fuel comes into contact with clad at 25kW/m
burnup_relocation_stop = 0.0315
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
material_type = 0
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
model_irradiation_growth = true
model_thermal_expansion = true
model_elastic_modulus = true
cold_work_factor = 0.048127
oxygen_concentration = 0
[../]
[./fission_gas_release]
type = Sifgrs
axial_power_profile = axial_peaking_factors
block = 3
burnup = burnup
fission_rate = fission_rate
hydrostatic_stress = hydrostatic_stress
grain_radius = grain_radius
pellet_brittle_zone = pbz
pellet_id = pellet_id
rod_ave_lin_pow = linear_heat_rate_profile
temp = temp
[../]
[./clad_density]
type = Density
block = 1
density = 7833
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
# ==================================================== #
# User Objects for Output Processing
# ==================================================== #
[UserObjects]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temp
pellet_radius = 0.0041
number_pellets = 1
execute_on = linear
[../]
[./averagefissionrate]
type = LayeredAverage
block = 3
variable = fission_rate
direction = y
num_layers = 49
execute_on = timestep_begin
[../]
[./average_temp]
type = LayeredAverage
block = 3
variable = temp
direction = y
num_layers = 49
execute_on = timestep_begin
[../]
[./averagebu]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 49
execute_on = timestep_begin
[../]
[./casl_average_fission_rate]
variable = fission_rate
type = LayeredAverage
block = 3
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[../]
[./surface_temp]
type = LayeredSideAverage
boundary = 2
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
use_displaced_mesh = 0
execute_on = timestep_begin
[../]
[./axial_temperature]
type = LayeredAverage
block = 3
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[../]
[./axial_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[../]
[./integral_temperature]
type = LayeredAverage
block = 3
variable = temp
direction = y
num_layers = 1
execute_on = timestep_begin
[../]
[./integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
execute_on = timestep_begin
[../]
[./average]
type = LayeredAverage
block = 3
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[../]
[./axial_surface_temperature]
type = LayeredSideAverage
boundary = 2
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
use_displaced_mesh = 0
execute_on = timestep_begin
[../]
[./rod_avg_fast_fluence]
type = LayeredSideAverage
boundary = 2
variable = fast_neutron_fluence
direction = y
num_layers = 1
use_displaced_mesh = 0
execute_on = timestep_begin
[../]
[./casl_clad_surface_heat_flux]
type = LayeredSideFluxAverage
variable = temp
boundary = 2
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
diffusivity = thermal_conductivity
execute_on = timestep_begin
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200
min_value = 0
[../]
[]
# ==================================================== #
# Solver Options
# ==================================================== #
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
verbose = true
line_search = 'none'
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 0.0001
nl_abs_tol = 1e-10
# ================================================== #
# Time Step Control
# ================================================== #
start_time = -100
end_time = 5e6
dtmin = 0.1
dtmax = 1e6
dt = 10
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 1000
time_t = '0 1.0e4 53200 1.0e5'
time_dt = '1.0e3 1.0e3 1.0e3 1.0e5'
[../]
[]
[Postprocessors]
# ================================================== #
# Required for Fission Gas Release Models
# ================================================== #
[./ave_temp_interior]
# used to compute temperature of plenum
type = SideAverageValue
boundary = 9
variable = temp
outputs = exodus
execute_on = 'initial linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
outputs = exodus
execute_on = linear
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
outputs = exodus
execute_on = 'initial linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
execute_on = linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
execute_on = linear
[../]
[./_dt]
type = TimestepSize
execute_on = timestep_end
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[]
# ==================================================== #
# Location and format of output
# ==================================================== #
[Outputs]
perf_graph = true
exodus = true
file_base = pin1_output
interval = 1
[./console]
type = Console
max_rows = 25
output_linear = true
[../]
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
positions = '10 0 0'
input_files = 'pin2.i'
[../]
[]
examples/tensor_mechanics/2D-RZ_rodlet_10pellets/2Dsm_discrete_finiteStrain.i
# This model is a linear element, 10 discrete fuel pellet stack (pellet_type_1) with a fine mesh.
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
initial_porosity = 0.05
disp_x = disp_x
disp_y = disp_y
displacements = 'disp_x disp_y'
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_x saved_t'
[]
[Mesh]
# Import mesh file
file = fine10_rz.e
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
# Define dependent variables and initial conditions
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
#[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
# order = CONSTANT
# family = MONOMIAL
#[../]
#[./stress_yy]
# order = CONSTANT
# family = MONOMIAL
#[../]
#[./stress_zz]
# order = CONSTANT
# family = MONOMIAL
#[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
# Specify that we need solid mechanics (divergence of stress)
[./solid]
disp_r = disp_x
disp_z = disp_y
save_in_disp_r = saved_x
save_in_disp_z = saved_y
temp = temp
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 0.00324 # mesh dependent!
a_upper = 0.12184 # mesh dependent!
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 0.987775 # for use with dished pellets (ratio of actual volume to cylinder volume)
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
#[./stress_xx] # computes stress components for output
# type = MaterialTensorAux
# tensor = stress
# variable = stress_xx
# index = 0
# execute_on = timestep_end
#[../]
#[./stress_yy]
# type = MaterialTensorAux
# tensor = stress
# variable = stress_yy
# index = 1
# execute_on = timestep_end
#[../]
#[./stress_zz]
# type = MaterialTensorAux
# tensor = stress
# variable = stress_zz
# index = 2
# execute_on = timestep_end
#[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain
block = clad
execute_on = timestep_end
[../]
[./creep_strain_rate]
type = MaterialRealAux
property = creep_rate
variable = creep_strain_rate
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
disp_x = disp_x
disp_y = disp_y
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (BISON kernel)
type = Elastic
block = pellet_type_1
disp_r = disp_x
disp_z = disp_y
temp = temp
dep_matl_props = deltav_v0_bd
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
formulation = NonlinearRZ
stress_free_temperature = 295.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = 0.0082
q = q
gap = 160e-6 # diametral gap
burnup_relocation_stop = .03
relocation_activation1 = 5000
model = ESCORE_modified
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = pellet_type_1
temp = temp
burnup_function = burnup
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr (BISON kernel)
type = MechZry
block = clad
disp_r = disp_x
disp_z = disp_y
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
stress_free_temperature = 295.0
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = THIRD
side_order = FIFTH
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
#[./centerline_temp]
# type = SideAverageValue
# boundary = 12
# variable = temp
# execute_on = linear
#[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
# outputs = exodus
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
# outputs = exodus
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./ave_fuel_temp]
type = ElementAverageValue
block = pellet_type_1
variable = temp
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fisson_gas_release]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = linear
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./_dt] # time step
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[../]
[./mid_penetration]
type = NodalVariableValue
nodeid = 3781 #!!Mesh dependent!!
variable = penetration
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temp
nodeid = 3781 # !! Mesh dependent
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises
block = pellet_type_1
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises
block = clad
[../]
[./effective_creep_strain]
type = ElementAverageValue
variable = creep_strain
[../]
[./effective_creep_strain_rate]
type = ElementAverageValue
variable = creep_strain_rate
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_clad_radial_displacement'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_fuel_radial_displacement'
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
# file_base = sm-2D-RZ-10pellet-example_out #Preselected filebase name to play nicely with matplotlib script
[./console]
type = Console
max_rows = 25
[../]
[./outfile_clad_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/IFA_597_3/analysis/rod_7/SM/IFA_597_rod7_frictionless_sm.i
[GlobalParams]
density = 10500.0
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 10
acceptable_multiplier = 10
[]
[Mesh]
file = ifa_597r7.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4'
initial_condition = 6.1074e-6
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = 597-R7_linear_power.csv
format = columns
scale_factor = 1.0526316
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = 597-R7_axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 269029548 269030508 269055648 269056588 280124964 280125427'
y = '0 1 1 0.014475 0.014475 0.457 0.457 0.014475'
[../]
[./flux]
type = PiecewiseLinear
data_file = flux.csv
format = columns
[../]
[./clad_average_temp]
type = PiecewiseLinear
data_file = 597-R7_clad_outer_temperature.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_y = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3 4'
fission_rate = fission_rate
fraction = 0.95 # per Glyn Rossiter's suggestion
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00324
a_upper = 0.3571
fuel_inner_radius = 0.000
fuel_outer_radius = 0.0052195
fuel_volume_ratio = .994899
i_enrich = '0.03347 0.96653 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3 4'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.3e-6
roughness_fuel = 1.38e-6
roughness_coef = 3.2
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 269055648
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_average_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 #changes to 3.2e6 after 59 MWd/kgUO2
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0e5 #changes to 5e5 after 59 MWd/kgUO2
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 269055648
refab_pressure = 5e5
refab_temperature = 500
refab_volume = 6e-6
save_in = 'saved_x saved_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = '3 4'
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./density_clad]
type = Density
block = 1
density = 6551.0
[../]
[./density_fuel]
type = Density
block = '3 4'
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4'
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
initial_porosity = 0.04372
[../]
[./fuel_mechanics]
type = Elastic
block = '3 4'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
stress_free_temperature = 297
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = '3 4'
burnup_function = burnup
diameter = 0.010439
q = q
gap = 2.11e-4
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
stress_free_temperature = 297
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.04372
diff_coeff_option = 3
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 280125427
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 20
linear_iteration_ratio = 100
dt = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3 4'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = exodus
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = exodus
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3 4'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.3539 # rod height
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = '3 4'
[../]
[./average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_profile
fuel_outer_radius = 0.0052195
fuel_inner_radius = 0.000
outputs = exodus
[../]
[./power_tc_location]
type = FunctionValuePostprocessor
function = q
point = '0 0.33319 0'
[../]
[./TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 7476 # Global NodeID 7477
[../]
[./elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 1887 # Global NodeID 1888
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = '3 4'
[]
[Outputs]
perf_graph = true
csv = 1
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage TC_temp rod_total_power elongation'
execute_on = 'FINAL'
[../]
[]
test/tests/meso_thcond_test/sifgrs_swelling_fissiongas_graingrowth.i
# This test is for the fuel swelling and porosity computation in the Sifgrs
# fission gas behavior model for UO2.
# As complementary to the fission gas release process, the fission gas
# swelling is related to gas retention in the fuel in the form of bubbles.
# Through a direct description of the gas bubble development, the fission
# gas swelling and release are modeled as inherently coupled processes, on a
# physical basis. Only the fission gas swelling due to grain-face bubbles is
# considered.
# In a comprehensive treatment of fission gas release and fuel swelling, Sifgrs
# also incorporates empirical models for the swelling due to solid fission
# products and the fuel densification.
# Moreover, the different contributions to fuel porosity, namely, those due to
# fabrication pores, gas bubbles (thus associated with fission gas swelling),
# and sintering (densification), are computed consistently with the swelling
# calculations. Then, the fuel total porosity in each mesh location can be
# tracked (auxkernel PorosityAuxUO2), and considered in the computation of
# other relevant material properties like the fuel thermal conductivity
# (material model ThermalFuel).
# This test aims at demonstrating the above model capabilities. The considered
# case involves a single-element cubic domain, constant temperature (1400 K)
# and fission rate (1e19 f/(m**3s)), and a irradiation time of 1e8 s. The
# Sifgrs model is adopted for calculating the fission gas release and fuel
# swelling. Starting from a typical as-fabricated value of 5%, the fuel
# porosity evolves consistently with the swelling. The fuel thermal
# conductivity is calculated as coupled with porosity, which allows taking
# into account the conductivity degradation due to progressive increase of
# gaseous porosity (see also the attached file regression_tests_sifgrs.xlsx).
[Mesh]
type = FileMesh
file = cube_111.e
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = 1400.
[../]
[./Fiss_func]
type = ParsedFunction
value = 1.e19
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 1400.
[../]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./burnup]
order = FIRST
family = LAGRANGE
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.05
[../]
[./density]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_sl]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_dn]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
[../]
[./intra_porosity]
order = CONSTANT
family = MONOMIAL
[../]
[./gas_atom_conc]
order = CONSTANT
family = MONOMIAL
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
[../]
[./GBresistance]
order = CONSTANT
family = MONOMIAL
[../]
[./grain_radius]
order = CONSTANT
family = MONOMIAL
initial_condition = 5e-6
[../]
[]
[SolidMechanics]
[./solid]
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
temp = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./frate]
type = FissionRateAux
variable = fission_rate
block = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./brnp]
type = BurnupAux
variable = burnup
block = 1
fission_rate = fission_rate
density = 10417.
execute_on = 'initial timestep_begin'
[../]
[./por]
type = PorosityAuxUO2
block = 1
variable = porosity
execute_on = linear
[../]
[./rho]
type = MaterialRealAux
variable = density
property = density
execute_on = 'initial timestep_end'
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = total_swell
[../]
[./thcond]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./GBCoverage]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = 'initial timestep_end'
[../]
[./intra_porosity]
type = MaterialRealAux
variable = intra_porosity
property = intra_porosity
[../]
[./gas_atom_conc]
type = MaterialRealAux
variable = gas_atom_conc
property = gas_atom_conc
[../]
[./deltav_v0_dn]
type = MaterialRealAux
variable = deltav_v0_dn
property = densification
[../]
[./deltav_v0_sl]
type = MaterialRealAux
variable = deltav_v0_sl
property = solid_swell
[../]
[./rad_bbl_bdr]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = 'initial timestep_end'
[../]
[./GBresistance]
type = MaterialRealAux
variable = GBresistance
property = GBresistance
execute_on = 'initial timestep_end'
[../]
[./grain_radius]
type = GrainRadiusAux
variable = grain_radius
temp = temp
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[../]
[./x_disp]
type = DirichletBC
variable = disp_x
value = 0
boundary = 1
[../]
[./y_disp]
type = DirichletBC
variable = disp_y
value = 0
boundary = 2
[../]
[./z_disp]
type = DirichletBC
variable = disp_z
value = 0
boundary = 3
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 1
burnup = burnup
temp = temp
density = 10417.
save_solid_swell = true
save_densification = true
[../]
[./solid]
type = Elastic
block = 1
temp = temp
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
youngs_modulus = 2.e+11
poissons_ratio = 0.3
thermal_expansion = 1.e-05
dep_matl_props = deltav_v0_bd
[../]
[./density]
type = Density
block = 1
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
density = 10417.
[../]
[./fission_gas_release_and_swelling]
type = Sifgrs
block = 1
temp = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.05
[../]
[./fuel_thermal_meso]
type = ThermalUO2FissionGas
block = 1
temp = temp
burnup = burnup
grain_radius = grain_radius
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-05
nl_rel_tol = 1.e-05
start_time = 0.
num_steps = 100
dt = 1.e+06
end_time = 1.e+08
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[./GBCov]
type = ElementalVariableValue
variable = GBCoverage
elementid = 0
execute_on = 'initial timestep_end'
[../]
[./gas_atom_conc]
type = ElementalVariableValue
variable = gas_atom_conc
elementid = 0
[../]
[./thcond]
type = ElementalVariableValue
variable = thermal_conductivity
elementid = 0
execute_on = 'initial timestep_end'
[../]
[./intra_porosity]
type = ElementalVariableValue
variable = intra_porosity
elementid = 0
[../]
[./rad_bbl_bdr]
type = ElementalVariableValue
variable = rad_bbl_bdr
elementid = 0
execute_on = 'initial timestep_end'
[../]
[./GBresistance]
type = ElementalVariableValue
variable = GBresistance
elementid = 0
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
file_base = graingrowth
csv = true
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[]
assessment/LWR/validation/IFA_534/analysis/rod_18/IFA_534_rod18.i
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
temperature = temp
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = IFA534_rod18.e
patch_size = 5 # 20 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 11.05e-6 # must be the same as the initial value in Sifgr
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = IFA534_linear_power_rod18.csv
format = columns
[../]
[./axial_peaking_factors]
# reads and interpolates an input file containing the axial power profile vs time
type = ParsedFunction
value = 1
[../]
[./pressure_ramp]
# reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
#Ambient for initial build @ 0.101353 MPa, Base irradiation in a PWR @ 15.5 MPa, Ambient for refab @ 0.101353 MPa, Ramp testing done in the Halden Rx @ 3.2 MPa, Ambient for PIE @ 0.101353 MPa
x = '-100 0 127353600 127357200 127425420 127432620 136365300 136368900'
y = '0.006539 1 1 0.006539 0.006539 0.20645 0.20645 0.006539'
[../]
[./flux]
type = PiecewiseLinear
data_file = IFA534_fast_flux_rod18.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_bc]
type = PiecewiseLinear
data_file = IFA534_clad_temp_rod18.csv
format = columns
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress'
decomposition_method = EigenSolution
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress creep_strain_xx
creep_strain_xy creep_strain_yy creep_strain_zz'
decomposition_method = EigenSolution
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1 # fission rate applied to the fuel only
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
a_lower = 0.00324
a_upper = .407
fuel_outer_radius = .00456
fuel_inner_radius = 0
i_enrich = '0.0384 0.9616 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = pellet_type_1
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
# rod_ave_lin_pow = power_history
# axial_power_history = axial_peaking_factors
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = '1'
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = '1'
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = 1
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
disp_x = disp_x
disp_y = disp_y
system = constraint
penalty = 1e7
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles
master = 5 # clad
gas_released = fission_gas_released
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 127360800
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionPresetBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.15e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 127360800
refab_pressure = 2.15e6
refab_temperature = 293
refab_volume = 5.1e-6
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup_function = burnup
initial_fuel_density = 10431
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[../]
[./fuel_elasticity_and_creep]
type = ComputeThermalExpansionEigenstrain
block = 3
stress_free_temperature = 293
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = .00912
linear_heat_rate_function= q
gap = 170e-6 #diameteral gap
relocation_activation1 = 5000
burnup_relocation_stop = .029
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_inelastic_stressUpdate]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = 'clad_inelastic_stressUpdate'
[../]
[./clad_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = 1
stress_free_temperature = 293
thermal_expansion_coeff = 5.0e-6
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_eigenstrain]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 136369000
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_history
max_function_change = 2e6
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = .407 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 1700
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/MOX/JOYO/B14/PTM003/analysis/b14_ptm003_2DRZ_t.i
[GlobalParams]
density = 11172.82
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type= ReferenceResidualProblem
coord_type = RZ
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.4
pellet_outer_radius = 0.0027
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.00008
clad_thickness = 0.00047
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 0.685
elem_type = QUAD8
nx_c = 4
ny_c = 100
nx_p = 20
ny_p = 100
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
[../]
[]
[AuxVariables]
[./pore]
[../]
[./fission_rate]
[../]
[./burnup]
[../]
[./saved_t]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_p]
[../]
[./fast_neutron_flux]
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 39814.5 39814.5 44289.3 44289.3 53927.4 53927.4 0'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 251280'
y = '3.3e+15 3.3e+15'
[../]
[./f_temp_out_clad]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 634.94 662.273 676.998 686.217 706.339 727 743.358 758.311 780.069 799.077 815.576 846.374 860.233 875.494 882.809 889.8'
scale_factor = 1
axis = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846 0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846'
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./average_power_history]
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 34700 34700 38600 38600 47000 47000 0'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.1409
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = fast_neutron_flux_function
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./temp_clad_outside]
type = FunctionPresetBC
variable = temp
function = f_temp_out_clad
boundary = 2
[../]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
temperature = temp
porosity = pore
block = pellet
Am_content = 0.0237
oxy_to_metal_ratio = 1.961
output_properties = 'thermal_conductivity'
[../]
[./fuel_density]
type = Density
block = pellet
density = 11172.82
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
#outputs = exodus
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.97
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 11172.82
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = Thermal316
block = clad
temp = temp
[../]
[./clad_density]
type = Density
block = clad
density = 8000
[../]
[./clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
fission_rate = fission_rate
grain_radius_const = 11e-06
bubble_gb_limit = 1.0e+11
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
picard_max_its = 1
picard_abs_tol = 1e-3
picard_rel_tol = 1e-3
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-3
nl_abs_tol = 1e-3
start_time = 0
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
[../]
[./ave_pore]
type = ElementAverageValue
block = pellet
variable = pore
[../]
[./max_pore]
type = NodalExtremeValue
block = pellet
value_type = max
variable = pore
[../]
[./min_pore]
type = NodalExtremeValue
block = pellet
value_type = min
variable = pore
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
# variable = temp
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
# variable = temp
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
# variable = temp
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.4 # rod height
[../]
[]
[VectorPostprocessors]
[./fuel_radial_temperature_Sample1]
type = LineValueSampler
variable = temp
start_point = '0.0 0.283 0.0'
end_point = '0.0027 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_Sample1]
type = LineValueSampler
variable = pore
start_point = '0.0 0.283 0.0'
end_point = '0.0027 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./fuel_radial_temperature_Sample2]
type = LineValueSampler
variable = temp
start_point = '0.0 0.347 0.0'
end_point = '0.0027 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_Sample2]
type = LineValueSampler
variable = pore
start_point = '0.0 0.347 0.0'
end_point = '0.0027 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./fuel_radial_temperature_Sample3]
type = LineValueSampler
variable = temp
start_point = '0.0 0.2 0.0'
end_point = '0.0027 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_Sample3]
type = LineValueSampler
variable = pore
start_point = '0.0 0.2 0.0'
end_point = '0.0027 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./line_plot]
type = CSV
execute_on = 'FINAL'
interval = 1
file_base = 1d
create_final_symlink = true
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[../]
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = b14_ptm003_pore.i
[../]
[]
[Transfers]
[./temp_to_sub]
type = MultiAppProjectionTransfer
direction = to_multiapp
multi_app = sub
source_variable = temp
variable = temp
[../]
[./pore_from_sub]
type = MultiAppInterpolationTransfer
direction = from_multiapp
multi_app = sub
source_variable = pore
variable = pore
[../]
[]
[Debug]
show_var_residual_norms = true
[]
assessment/LWR/validation/OSIRIS_H09/analysis/SM/OSIRIS_H09_sm.i
[GlobalParams]
density = 10465.04 # 95.31% of TD (Assumed TD to be 10980)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = H09_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 7.0668e-6 # Using centre pellet average grain size of 9.060
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = h09_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = h09_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 102133764 102134124'
y = '0.006533 1 1 0.006533'
[../]
[./flux]
type = PiecewiseBilinear
data_file = h09_fast_flux.csv
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_temp_bc]
type = PiecewiseBilinear
data_file = h09_clad_bc.csv
scale_factor = 1
axis = 1
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00324
a_upper = 3.66362
fuel_inner_radius = 0.0
fuel_outer_radius = 0.004095
i_enrich = '0.03249 .96751 0 0 0 0' # 3.249% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 3.1e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
density = 10465.04
tensor_mechanics_compatibility = true
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
stress_free_temperature = 293
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.00819
gap = 160.e-6
q = q
burnup_relocation_stop = .029
relocation_activation1 = 5000
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
stress_free_temperature = 293
thermal_expansion = 5.0e-6
model_irradiation_growth = true
model_thermal_expansion = false
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 102134124
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 10
linear_iteration_ratio = 100
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/IFA_597_3/analysis/rod_7/IFA_597_rod7_frictionless.i
[GlobalParams]
density = 10500.0
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 10
acceptable_multiplier = 10
[]
[Mesh]
file = ifa_597r7.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4'
initial_condition = 6.1074e-6
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = 597-R7_linear_power.csv
format = columns
scale_factor = 1.0526316
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = 597-R7_axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 269029548 269030508 269055648 269056588 280124964 280125427'
y = '0 1 1 0.014475 0.014475 0.457 0.457 0.014475'
[../]
[./flux]
type = PiecewiseLinear
data_file = flux.csv
format = columns
[../]
[./clad_average_temp]
type = PiecewiseLinear
data_file = 597-R7_clad_outer_temperature.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = '3 4'
strain = FINITE
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress'
decomposition_method = EigenSolution
[../]
[./clad]
block = 1
strain = FINITE
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
decomposition_method = EigenSolution
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3 4'
fission_rate = fission_rate
fraction = 0.95 # per Glyn Rossiter's suggestion
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00324
a_upper = 0.3571
fuel_inner_radius = 0.000
fuel_outer_radius = 0.0052195
fuel_volume_ratio = .994899
i_enrich = '0.03347 0.96653 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = 1
variable = creep_strain_mag
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.3e-6
roughness_fuel = 1.38e-6
roughness_coef = 3.2
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 269055648
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = clad_average_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 #changes to 3.2e6 after 59 MWd/kgUO2
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0e5 #changes to 5e5 after 59 MWd/kgUO2
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 269055648
refab_pressure = 5e5
refab_temperature = 500
refab_volume = 6e-6
save_in = 'saved_x saved_y'
[../]
[../]
[]
[Materials]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4'
burnup_function = burnup
temperature = temp
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
initial_fuel_density = 10500.0
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4'
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
initial_porosity = 0.04372
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = '3 4'
temperature = temp
stress_free_temperature = 297
thermal_expansion_coeff = 10e-6
eigenstrain_name = fuel_thermal_eigenstrain
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = '3 4'
temperature = temp
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4'
burnup_function = burnup
diameter = 0.010439
linear_heat_rate_function = q
gap = 2.11e-4
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_eigenstrain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='clad_creep_stress'
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = clad_irradiation_growth_eigenstrain
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 297
temperature = temp
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.04372
diff_coeff_option = 3
transient_option = 2
[../]
[./density_clad]
type = Density
block = 1
density = 6551.0
[../]
[./density_fuel]
type = Density
block = '3 4'
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 280125427
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 20
linear_iteration_ratio = 100
dt = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3 4'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = exodus
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = exodus
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3 4'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.3539 # rod height
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = '3 4'
[../]
[./average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_profile
fuel_outer_radius = 0.0052195
fuel_inner_radius = 0.000
outputs = exodus
[../]
[./power_tc_location]
type = FunctionValuePostprocessor
function = q
point = '0 0.33319 0'
[../]
[./TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 7476 # Global NodeID 7477
[../]
[./elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 1887 # Global NodeID 1888
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = '3 4'
[]
[Outputs]
perf_graph = true
csv = 1
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage TC_temp rod_total_power elongation'
execute_on = 'FINAL'
[../]
[]
test/tests/GrainRadiusPorosity_test/GrainRadiusPorosity_test.i
# This test verifies the functionality of the grain size evolution model in GrainRadiusPorosity
# Note that this model is still underdevelopment and is not ready for general use
[Problem]
[]
[Mesh]
type = FileMesh
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Temp_func]
type = PiecewiseLinear
x = '0. 1.e+08'
y = '1500. 1700. '
[../]
[./Fiss_func]
type = ParsedFunction
value = 1.e19
[../]
[./dummy_burnup]
type = ParsedFunction
value = 0
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 1000
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./grain_radius]
order = CONSTANT
family = MONOMIAL
block = 1
initial_condition = 5.e-06
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
[../]
[./fabrication_porosity]
order = CONSTANT
family = MONOMIAL
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./grain_radius]
type = GrainRadiusPorosity
block = 1
variable = grain_radius
temp = T
execute_on = 'initial linear'
[../]
[./GBCoverage]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = 'initial timestep_end'
[../]
[./fabrication_porosity]
type = MaterialRealAux
variable = fabrication_porosity
property = fabrication_porosity
execute_on = 'initial timestep_end'
[../]
[./rad_bbl_bdr]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = 'initial timestep_end'
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[../]
[]
[Materials]
[./UO2]
type = HeatConductionMaterial
block = 1
temp = T
thermal_conductivity = 1.0
specific_heat = 1.0
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 1
temp = T
fission_rate = fission_rate
saturation_coverage = 0.015
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.05
burnup_function = dummy_burnup
[../]
[./density]
type = Density
block = 1
density = 10417.
[../]
[./porosity]
type = VSwellingUO2
block = 1
burnup_function = dummy_burnup
temp = T
density = 10417.
[../]
[]
[Executioner]
# Preconditioned JFNK (default)
type = Transient
solve_type = PJFNK
line_search = 'bt'
l_tol = 1.e-04
nl_abs_tol = 1.e-08
nl_rel_tol = 1.e-08
start_time = 0.
num_steps = 500
dt = 1.e+06
end_time = 1.e+08
# MF function should be the same as F function
# when reusing the base vector
snesmf_reuse_base = false
[]
[Postprocessors]
[./average_grain_radius]
type = ElementAverageValue
block = 1
variable = grain_radius
execute_on = 'initial timestep_end'
[../]
[./GBCoverage]
type = ElementAverageValue
variable = GBCoverage
execute_on = 'initial timestep_end'
[../]
[./fabrication_porosity]
type = ElementAverageValue
variable = fabrication_porosity
execute_on = 'initial timestep_end'
[../]
[./rad_bbl_bdr]
type = ElementAverageValue
variable = rad_bbl_bdr
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
assessment/LWR/validation/RIA_NSRR_FK/analysis/FK7/FK07.i
# This file was created using BIF with the following inputs:
# FK06/FK06.var - md5sum: 5a60c05af67ba840a89caacf70b852e2
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
[GlobalParams]
density = 10310.8809782
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
displacements = 'disp_x disp_y'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
displacements = 'disp_x disp_y'
patch_size = 5
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
top_bot_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.05265
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[AuxVariables]
[./BuTC]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gap]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./fission_rate]
initial_condition = 0
[../]
[./grain_radius]
block = 3
initial_condition = 5.96e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./integral_burnup]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_radial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.0592261881186
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[../]
[./flux]
type = ConstantFunction
value = 0.0
[../]
[./axial_peaking_factors]
type = ConstantFunction
value = 1
[../]
[./coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[../]
[./linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[../]
[./axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[../]
[./burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[../]
[./radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[../]
[./radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[../]
[./initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
i_enrich = '0.045 0.955 0.0 0.0 0.0 0.0'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
save_in = saved_t
block = 3
[../]
[]
[AuxKernels]
[./BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[../]
[./gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[../]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = timestep_begin
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_begin
[../]
[./radial_stress]
type = MaterialTensorAux
tensor = stress
variable = radial_stress
index = 0
execute_on = timestep_begin
[../]
[./axial_stress]
type = MaterialTensorAux
tensor = stress
variable = axial_stress
index = 1
execute_on = timestep_begin
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
index = 2
execute_on = timestep_begin
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./axial_strain]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = stress
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./elastic_radial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = radial_strain
index = 0
execute_on = timestep_begin
[../]
[./elastic_axial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_strain
index = 1
execute_on = timestep_begin
[../]
[./elastic_hoop_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_strain
index = 2
execute_on = timestep_begin
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_begin
[../]
[./creep_strain_radial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 0
execute_on = timestep_begin
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
index = 1
execute_on = timestep_begin
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 2
execute_on = timestep_begin
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
friction_coefficient = 2.5
normal_smoothing_distance = 0.1
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
roughness_coef = 3.2
roughness_fuel = 1.5e-6
roughness_clad = 1.75e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
initial_gas_fractions = '0.25 0.75 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0'
gas_released = fission_gas_released
tangential_tolerance = 1.0e-6
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '10 5'
initial_pressure = 0.1e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
block = 3
temp = temp
burnup = BuTC
initial_porosity = 0.0592261881186
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
temp = temp
burnup = burnup
total_densification = 0.006
gas_swelling_type = SIFGRS
[../]
[./fuel_mech]
type = MechUO2
block = 3
temp = temp
burnup = BuTC
fission_rate = fission_rate
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 5.56e-06
oxy_to_metal_ratio = 2.0
model_thermal_expansion = true
model_swelling = true
name_swelling_model = fuel_swelling
model_relocation = false
name_relocation_model = fuel_relocation
model_creep = false
model_hotpressing = false
has_hotpressing_plasticity = false # used to turn on plasticity models
matpro_youngs_modulus = false
matpro_poissons_ratio = false
dep_matl_props = deltav_v0_bd
# input_yield_stress = 100e6 # used to turn on plasticity models
# input_hardening_modulus = 2e9 # used to turn on plasticity models
# transition_temperature = 1273 # used to change the hot presing temperature
# isotropic_cracking = true # used for isotropic softening model
# rod_ave_lin_pow = linear_heat_rate_profile # used for isotropic softening model
# cracking_stress = 120e6 # used for smeared cracking model
# cracking_release = exponential # used for smeared cracking model
# cracking_residual_stress = 0.1 # used for smeared cracking model
# cracking_beta = 0.01 # used for smeared cracking model
# compute_method = ShearRetention # used for smeared cracking model
# max_cracks = 3 # used for smeared cracking model
# active_crack_planes = '0 1 2' # used for smeared cracking model
stress_free_temperature = 293
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = buavg
q = linear_heat_generation_rate
diameter = 0.01054
gap = 1e-05
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
creeprate_scalef = 1
cold_work_factor = 0.01
material_type = 0
model_irradiation_growth = false
model_thermal_expansion = true
model_elastic_modulus = true
constitutive_model = plasticity
compute_JIntegral = true
formulation = NonlinearRZ
[../]
[./combined]
type = CombinedCreepPlasticity
block = clad
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = clad
temp = temp
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
material_type = 0
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
[../]
[./plasticity]
type = ZryPlasticity
block = 1
temp = temp
initial_fast_fluence = 1.30e26
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
use_matpro = true
output_properties = yield_stress
outputs = all
scale_factor = 1.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = 2
[../]
[./clad_density]
type = Density
block = 1
density = 6551
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[UserObjects]
[./avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[../]
[./integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[./contactslip]
type = ContactSlipDamper
master = 5
slave = 8
min_damping_factor = 0.05
[../]
[]
[Postprocessors]
[./average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[]
[VectorPostprocessors]
[./rad_temp]
type = LineValueSampler
end_point = '0.00527 0.0503 0.0'
start_point = '0.0 0.0503 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
output_linear = true
[../]
[./dummy]
type = CSV
enable = true
[../]
[]
assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_2DRZ_t.i
[GlobalParams]
density = 11057.75
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type= ReferenceResidualProblem
coord_type = RZ
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.4
pellet_outer_radius = 0.002675
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000105
clad_thickness = 0.00047
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 0.685
elem_type = QUAD8
nx_c = 4
ny_c = 100
nx_p = 20
ny_p = 100
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
[../]
[]
[AuxVariables]
[./pore]
[../]
[./fission_rate]
[../]
[./burnup]
[../]
[./saved_t]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_p]
[../]
[./fast_neutron_flux]
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 39814.5 39814.5 44289.3 44289.3 53927.4 53927.4 0'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 251280'
y = '3.3e+15 3.3e+15'
[../]
[./f_temp_out_clad]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 634.94 662.273 676.998 686.217 706.339 727 743.358 758.311 780.069 799.077 815.576 846.374 860.233 875.494 882.809 889.8'
scale_factor = 1
axis = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846 0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846'
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./average_power_history]
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 34700 34700 38600 38600 47000 47000 0'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.1372
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.00535
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = fast_neutron_flux_function
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./temp_clad_outside]
type = FunctionPresetBC
variable = temp
function = f_temp_out_clad
boundary = 2
[../]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
temperature = temp
porosity = pore
block = pellet
Am_content = 0.0237
oxy_to_metal_ratio = 1.982
output_properties = 'thermal_conductivity'
[../]
[./fuel_density]
type = Density
block = pellet
density = 11057.75
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 11057.75
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = Thermal316
block = clad
temp = temp
[../]
[./clad_density]
type = Density
block = clad
density = 8000
[../]
[./clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
fission_rate = fission_rate
grain_radius_const = 12e-06
bubble_gb_limit = 1.0e+11
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
picard_max_its = 1
picard_abs_tol = 1e-3
picard_rel_tol = 1e-3
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-3
nl_abs_tol = 1e-3
start_time = 0
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
[../]
[./ave_pore]
type = ElementAverageValue
block = pellet
variable = pore
[../]
[./max_pore]
type = NodalExtremeValue
block = pellet
value_type = max
variable = pore
[../]
[./min_pore]
type = NodalExtremeValue
block = pellet
value_type = min
variable = pore
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.4 # rod height
[../]
[]
[VectorPostprocessors]
[./fuel_radial_temperature_Sample1]
type = LineValueSampler
variable = temp
start_point = '0.0 0.283 0.0'
end_point = '0.002675 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_Sample1]
type = LineValueSampler
variable = pore
start_point = '0.0 0.283 0.0'
end_point = '0.002675 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./fuel_radial_temperature_Sample2]
type = LineValueSampler
variable = temp
start_point = '0.0 0.347 0.0'
end_point = '0.002675 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_Sample2]
type = LineValueSampler
variable = pore
start_point = '0.0 0.347 0.0'
end_point = '0.002675 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./fuel_radial_temperature_Sample3]
type = LineValueSampler
variable = temp
start_point = '0.0 0.2 0.0'
end_point = '0.002675 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_Sample3]
type = LineValueSampler
variable = pore
start_point = '0.0 0.2 0.0'
end_point = '0.002675 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./line_plot]
type = CSV
execute_on = 'FINAL'
interval = 1
file_base = 1d
create_final_symlink = true
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[../]
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = b14_ptm002_pore.i
[../]
[]
[Transfers]
[./temp_to_sub]
type = MultiAppProjectionTransfer
direction = to_multiapp
multi_app = sub
source_variable = temp
variable = temp
[../]
[./pore_from_sub]
type = MultiAppInterpolationTransfer
direction = from_multiapp
multi_app = sub
source_variable = pore
variable = pore
[../]
[]
[Debug]
show_var_residual_norms = true
[]
assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT4/SM/MT4_1-2kW_sm.i
################################################################################
#
# Description: LOCA MT-4 Test with constant power level of 1.2 kW/m
#
#
# External files:
# axial peaking factor file MT4_axial_peaking.csv
#
################################################################################
[GlobalParams]
density = 10431 #95 %TD Assume TD = 10980 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 6.1e-4
pellet_mesh_density = customize
ny_p = 100
nx_c = 4
nx_p = 12
pellet_outer_radius = .00413
ny_cu = 3
ny_c = 100
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.66
ny_cl = 3
clad_top_gap_height = 0.18613
clad_gap_width = 7.5e-5
elem_type = QUAD8
patch_size = 20 # 1000 lowering this and setting the strategy to auto will reduce the amount of memory required to run the job.
patch_update_strategy = auto
partitioner = centroid # this will help with run time
centroid_partitioner_direction = y # this will help with run time
[]
[DefaultElementQuality]
aspect_ratio_upper_bound = 253
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = temp_func
[../]
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 7.8e-6 # 2D grain radius
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase] # Fraction of beta phase in Zry
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate_aux]
order = CONSTANT
family = MONOMIAL
[../]
[./bursted]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./htype]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 110'
y = '1.2e3 1.2e3'
[../]
[./hmode_function]
type = PiecewiseConstant
x = '0 57 110'
y = '9 10 10'
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = MT4_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '0 110'
y = '0.28 0.28'
scale_factor = 1e6
[../]
[./temp_func]
type = ParsedFunction
value = '-24.096*y*y+152.47*y+437.81' #
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3 # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate # coupling to the fission_rate aux variable
save_in = saved_t
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
factor = 0.16e15 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = '1 2 3'
[../]
[./hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = hmode
boundary = '1 2 3'
[../]
[./htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = htype
boundary = '1 2 3'
[../]
[./elastic_strain_yy]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_yy
index = 1
execute_on = timestep_end
[../]
[./elastic_strain_xx]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_xx
index = 0
block = 1
execute_on = timestep_end
[../]
[./elastic_strain_zz]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_zz
index = 2
block = 1
execute_on = timestep_end
[../]
[./plastic_strain_yy]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_yy
index = 1
block = 1
execute_on = timestep_end
[../]
[./plastic_strain_xx]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_xx
index = 0
block = 1
execute_on = timestep_end
[../]
[./plastic_strain_zz]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_zz
index = 2
block = 1
execute_on = timestep_end
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = 1
[../]
[./creep_rate]
type = MaterialRealAux
variable = creep_rate
property = creep_rate
block = 1
execute_on = timestep_end
[../]
[./creep_rate_aux]
type = MaterialRealAux
variable = creep_rate_aux
property = creep_rate
block = 1
execute_on = timestep_end
[../]
[./bursted]
type = MaterialRealAux
variable = bursted
property = failed
boundary = 2
execute_on = timestep_end
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
quantity = hoop
execute_on = timestep_end
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./axial_strain]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./total_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_strain
quantity = hoop
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[]
#TODO: Add option in StandardLWRFuelRodOutputs to compute plenum temperature this way.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.66478
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00413 # m
i_enrich = '0.0293 .9707 0 0 0 0' # 2.93% enriched U-235
RPF = RPF
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e7
normalize_penalty = true
system = Constraint
model = frictionless
# model = coulomb
formulation = penalty
# friction_coefficient = 1.0
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
# Define boundary conditions
[BCs]
# [./clad_inner_surface]
# type = FunctionNeumannBC
# boundary = 5
# function = q
# variable = temp
# [../]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 1.0 # Pa
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9 # clad interior + fuel exterior
initial_pressure = 9.3e6 # Pa
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 311 # K
inlet_pressure = 0.28e6 # Pa
# inlet_massflux = massfluxfunc # kg/m^2-sec
rod_diameter = 0.00963 # m
rod_pitch = 1.275e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
heat_transfer_mode = hmode_function
heat_transfer_coefficient = 0.0000001 #W/m^2-K
# heat_transfer_mode = 10
htc_correlation_type = 1
flooding_time = 57.0
flooding_rate = 0.127 # m/s
initial_temperature = 1140 # K
initial_power = 1.776 # kW/m
blockage_ratio = 0.0 #
fuel_stack_length = 3.66 # m
reflooding_model = 1
compute_enthalpy = false
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
cold_work_factor = 0.5
formulation = NonlinearRZ
model_thermal_expansion = false
model_elastic_modulus = false
model_irradiation_growth = false
constitutive_model = combined
max_inelastic_increment = 1e-4
compute_material_timestep_limit = true
[../]
[./creep]
type = CreepZryModel
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
temp = temp
model_primary_creep = false
model_thermal_creep = false
model_thermal_creep_loca = true
model_irradiation_creep = false
creeprate_scalef = 1.0
temp_standard_creep_end = 700.
temp_loca_creep_begin = 900.
[../]
[./combined]
type = CombinedCreepPlasticity
block = 1
temp = temp
submodels = 'creep'
[../]
[./plasticity]
type = ZryPlasticity
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
Zircaloy_type = 4
[../]
[./phase]
type = ZrPhase
block = 1
temperature = temp
numerical_method = 2
[../]
[./failure_criterion]
type = FailureCladding
boundary = '2'
criterion = 2
hoop_stress = hoop_stress
eff_strain_rate_creep = creep_rate_aux
temperature = temp
fract_beta_phase = fract_beta_phase
outputs=all
output_properties='failed burst_stress'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
# initial_grain_radius = 6.552e-6 # 2D grain radius 4.2e-6
grain_radius = grain_radius
gbs_model = true
burnup = burnup
# compute_swelling = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
# [./contact_slip]
# type = ContactSlipDamper
# master = 5
# slave = 10
# min_damping_factor = 0.05
# [../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = 0.0
end_time = 58.2
dtmax = 5
dtmin = 0.00001
[./TimeStepper]
type = PostprocessorDT
postprocessor = material_timestep
dt = 0.01
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
execute_on=linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
execute_on=linear
[../]
[./max_betaph_fract]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
execute_on=timestep_end
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
execute_on=timestep_end
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.66 # rod height
execute_on=timestep_end
[../]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = 1
[../]
[./max_creep_rate]
type = ElementExtremeValue
block = 1
value_type = max
variable = creep_rate_aux
[../]
[./bursted]
type = ElementExtremeValue
block = 1
value_type = max
variable = bursted
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'bursted > 0'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[./console]
type = Console
output_linear = true
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/IFA_534/analysis/rod_19/SM/IFA_534_rod19_sm.i
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
disp_x = disp_x
disp_y = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = IFA534_rod19.e
patch_size = 10 # 20 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 4.25e-6 # must be the same as the initial value in Sifgr
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = IFA534_linear_power_rod19.csv
format = columns
[../]
[./axial_peaking_factors]
# reads and interpolates an input file containing the axial power profile vs time
type = ParsedFunction
value = 1
[../]
[./pressure_ramp]
# reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
#Ambient for initial build @ 0.101353 MPa, Base irradiation in a PWR @ 15.5 MPa, Ambient for refab @ 0.101353 MPa, Ramp testing done in the Halden Rx @ 3.2 MPa, Ambient for PIE @ 0.101353 MPa
x = '-100 0 127353600 127357200 127425420 127432620 136365300 136368900'
y = '0.006539 1 1 0.006539 0.006539 0.20645 0.20645 0.006539'
[../]
[./flux]
type = PiecewiseLinear
data_file = IFA534_fast_flux_rod19.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_bc]
type = PiecewiseLinear
data_file = IFA534_clad_temp_rod19.csv
format = columns
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1 # fission rate applied to the fuel only
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
a_lower = 0.00324
a_upper = .407
fuel_outer_radius = .00456
fuel_inner_radius = 0
i_enrich = '0.0379 0.9621 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = pellet_type_1
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = '1'
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = '1'
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./hydrostatic_stress]
block = pellet_type_1
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
# computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
index = 0
execute_on = timestep_end
block = 1
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
index = 1
execute_on = timestep_end
block = 1
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
index = 3
execute_on = timestep_end
block = 1
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
index = 2
execute_on = timestep_end
block = 1
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = 1
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
disp_x = disp_x
disp_y = disp_y
system = constraint
penalty = 1e8
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 127360800
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.15e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = plenum_temperature
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
refab_time = 127360800
refab_pressure = 2.15e6
refab_temperature = 293
refab_volume = 5.1e-6
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic
dep_matl_props = deltav_v0_bd
block = 3
disp_r = disp_x
disp_z = disp_y
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = .00912
q = q
gap = 170e-6 #diameteral gap
relocation_activation1 = 5000 # intial relocation activation power set to 5kW/m
burnup_relocation_stop = .029
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
disp_r = disp_x
disp_z = disp_y
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
model_thermal_expansion = false
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
initial_porosity = 0.05
gbs_model = true
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
disp_r = disp_x
disp_z = disp_y
[../]
[./fuel_density]
type = Density
block = 3
disp_r = disp_x
disp_z = disp_y
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
max_value = 3200.0
min_value = 273.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 60
l_tol = 8e-3
nl_max_its = 35
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 136369000
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 15
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_history
max_function_change = 2e6
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = .407 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 3
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = pellet_type_1
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 1700
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
examples/tensor_mechanics/TRISO/IAEA_CRP-6_type/1D/case_11/case_11_1D.i
[GlobalParams]
density = 10810.0 # kg/m^3
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
type = TRISO1DMesh
elem_type = EDGE3
coordinates = '0 2.485e-4 3.425e-4 3.425e-4 3.835e-4 4.195e-4 4.595e-4'
mesh_density = '6 6 0 6 8 6'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[Problem]
coord_type = RSPHERICAL
[]
[Variables]
[./temp]
initial_condition = 1608.0
[../]
[]
[AuxVariables]
[./fluence]
[../]
[./fast_neutron_flux]
[../]
[./fission_rate]
block = fuel
[../]
[./burnup]
block = fuel
[../]
[./grain_radius]
initial_condition = 5.0e-6
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = fuel
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./buffer]
block = buffer
add_variables = true
strain = FINITE
eigenstrain_names = 'buffer_thermal_strain buffer_eigenstrain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./IPyC]
block = IPyC
add_variables = true
strain = FINITE
eigenstrain_names = 'IPyC_eigenstrain IPyC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./SiC]
block = SiC
add_variables = true
strain = FINITE
eigenstrain_names = 'SiC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[./OPyC]
block = OPyC
add_variables = true
strain = FINITE
eigenstrain_names = 'OPyC_eigenstrain OPyC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz stress_xy stress_yz stress_xz
strain_xy strain_yz strain_xz'
[../]
[]
[Functions]
[./fast_neutron_flux]
type = ParsedFunction
value = 2.37417e18
[../]
[./fission_rate]
type = ParsedFunction
value = 1.1135e20 # units of fissions/m**3
[../]
[]
[Kernels]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fluence]
type = FastNeutronFluenceAux
variable = fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./fast_neutron_flux]
type = FunctionAux
variable = fast_neutron_flux
function = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fission_rate]
type = FunctionAux
variable= fission_rate
block = fuel
function = fission_rate
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = IPyC_left_boundary
slave = buffer_right_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = IPyC_left_boundary
slave = buffer_right_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
[../]
[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = DirichletBC
variable = temp
boundary = exterior
value = 1608.0
[../]
# exterior and internal pressures
[./exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
component = 0
factor = 0.1e6
[../]
[./PlenumPressure] # apply gas pressure on buffer and IPyC boundaries
[./plenumPressure]
boundary = buffer_IPyC_boundary
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
temp = temp
thermal_conductivity_model = FINK_LUCUTA
initial_porosity = 0.0
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e8
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 1608.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
[../]
[./buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2.0e8
poissons_ratio = 0.345
[../]
[./buffer_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = buffer
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_density]
type = Density
density = 1000.0 #kg/m^3
block = buffer
[../]
[./buffer_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = buffer
thermal_expansion_coeff = 5.5e-6
temperature = temp
stress_free_temperature = 1608.0
eigenstrain_name = buffer_thermal_strain
[../]
[./buffer_irraditation]
type = PyCIrradiationEigenstrain
block = buffer
fluence = fluence
pyc_type = buffer
eigenstrain_name = buffer_eigenstrain
[../]
[./IPyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = IPyC
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[../]
[./IPyC_stress]
type = PyCCreep
block = IPyC
flux = fast_neutron_flux
temperature = temp
density = 1880.0
[../]
[./IPyC_temp]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./IPyC_density]
type = Density
density = 1880.0 # kg/m^3
block = IPyC
[../]
[./IPyC_densification]
type = PyCIrradiationEigenstrain
block = IPyC
fluence = fluence
pyc_type = dense
eigenstrain_name = IPyC_eigenstrain
[../]
[./IPyC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = IPyC
thermal_expansion_coeff = 5.5e-6
temperature = temp
stress_free_temperature = 1608.0
eigenstrain_name = IPyC_thermal_strain
[../]
[./SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[../]
[./SiC_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_density]
type = Density
density = 3200.0 # kg/m^3
block = SiC
[../]
[./SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temp
stress_free_temperature = 1608.0
eigenstrain_name = SiC_thermal_strain
[../]
[./OPyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = OPyC
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[../]
[./OPyC_stress]
type = PyCCreep
block = OPyC
flux = fast_neutron_flux
temperature = temp
density = 1880.0
[../]
[./OPyC_temp]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./OPyC_den]
type = Density
density = 1880.0 # kg/m^3
block = OPyC
[../]
[./OPyC_densification]
type = PyCIrradiationEigenstrain
block = OPyC
fluence = fluence
pyc_type = dense
eigenstrain_name = OPyC_eigenstrain
[../]
[./OPyC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = OPyC
thermal_expansion_coeff = 5.5e-6
temperature = temp
stress_free_temperature = 1608.0
eigenstrain_name = OPyC_thermal_strain
[../]
[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 3.032e7
dtmax = 2e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[./burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[../]
[./volumeTotal]
type = InternalVolume
boundary = exterior
[../]
[./volumeFuel]
type = InternalVolume
boundary = fuel_right_boundary
[../]
[./volumeGas]
type = InternalVolume
boundary = 'fuel_right_boundary IPyC_left_boundary'
addition = -5.53e-11
execute_on = 'initial timestep_end'
[../]
[./volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temp
execute_on = 'initial timestep_end'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
[../]
[./tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[../]
[./min_zz_IPyC]
type = ElementExtremeValue
variable = stress_zz
block = IPyC
value_type = min
[../]
[./min_zz_SiC]
type = ElementExtremeValue
variable = stress_zz
block = SiC
value_type = min
[../]
[./min_zz_OPyC]
type = ElementExtremeValue
variable = stress_zz
block = OPyC
value_type = min
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = true
[]
assessment/LWR/validation/IFA_515_RodA1/analysis/IFA515.i
# Reference document HWR-671
# Block 1 = cladding, Block 3 and 5 = insulators Block 4 = fuel
[GlobalParams]
density = 10628.64 # initial fuel density 96.8% of theoretical (10980 kg/m3)
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (200 MeV per fission)
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa515_insulator.e
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./grain_radius]
block = 4
initial_condition = 7.75e-6 # (18.1+13.1+15.3)/(3*2)
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = IFA515_power.csv
format = columns
[../]
[./axial_peaking_factors]
type = ParsedFunction # no axial power profile
value = '1'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = IFA515_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
type = ParsedFunction # no axial clad temp
value = '1'
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 199274402 199274403'
y = '0.0298 1 1 0.0298'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[Modules/TensorMechanics/Master]
[./fuel]
block = '4'
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
[../]
[./insulation]
block = '3 5'
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'insulator_thermal_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 4 # fission rate applied to the fuel only
fission_rate = fission_rate # coupling to the fission_rate aux variable
[../]
[]
[Burnup]
[./burnup]
block = 4
rod_ave_lin_pow = power_profile # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 20
a_lower = 0.00851 # Checked with Paraview
a_upper = 0.22051 # Checked with Paraview
fuel_inner_radius = 0.0009 # Checked with Paraview
fuel_outer_radius = 0.00278 # Checked with Paraview
i_enrich = '0.115 0.885 0 0 0 0' # 11.5% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
factor = 1.6e12 #(n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 4
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = 1
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel and insulators
system = constraint
formulation = kinematic
penalty = 1e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact_clad]
# thermal conatact between the fuel outer radius and the clad inner wall
type = GapHeatTransferLWR
variable = temp
master = 5 # clad Zr barrier not modeled
slave = 10 # fuel and insulators
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1e-6
roughness_fuel = 2.8e-7 # (2.6e-7+3e-7)/2 = 2.8e-7
roughness_coef = 3.2
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionPresetBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.40e6 # CHECK could not locate a number in hwr-671
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 4
burnup = burnup
temperature = temp
initial_fuel_density = 10628.64
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fuel_thermal]
type = ThermalFuel
block = '4'
temp = temp
thermal_conductivity_model = NFIR
burnup = burnup
initial_porosity = 0.032
[../]
[./insulator_thermal]
type = ThermalFuel
block = '3 5'
temp = temp
thermal_conductivity_model = NFIR
burnup_function = 0
initial_porosity = 0.032
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '4'
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 4
temperature = temp
[../]
[./fuel_elasticity_and_creep]
type = ComputeThermalExpansionEigenstrain
block = 4
temperature = temp
stress_free_temperature = 300
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 4
burnup = burnup
diameter = 0.00556
linear_heat_rate_function = q
gap = 5.0e-5
relocation_activation1 = 5000
burnup_relocation_stop = 0.02524
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./insulator_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3 5'
[../]
[./insulator_elasticity_tensor]
type = UO2ElasticityTensor
block = '3 5'
temperature = temp
[../]
[./insulator_elasticity_and_creep]
type = ComputeThermalExpansionEigenstrain
block = '3 5'
temperature = temp
stress_free_temperature = 300
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'insulator_thermal_eigenstrain'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 4
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius = grain_radius
gbs_model = true
burnup = burnup
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 8.8e10
poissons_ratio = 0.34
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = clad_inelastic_stressUpdate
[../]
[./clad_inelastic_stressUpdate]
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type =stress_relief_annealed
[../]
[./clad_thermal_eigenstrain]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
temperature = temp
stress_free_temperature = 300
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_eigenstrain]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_density]
type = Density
block = '1'
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '4 3 5'
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 50
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 199278002 # 199275500+3600
dtmax = 1e6
dtmin = 1
# control for adaptive time steping
[./TimeStepper]
type = IterationAdaptiveDT
dt = 10000
optimal_iterations = 1000
growth_factor = 10
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 4
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 4
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '4'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./_dt]
type = TimestepSize
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 4
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.212 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 4
variable = fission_rate
[../]
[./average_rod_burnup]
type = ElementAverageValue
block = 4
variable = burnup
[../]
[./FCT_top]
type = NodalVariableValue
nodeid = 4066 # Global node ID 4067
variable = temp
[../]
[./FCT_mid]
type = NodalVariableValue
nodeid = 2073 # Global node ID 2074
variable = temp
[../]
[./FCT_bottom]
type = NodalVariableValue
nodeid = 125 # Global node ID 126
variable = temp
[../]
[./FCT_ave]
type = SideAverageValue
boundary = 13
variable = temp
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 4
cladding_blocks = 1
rod_component = BOTH
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_rod_burnup fission_gas_released FCT_top FCT_mid rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/Super_Ramp/analysis/PK6S/PK6S.i
[GlobalParams]
density = 10420.0
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = false
initial_porosity = 0.049
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temperature'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 10
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 29
pellet_height = 0.010862
pellet_outer_radius = 4.57e-3
pellet_mesh_density = customize
nx_p = 11
ny_p = 84
clad_mesh_density = customize
nx_c = 4
ny_c = 84
clad_gap_width = 75.0e-6
clad_thickness = 0.725e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 15.5e-3
clad_top_gap_height = 32.9e-3
ny_cu = 3
ny_cl = 3
elem_type = QUAD8
[]
[Variables]
[./temperature]
initial_condition = 293.15
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = alhr_history.csv
format = columns
[../]
[./axial_power_factors]
type = PiecewiseBilinear
data_file = axial_lhr_factors.csv
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_power_factors'
[../]
[./clad_out_temp]
type = PiecewiseLinear
data_file = temp_outer_clad_history.csv
format = columns
[../]
[./axial_temp_factors]
type = PiecewiseBilinear
data_file = axial_temp_factors.csv
axis = 1
[../]
[./clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = pressure_coolant.csv
format = columns
[../]
[./fast_flux]
type = PiecewiseLinear
data_file = fast_neutron_flux.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = 3
initial_condition = 17.16e-6
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
block = 3
initial_condition = 0.049
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain
fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy
stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz
creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx
strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temperature
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temperature
execute_on = linear
[../]
[./porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
a_lower = 0.0165
a_upper = 0.3315
number_pellets = 29
execute_on = initial
[../]
[./oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./layered_average_contact_pressure]
type = SpatialUserObjectAux
block = 3
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = 3
execute_on = nonlinear
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 80
num_axial = 20
i_enrich = '0.02985 0.97015 0.0 0.0 0.0 0.0'
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1.0e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
formulation = KINEMATIC
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temperature
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = 5
outer_surfaces = 10
temp = temperature
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temperature
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.25e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temperature
burnup_function = burnup
initial_fuel_density = 10420
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = 3
temperature = temperature
burnup_function = burnup
grain_radius = 17.16e-6
[../]
[./fuel_stress]
type = ComputeSmearedCrackingStress
block = 3
cracking_stress = 2.5e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
linear_heat_rate_function = power_history
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = true
max_relocation_recovery_fraction = 0.5
relocation_scaling_factor = 1
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
output_properties = 'relocation_strain recovered_relocation_strain'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
diff_coeff_option = 3
transient_option = 2
res_param_option = 0
temp = temperature
fission_rate = fission_rate
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6550.0
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temperature
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
fuel_pin_geometry = pin_geometry
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-4
nl_max_its = 30
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
start_time = 0.0
n_startup_steps = 1
end_time = 76630068.0
dtmax = 1.0e6
dtmin = 1.0
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 15
iteration_window = 3
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./avg_gap_conductance]
type = SideAverageValue
boundary = 10
variable = gap_cond
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temperature
nodeid = 3110 #Mesh dependent!
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = strain_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = stress_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 3141 # Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./total_rod_integral_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = 3
[../]
[./total_rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.314998 # rod height
[../]
[./vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = TENSOR
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage central_fuel_temp midplane_contact_pressure'
execute_on = 'FINAL'
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temperature
fuel_pin_geometry = pin_geometry
number_pellets = 29
execute_on = 'initial linear'
[../]
[./layered_average_contact_pressure]
type = LayeredSideAverage
variable = contact_pressure
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[../]
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/UFE019/TM/UFE019_tm.i
################################################################################
#
# Description: Calvert Cliffs UFE019
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file UFE019_power.csv
# axial peaking factor file UFE019_axial_peaking.csv
# flux boundary condition file UFE019_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10396.59 #94.75 %TD Assume TD = 10972.65 kg/m3
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.29773
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.2e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = UFE019_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = UFE019_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 140582036 140582396'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 140582036 140582396'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = UFE019_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155
i_enrich = '0.0398 .9602 0 0 0 0' # 3.98% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0095631 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 190.5e-6 #diametral gap in m
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10411.07
total_densification = 0.01
initial_porosity = 0.05
eigenstrain_name = fuel_volumetric_strain
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 140582396
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT4/MT4_1-2kW.i
################################################################################
#
# Description: LOCA MT-4 Test with constant power level of 1.2 kW/m
#
#
# External files:
# axial peaking factor file MT4_axial_peaking.csv
#
################################################################################
[GlobalParams]
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
group_variables = 'disp_x disp_y'
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 6.1e-4
pellet_mesh_density = customize
ny_p = 100
nx_c = 4
nx_p = 12
pellet_outer_radius = .00413
ny_cu = 3
ny_c = 100
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.66
ny_cl = 3
clad_top_gap_height = 0.18613
clad_gap_width = 7.5e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[DefaultElementQuality]
aspect_ratio_upper_bound = 253
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
[./InitialCondition]
type = FunctionIC
function = temp_func
[../]
[../]
[]
[AuxVariables]
[./temp_initial]
[./InitialCondition]
type = FunctionIC
function = temp_func
[../]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet
initial_condition = 7.8e-6 # 2D grain radius
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase] # Fraction of beta phase in Zry
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate_aux]
order = CONSTANT
family = MONOMIAL
[../]
[./bursted]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./htype]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 110'
y = '1.2e3 1.2e3'
[../]
[./hmode_function]
type = PiecewiseConstant
x = '0 57 110'
y = '9 10 10'
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = MT4_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '0 110'
y = '0.28 0.28'
scale_factor = 1e6
[../]
[./temp_func]
type = ParsedFunction
value = '-24.096*y*y+152.47*y+437.81'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz elastic_strain_yy strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[../]
[./clad]
block = clad
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz' #plastic_strain_xx plastic_strain_yy plastic_strain_zz
extra_vector_tags = 'ref'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = pellet
fission_rate = fission_rate
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
axial_power_profile = axial_peaking_factors
factor = 0.16e15 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = clad
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = '1 2 3'
[../]
[./hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = hmode
boundary = '1 2 3'
[../]
[./htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = htype
boundary = '1 2 3'
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = clad
[../]
[./creep_rate]
type = MaterialRealAux
variable = creep_rate
property = creep_rate
block = clad
execute_on = timestep_end
[../]
[./creep_rate_aux]
type = MaterialRealAux
variable = creep_rate_aux
property = creep_rate
block = clad
execute_on = timestep_end
[../]
[./bursted]
type = MaterialRealAux
variable = bursted
property = failed
boundary = 2
execute_on = timestep_end
[../]
[]
# TODO: Have StandardLWRFuelRodOutputs create this when the feature in issue #1054 is
# developed.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[Burnup]
[./burnup]
block = pellet
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.66478
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00413 # m
i_enrich = '0.0293 .9707 0 0 0 0' # 2.93% enriched U-235
RPF = RPF
density = 10431 #95 %TD Assume TD = 10980 kg/cm3
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e7
normalize_penalty = true
system = Constraint
model = frictionless
# model = coulomb
formulation = penalty
# friction_coefficient = 1.0
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1.0 # Pa
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9 # clad interior + fuel exterior
initial_pressure = 9.3e6 # Pa
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 311 # K
inlet_pressure = 0.28e6 # Pa
# inlet_massflux = massfluxfunc # kg/m^2-sec
rod_diameter = 0.00963 # m
rod_pitch = 1.275e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
heat_transfer_mode = hmode_function
heat_transfer_coefficient = 0.0000001 #W/m^2-K
# heat_transfer_mode = 10
htc_correlation_type = 1
flooding_time = 57.0
flooding_rate = 0.127 # m/s
initial_temperature = 1140 # K
initial_power = 1.776 # kW/m
blockage_ratio = 0.0 #
fuel_stack_length = 3.66 # m
reflooding_model = 1
compute_enthalpy = false
[../]
[]
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2
type = ThermalFuel
block = pellet
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = temp_initial
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0 #95 %TD Assume TD = 10980 kg/cm3
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
# initial_grain_radius = 6.552e-6 # 2D grain radius 4.2e-6
grain_radius = grain_radius
gbs_model = true
burnup = burnup
# compute_swelling = true
transient_option = 2
[../]
[./fuel_density]
type = Density
block = pellet
density = 10431 #95 %TD Assume TD = 10980 kg/cm3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
temperature = temp
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLOCAErbacherLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = false
model_primary_creep = false
model_thermal_creep = true
temperature_standard_thermal_creep_end = 700.0
temperature_loca_creep_begin = 900.0
max_inelastic_increment = 1e-4
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
temperature = temp
thermal_expansion_coeff = 5.0e-6
stress_free_temperature = temp_initial
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./phase]
type = ZrPhase
block = clad
temperature = temp
numerical_method = 2
[../]
[./failure_criterion]
type = ZryCladdingFailure
boundary = '2'
failure_criterion = combined_overstress_and_plastic_instability
hoop_stress = stress_zz
effective_strain_rate_creep = creep_rate
temperature = temp
fraction_beta_phase = fract_beta_phase
outputs = all
output_properties='failed burst_stress'
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = 0.0
end_time = 58.2
dtmax = 5
dtmin = 0.00001
[./TimeStepper]
type = PostprocessorDT
postprocessor = material_timestep
dt = 0.01
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
outputs = exodus
execute_on=linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
outputs = exodus
execute_on=linear
[../]
[./max_betaph_fract]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./average_fission_rate]
type = ElementAverageValue
block = pellet
variable = fission_rate
execute_on=timestep_end
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = pellet
fission_rate = fission_rate
variable = temp
execute_on=timestep_end
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.66 # rod height
execute_on=timestep_end
[../]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = clad
[../]
[./max_creep_rate]
type = ElementExtremeValue
block = clad
value_type = max
variable = creep_rate_aux
[../]
[./bursted]
type = ElementExtremeValue
block = clad
value_type = max
variable = bursted
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'bursted > 0'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
perf_graph = true
[./console]
type = Console
output_linear = true
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
test/tests/mechanical_uo2/mechuo2_gas_swelling.i
#--------------------------------------------------------------------------------
#
# This test is prepared to test the coupling between MechUO2 and Gaseous swelling
#
#
#--------------------------------------------------------------------------------
[GlobalParams]
density = 10417.0 # initial fuel density ( kg/m^3)
[]
[Mesh]
file = cube_111.e
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = '1200.'
[../]
[./Fiss_func]
type = ParsedFunction
value = '1.e19'
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 1200.
[../]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./burnup]
order = FIRST
family = LAGRANGE
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.05
[../]
[./density]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_sl]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_dn]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
[../]
[./ssStrain]
order = CONSTANT
family = MONOMIAL
[../]
[./fabrication_porosity]
order = CONSTANT
family = MONOMIAL
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
[../]
[./sintering_porosity]
order = CONSTANT
family = MONOMIAL
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[]
[SolidMechanics]
[./solid]
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
temp = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./frate]
type = FissionRateAux
variable = fission_rate
block = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./brnp]
type = BurnupAux
variable = burnup
block = 1
fission_rate = fission_rate
execute_on = timestep_begin
[../]
[./por]
type = PorosityAuxUO2
block = 1
variable = porosity
execute_on = 'initial linear'
[../]
[./rho]
type = MaterialRealAux
variable = density
property = density
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./dvv0sl]
type = MaterialRealAux
variable = deltav_v0_sl
property = solid_swell
[../]
[./dvv0dn]
type = MaterialRealAux
variable = deltav_v0_dn
property = densification
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = total_swell
[../]
[./ssStrain]
type = MaterialRealAux
variable = ssStrain
property = solid_swell
[../]
[./fabpor]
type = MaterialRealAux
variable = fabrication_porosity
property = fabrication_porosity
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./sinpor]
type = MaterialRealAux
variable = sintering_porosity
property = sintering_porosity
[../]
[./thcond]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[../]
[./x_disp]
type = DirichletBC
variable = disp_x
value = 0
boundary = 1
[../]
[./y_disp]
type = DirichletBC
variable = disp_y
value = 0
boundary = 2
[../]
[./z_disp]
type = DirichletBC
variable = disp_z
value = 0
boundary = 3
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 1
temp = temp
burnup = burnup
initial_porosity = 0.05
porosity = porosity
thermal_conductivity_model = NFIR
[../]
[./fuel_mech]
type = MechUO2 # defines the fuel mechanical properties
block = 1 # applies to the fuel block
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
temp = temp # couples to temperature (K)
burnup = burnup # couples to burnup (MWd/kgU)
fission_rate = fission_rate # need for creep model
grain_radius = 5.0e-6 # fuel grain radius (m); used in creep model (default = 10.0e-6 )
oxy_to_metal_ratio = 2.0 # oxygen to metal ratio; used in creep model (default = 2.0)
model_thermal_expansion = false # true (default) to turn on thermal expanison model
thermal_expansion = 0.0 #
model_swelling = true # true (default) to turn on swelling model
name_swelling_model = fuel_swelling # name of swelling model block; need when model_swelling = true
model_creep = false # true (default) to turn on creep model
model_relocation = false # true (default) to turn on relocation model
matpro_youngs_modulus = true # false (default); set true to compute Young's modulus using MATPRO
matpro_poissons_ratio = true # false (default); set true to compute Poisson's ratio using MATPRO
dep_matl_props = deltav_v0_bd # default value is detav_v0_bd
[../]
[./fuel_swelling] # name of fuel swelling model block
type = VSwellingUO2 # material model type
block = 1 # applies to the fuel block
temp = temp # couples to temperature (K)
burnup = burnup # couples to burnup (FIMA)
save_solid_swell = true
save_densification = true
[../]
[./density]
type = Density
block = 1
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
[../]
[./fission_gas_release_and_swelling]
type = Sifgrs
block = 1
temp = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.05
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-05
nl_rel_tol = 1.e-05
start_time = 0.
num_steps = 100
dt = 1.e+06
end_time = 1.e+08
[]
[Postprocessors]
[./elem1_density]
type = ElementalVariableValue
variable = density
elementid = 0
[../]
[./elem1_porosity]
type = ElementalVariableValue
variable = porosity
elementid = 0
execute_on = 'initial timestep_end'
[../]
[./elem1_bd_swelling]
type = ElementalVariableValue
variable = deltav_v0_bd
elementid = 0
[../]
[./elem1_solid_swelling]
type = ElementalVariableValue
variable = deltav_v0_sl
elementid = 0
[../]
[./elem1_densification]
type = ElementalVariableValue
variable = deltav_v0_dn
elementid = 0
[../]
[./elem1_total_swelling]
type = ElementalVariableValue
variable = deltav_v0_swe
elementid = 0
[../]
[./elem1_ssStrain]
type = ElementalVariableValue
variable = ssStrain
elementid = 0
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
csv = true
[]
assessment/LWR/validation/Riso_GE7_ZX115/analysis/Riso_GE7_1pt5.i
[GlobalParams]
displacements = 'disp_x'
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = Layered1DMesh
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
pellet_inner_radius = 0.0
pellet_outer_radius = 0.005205
clad_gap_width = 110.0e-6
clad_thickness = 8.15e-4
fuel_height = 0.74952
plenum_height = 0.15665 # Add volume from below the pellet stack = 0.01494 - 0.00224 = 0.0127
# Nominal plenum height = 0.14395 + 0.0127 = 0.15665
slices_per_block = 10
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
[../]
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./temp]
initial_condition = 293.0 # set initial temp to ambient
scaling = 1e3
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = fuel
initial_condition = 6e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_zz]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = riso_ge7_zx115_linear_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = riso_ge7_zx115_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '-100 0 161748936 161756676 161813271 161814651'
y = '.013995 1 1 .994475 .994475 .013995'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = riso_ge7_zx115_clad_temperature.csv
format = columns
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
data_file = riso_ge7_zx115_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[./clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 7.24e6
fuel_pin_geometry = pin_geometry
[../]
[./fuel_axial_pressure]
type = ParsedFunction
value = plenum_pressure
vars = plenum_pressure
vals = plenum_pressure
[../]
[]
[Modules]
[./TensorMechanics]
[./Layered1DMaster]
[./fuel]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = fuel
out_of_plane_pressure = fuel_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_strain fuel_volumetric_strain'
[../]
[./clad]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = clad
out_of_plane_pressure = clad_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
[../]
[../]
[../]
[]
# Define kernels for the various terms in the PDE system
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = fuel # fission rate applied to the fuel only
fission_rate = fission_rate
[../]
[]
[Burnup]
[./burnup]
block = fuel
density = 10431.0
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.76446
a_lower = 0.01494
fuel_inner_radius = 0
fuel_outer_radius = 0.005205
RPF = RPF
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
factor = 1
function = fast_neutron_flux_function
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises_stress
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = VonMisesStress
execute_on = timestep_end
block = fuel
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xx
index_i = 0
index_j = 0
block = clad
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xy
index_i = 0
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_zz
index_i = 2
index_j = 2
block = clad
execute_on = timestep_end
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
penalty = 1e14
formulation = penalty
normalize_penalty = true
model = frictionless
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
quadrature = true
# normal_smoothing_distance = 0.1 # This option is not applicable in 1.5D
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./temp]
# clad outet wall temperature
type = FunctionDirichletBC
variable = temp
boundary = 2
function = clad_wall_temp
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = 2
factor = 7.24e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 0.29e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = fuel
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup = burnup
diameter = 0.01041 # fuel pellet diamter in meters
linear_heat_rate_function = q
gap = 220.e-6 # diametral gap in meters
relocation_activation1 = 5000
burnup_relocation_stop = 0.03 # turn off relocation just before contact
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = fuel
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
density = 10431.0
block = fuel
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./fission_gas_release] # simple fission gas release mode
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 1e-2
# controls for nonlinear iterations
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 161756676 # End of base irradiation
# end_time = 161814651
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 1e6
force_step_every_function_point = true
[../]
[./Quadrature]
order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
execute_on = 'initial linear'
fuel_pin_geometry = pin_geometry
[../]
[./clad_inner_vol] # volume inside of cladding
type = LayeredInternalVolumePostprocessor
boundary = 7
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
execute_on = 'initial linear'
[../]
[./pellet_volume] # fuel pellet total volume
type = LayeredInternalVolumePostprocessor
boundary = 8
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = LayeredSideAverageValuePostprocessor
boundary = 7
variable = temp
fuel_pin_geometry = pin_geometry
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block =fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./gas_volume] # gas volume
type = LayeredInternalVolumePostprocessor
boundary = 9
execute_on = 'initial linear'
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 5
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./average_fission_rate]
type = ElementAverageValue
block = fuel
variable = fission_rate
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.74952 # rod height
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = fuel
fission_rate = fission_rate
variable = temp
fuel_pin_geometry = pin_geometry
[../]
[./average_burnup]
type = ElementAverageValue
block = fuel
variable = burnup
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[./max_penetration]
type = NodalExtremeValue
block = fuel
value_type = max
variable = penetration
execute_on = 'initial timestep_end'
[../]
[./min_penetration]
type = NodalExtremeValue
block = fuel
value_type = min
variable = penetration
execute_on = 'initial timestep_end'
[../]
[./max_contact_pressure]
type = NodalExtremeValue
block = fuel
value_type = max
variable = contact_pressure
[../]
[./min_contact_pressure]
type = NodalExtremeValue
block = fuel
value_type = min
variable = contact_pressure
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = fuel
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
# Nodal comparisons
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 262 #coords (0.005205, 0.340524)
use_displaced_mesh = true
[../]
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 262 #coords (0.005205, 0.340524)
use_displaced_mesh = true
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 231 #coords (0.0, 0.340524) Glb node id 232
execute_on = 'initial timestep_end'
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_1'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_fuel_radial_displacement'
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
sync_times = '161756676 161760846 161765136 161765976 161767595.9 161767655.9 161767716.1 161767775.9 161767839 161767896.1 161768000.3 161770475.9 161770583.9 161771136.1 161771189.8 161772036.1 161772083.5 161772936.1 161772958.2 161773056 161773093.9 161773836.1 161773889.8 161774736.1 161774758.2 161796696.1 161796702.4 161797236.1 161797283.5 161797356 161797523.4 161797716 161797788.6 161797835.9 161797876.9 161797956.1 161798019.3 161812536.1 161812595.9 161812716.1 161812836 161813270.9'
[./outfile_1]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./chkfile]
type = CSV
show = 'average_burnup fis_gas_percent FCT rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
[../]
[]
[Debug]
show_var_residual = 'disp_x temp'
show_var_residual_norms = true
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_athermal_release.i
# This is a test for the athermal release capability included in the Sifgrs fission gas behavior model. The model of B.J. Lewis (JNM 148, 28, 1987) is adopted for calculating the contribution to fission gas release (FGR) arising from the surface-fission release mechanisms (recoil and knockout). Being athermal release dependent on the total pellet surface area (geometrical surface + cracked surface), an estimation of the number and length of cracks for each pellet is introduced, based on concepts from M. Oguma (NED 76, 35, 1983) and D.R. Olander (Fundamental aspects of nuclear reactor fuel elements, Berkeley, 1976). For this purpose, the subprograms PelletIdAux and PelletBrittleZone are employed. The athermal release model can be activated by specifying ath_model = true. It is also necessary to specify the name of the linear power function (see below).
# A single pellet - constant power problem is considered for this test. In order to isolate the athermal release, the concurrent thermal gas release is not calculated (by setting the fractional bubble coverage at grain boundary saturation to infinite, saturation_coverage = 1.e+20). Also, the fission gas swelling is not calculated in this test. The results demonstrate that the athermal release model provides a contribution to FGR independent of thermal release and given by an approximately constant fraction of the generated gas, released upon creation due to the recoil and knockout mechanisms (see also the enclosed file regression_tests_sifgrs.xlsx).
[GlobalParams]
density = 10417.
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = single_pellet_2d.e
patch_size = 1000
[]
[Variables]
[./temp]
initial_condition = 300.
[../]
[]
[AuxVariables]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 2
[../]
[./crack_length]
order = CONSTANT
family = MONOMIAL
[../]
[./gas_ath_3]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = linpow_ath_test.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 2
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = 2
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 12
num_axial = 9
a_upper = 0.01496
a_lower = 0.00226
fuel_inner_radius = 0.
fuel_outer_radius = 0.005305
fuel_volume_ratio = 1.
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./pelletid]
type = PelletIdAux
block = 2
variable = pellet_id
a_lower = 0.00226
a_upper = 0.01496
number_pellets = 1
execute_on = initial
[../]
[./cracklen]
type = MaterialRealAux
variable = crack_length
property = crack_length
[../]
[./fgath]
type = MaterialRealAux
variable = gas_ath_3
property = gas_ath_3
[../]
[]
[BCs]
[./convective_clad_surface]
type = ConvectiveFluxBC
boundary = '10'
variable = temp
rate = 7500.
initial = 300.
final = 515.5
duration = 1.0e+04
[../]
[./top_pellet]
variable = temp
value = 0.
type = NeumannBC
boundary = '21'
[../]
[./bottom_pellet]
variable = temp
value = 0.
type = NeumannBC
boundary = '20'
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 2
thermal_conductivity_model = FINK_LUCUTA
initial_porosity = 0.0
temp = temp
burnup_function = burnup
[../]
[./density2]
type = Density
block = 2
density = 10417.
[../]
[./fission_gas_release]
type = Sifgrs
block = 2
temp = temp
burnup_function = burnup
saturation_coverage = 1.e+20
ath_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[UserObjects]
[./pbz]
type = PelletBrittleZone
block = 2
pellet_id = pellet_id
temp = temp
pellet_radius = 0.005305
a_lower = 0.00226
a_upper = 0.01496
number_pellets = 1
execute_on = 'initial linear'
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_max_its = 100
l_tol = 1.e-04
nl_max_its = 15
nl_rel_tol = 1.e-8
nl_abs_tol = 1.e-8
start_time = 0.
end_time = 1.e+08
num_steps = 5000
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.e+06
time_t = '0 10000 '
time_dt = '2.e+03 1.e+07'
[../]
[]
[Postprocessors]
[./gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 2
[../]
[./gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 2
[../]
[]
[Outputs]
exodus = true
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFJ027/TM/BFJ027_tm.i
################################################################################
#
# Description: Calvert Cliffs BFJ027
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFJ027_power.csv
# axial peaking factor file BFJ027_axial_peaking.csv
# flux boundary condition file BFJ027_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10411.07 #94.882 %TD Assume TD = 10972.65 kg/cm3
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.28943
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.2e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFJ027_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFJ027_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 177688931 177689291'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 177688931 177689291'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFJ027_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155 # m
i_enrich = '0.0366 .9634 0 0 0 0' # 3.66% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0095631 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 190.5e-6 #diametral gap in m
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10411.07
total_densification = 0.01
initial_porosity = 0.05
eigenstrain_name = fuel_volumetric_strain
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 177689291
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
print_linear_residuals = true
perf_graph = true
[./outfile_1]
type = CSV
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Riso_GE7_ZX115/analysis/Riso_GE7_discrete.i
[GlobalParams]
density = 10431.0
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = ge7_discrete.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
scaling = 1e3
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 6e-6
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_elastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_elastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = riso_ge7_zx115_linear_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = riso_ge7_zx115_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 161748936 161756676 161813271 161814651'
y = '.013995 1 1 .994475 .994475 .013995'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = riso_ge7_zx115_clad_temperature.csv
format = columns
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
data_file = riso_ge7_zx115_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = pellet_type_1
fission_rate = fission_rate
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.76446
a_lower = 0.01494
fuel_inner_radius = 0
fuel_outer_radius = 0.005205
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
factor = 1
function = fast_neutron_flux_function
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
block = clad
variable = creep_strain_hoop
index = 2
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./total_hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_hoop_strain
index = 2
execute_on = timestep_end
block = clad
[../]
[./total_axial_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_axial_strain
index = 1
execute_on = timestep_end
block = clad
[../]
[./hoop_elastic_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_elastic_strain
index = 2
execute_on = timestep_end
block = clad
[../]
[./axial_elastic_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_elastic_strain
index = 1
execute_on = timestep_end
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
penalty = 1e10
formulation = penalty
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
boundary = ' 1 2 3'
function = clad_wall_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.24e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 0.29e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = pellet_type_1
burnup = burnup
temp = temp
[../]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = pellet_type_1
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
stress_free_temperature = 295.0
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup = burnup
diameter = 0.01041
gap = 220.e-6 # diametral gap
q = q
relocation_activation1 = 5000
burnup_relocation_stop = 0.03
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./clad_solid_mechanics]
type = MechZry
block = clad
temp = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
stress_free_temperature = 295.0
model_irradiation_growth = true
model_thermal_expansion = false
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
formulation = NonlinearRZ
[../]
[./creep]
type = CreepZryModel
block = clad
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 5e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 161756676 # End of base irradiation
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block =pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = pellet_type_1
variable = fission_rate
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.74952 # rod height
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = pellet_type_1
fission_rate = fission_rate
variable = temp
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet_type_1
variable = burnup
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = 'pellet_type_1'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
sync_times = '161756676 161760846 161765136 161765976 161767595.9 161767655.9 161767716.1 161767775.9 161767839 161767896.1 161768000.3 161770475.9 161770583.9 161771136.1 161771189.8 161772036.1 161772083.5 161772936.1 161772958.2 161773056 161773093.9 161773836.1 161773889.8 161774736.1 161774758.2 161796696.1 161796702.4 161797236.1 161797283.5 161797356 161797523.4 161797716 161797788.6 161797835.9 161797876.9 161797956.1 161798019.3 161812536.1 161812595.9 161812716.1 161812836 161813270.9'
[./console]
type = Console
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/OSIRIS_J12/analysis/OSIRIS_J12.i
[GlobalParams]
density = 10431 # initial fuel density 95% of theoretical (10980 kg/m3)
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
temperature = temp
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = osiris_j12_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5e-6
[../]
[./elastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = j12_5_power.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = j12_5_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./CoolantPressureFunction]
type = PiecewiseLinear
x = '-100 0 50389344 50389444 50390704 50480887 50480988'
y = '0.06537 1 1 0.06537 0.948 0.948 0.06537'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = j12_5_clad_bc.csv
format = columns
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_zz'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 4.8e13 #n/m2-s per W/m
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./elastic_strain_hoop]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_hoop
block = 1
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 21
a_lower = 0.00324
a_upper = 0.4442
fuel_inner_radius = 0.00
fuel_outer_radius = 0.004096
i_enrich = '0.045 .955 0 0 0 0' # 4.5% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e12
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = CoolantPressureFunction
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.26e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup_function = burnup
initial_fuel_density = 10431
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
stress_free_temperature = 293
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.008192
gap = 168.0e-6
linear_heat_rate_function = q
relocation_activation1 = 5000
burnup_relocation_stop = 0.015
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_creep]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = 'clad_creep'
[../]
[./clad_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = 1
stress_free_temperature = 293
thermal_expansion_coeff = 5.0e-6
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_eigenstrain]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200.0
min_value = 273.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 50480988
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 10
linear_iteration_ratio = 100
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
cladding_blocks = 1
mechanics_system = TENSOR
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT6A/SM/MT6A_1-1kW.i
################################################################################
#
# Description: LOCA MT-6A Test with constant power level of 1.1 kW/m
#
#
# External files:
# axial peaking factor file MT6A_axial_peaking.csv
#
################################################################################
[GlobalParams]
density = 10431 #95 %TD Assume TD = 10980 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 6.1e-4
pellet_mesh_density = customize
ny_p = 100
nx_c = 4
nx_p = 12
pellet_outer_radius = .00413
ny_cu = 3
ny_c = 100
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.66
ny_cl = 3
clad_top_gap_height = 0.18613
clad_gap_width = 7.5e-5
elem_type = QUAD8
patch_size = 20 # 1000 lowering this and setting the strategy to auto will reduce the amount of memory required to run the job.
patch_update_strategy = auto
partitioner = centroid # this will help with run time
centroid_partitioner_direction = y # this will help with run time
[]
[DefaultElementQuality]
aspect_ratio_upper_bound = 253
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = temp_func
[../]
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 7.8e-6 # 2D grain radius
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase] # Fraction of beta phase in Zry
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate_aux]
order = CONSTANT
family = MONOMIAL
[../]
[./bursted]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./htype]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 150'
y = '1.1e3 1.1e3'
[../]
[./hmode_function]
type = PiecewiseConstant
x = '0 60 150'
y = '9 10 10'
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = MT6A_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '0 150'
y = '1.72 1.72'
scale_factor = 1e6
[../]
[./temp_func]
type = ParsedFunction
value = '-24.096*y*y+152.47*y+437.81' #
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3 # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate # coupling to the fission_rate aux variable
save_in = saved_t
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
factor = 0.16e15 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = '1 2 3'
[../]
[./hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = hmode
boundary = '1 2 3'
[../]
[./htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = htype
boundary = '1 2 3'
[../]
[./elastic_strain_yy]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_yy
index = 1
execute_on = timestep_end
[../]
[./elastic_strain_xx]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_xx
index = 0
block = 1
execute_on = timestep_end
[../]
[./elastic_strain_zz]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_zz
index = 2
block = 1
execute_on = timestep_end
[../]
[./plastic_strain_yy]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_yy
index = 1
block = 1
execute_on = timestep_end
[../]
[./plastic_strain_xx]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_xx
index = 0
block = 1
execute_on = timestep_end
[../]
[./plastic_strain_zz]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_zz
index = 2
block = 1
execute_on = timestep_end
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = 1
[../]
[./creep_rate]
type = MaterialRealAux
variable = creep_rate
property = creep_rate
block = 1
execute_on = timestep_end
[../]
[./creep_rate_aux]
type = MaterialRealAux
variable = creep_rate_aux
property = creep_rate
block = 1
execute_on = timestep_end
[../]
[./bursted]
type = MaterialRealAux
variable = bursted
property = failed
boundary = 2
execute_on = timestep_end
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
quantity = hoop
execute_on = timestep_end
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./axial_strain]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./total_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_strain
quantity = hoop
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[]
#TODO: Add option in StandardLWRFuelRodOutputs to compute plenum temperature this way.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.66478
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00413 # m
i_enrich = '0.0293 .9707 0 0 0 0' # 3.67% enriched U-235 #TODO: Looks like it's set for 2.93%!
RPF = RPF
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e11 #TODO MT4 has it at 1e7. See which is better
normalize_penalty = true
system = Constraint
model = frictionless
# model = coulomb
formulation = penalty
# friction_coefficient = 1.0
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
# Define boundary conditions
[BCs]
# [./clad_inner_surface]
# type = FunctionNeumannBC
# boundary = 5
# function = q
# variable = temp
# [../]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 1.0 # Pa
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9 # clad interior + fuel exterior
initial_pressure = 9.15e6 # Pa
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 310 # K
inlet_pressure = 1.72e6 # Pa
# inlet_massflux = massfluxfunc # kg/m^2-sec
rod_diameter = 0.00963 # m
rod_pitch = 1.275e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
heat_transfer_mode = hmode_function
heat_transfer_coefficient = 0.0000001 #W/m^2-K
# heat_transfer_mode = htc_function
htc_correlation_type = 1
flooding_time = 60.0
flooding_rate = 0.059182 # m/s
initial_temperature = 1175 # K
initial_power = 1.628 # kW/m
blockage_ratio = 0.0 #
fuel_stack_length = 3.66 # m
reflooding_model = 1
compute_enthalpy = false
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
cold_work_factor = 0.5
formulation = NonlinearRZ
model_thermal_expansion = false
model_elastic_modulus = false
model_irradiation_growth = false
constitutive_model = combined
max_inelastic_increment = 1e-4
compute_material_timestep_limit = true
[../]
[./creep]
type = CreepZryModel
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
temp = temp
model_primary_creep = false
model_thermal_creep = false
model_thermal_creep_loca = true
model_irradiation_creep = false
creeprate_scalef = 1.0
temp_standard_creep_end = 700.
temp_loca_creep_begin = 900.
[../]
[./combined]
type = CombinedCreepPlasticity
block = 1
temp = temp
submodels = 'creep'
[../]
[./plasticity]
type = ZryPlasticity
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
Zircaloy_type = 4
[../]
[./phase]
type = ZrPhase
block = 1
temperature = temp
numerical_method = 2
[../]
[./failure_criterion]
type = FailureCladding
boundary = '2'
criterion = 2
hoop_stress = hoop_stress
eff_strain_rate_creep = creep_rate_aux
temperature = temp
fract_beta_phase = fract_beta_phase
outputs=all
output_properties='failed burst_stress'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
# initial_grain_radius = 6.552e-6 # 2D grain radius 4.2e-6
grain_radius = grain_radius
gbs_model = true
burnup = burnup
# compute_swelling = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
# [./contact_slip]
# type = ContactSlipDamper
# master = 5
# slave = 10
# min_damping_factor = 0.05
# [../]
[]
#[Preconditioning] #TODO: MT4 doesn't have preconditioning block defined
# [./smp]
# type = SMP
# off_diag_row = 'disp_x disp_y'
# off_diag_column = 'disp_y disp_x'
# [../]
#[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = 0.0
end_time = 76.48
dtmax = 5
dtmin = 0.00001
[./TimeStepper]
type = PostprocessorDT
postprocessor = material_timestep
dt = 0.01
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
execute_on=linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
execute_on=linear
[../]
[./max_betaph_fract]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
execute_on=timestep_end
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
execute_on=timestep_end
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.66 # rod height
execute_on=timestep_end
[../]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = 1
[../]
[./max_creep_rate]
type = ElementExtremeValue
block = 1
value_type = max
variable = creep_rate_aux
[../]
[./bursted]
type = ElementExtremeValue
block = 1
value_type = max
variable = bursted
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'bursted > 0'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[./console]
type = Console
output_linear = true
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Riso_AN4/analysis/SM/Riso_AN4.i
[GlobalParams]
density = 10292.652 #93.74% TD = 10980
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = riso_an4.e
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4'
initial_condition = 3.0e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = an4_power_history.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = an4_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 103528800 103529000 103534230 103795758 103795770'
y = '0.006529 1 1 0.006529 0.986 0.986 0.006529'
[../]
[./flux]
type = PiecewiseLinear
data_file = an4_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = '3 4'
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00734
a_upper = 0.299312
fuel_inner_radius = 0.000
fuel_outer_radius = 0.0045265
fuel_volume_ratio = .989292
i_enrich = '0.0295 0.9705 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.9e17
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = 1
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3 4'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = penalty
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
interaction_layer = 1
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
contact_pressure = contact_pressure
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 103529000
refab_gas_fractions = '0 0 0 1 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.52e6 #changes to 1.53e7 for bump tests
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.31e6 #changes to 1e5 for bump tests
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 103529000
refab_pressure = 1.0e5
refab_temperature = 273
refab_volume = 7.9e-6
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = '3 4'
burnup_function = burnup
temp = temp
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '3 4'
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic
block = '3 4'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
stress_free_temperature = 297
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = '3 4'
burnup_function = burnup
diameter = 0.009053
q = q
gap = 2.05e-4 #diametral gap
burnup_relocation_stop = 0.029
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
model_primary_creep = true
stress_free_temperature = 297
model_irradiation_growth = true
model_thermal_expansion = false
formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 25.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 103795770
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3 4'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = '3 4'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.292 # rod height
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = '3 4'
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4'
[../]
[./TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 9982 #Global node ID 9983
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = '3 4'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage TC_temp rod_total_power'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT6A/SM/MT6A_1-2kW.i
################################################################################
#
# Description: LOCA MT-6A Test with constant power level of 1.2 kW/m
#
#
# External files:
# axial peaking factor file MT6A_axial_peaking.csv
#
################################################################################
[GlobalParams]
density = 10431 #95 %TD Assume TD = 10980 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 6.1e-4
pellet_mesh_density = customize
ny_p = 100
nx_c = 4
nx_p = 12
pellet_outer_radius = .00413
ny_cu = 3
ny_c = 100
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.66
ny_cl = 3
clad_top_gap_height = 0.18613
clad_gap_width = 7.5e-5
elem_type = QUAD8
patch_size = 20 # 1000 lowering this and setting the strategy to auto will reduce the amount of memory required to run the job.
patch_update_strategy = auto
partitioner = centroid # this will help with run time
centroid_partitioner_direction = y # this will help with run time
[]
[DefaultElementQuality]
aspect_ratio_upper_bound = 253
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = temp_func
[../]
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 7.8e-6 # 2D grain radius
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase] # Fraction of beta phase in Zry
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate_aux]
order = CONSTANT
family = MONOMIAL
[../]
[./bursted]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./htype]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 150'
y = '1.2e3 1.2e3'
[../]
[./hmode_function]
type = PiecewiseConstant
x = '0 60 150'
y = '9 10 10'
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = MT6A_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '0 150'
y = '1.72 1.72'
scale_factor = 1e6
[../]
[./temp_func]
type = ParsedFunction
value = '-24.096*y*y+152.47*y+437.81' #
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3 # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate # coupling to the fission_rate aux variable
save_in = saved_t
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
factor = 0.16e15 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = '1 2 3'
[../]
[./hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = hmode
boundary = '1 2 3'
[../]
[./htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = htype
boundary = '1 2 3'
[../]
[./elastic_strain_yy]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_yy
index = 1
execute_on = timestep_end
[../]
[./elastic_strain_xx]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_xx
index = 0
block = 1
execute_on = timestep_end
[../]
[./elastic_strain_zz]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_zz
index = 2
block = 1
execute_on = timestep_end
[../]
[./plastic_strain_yy]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_yy
index = 1
block = 1
execute_on = timestep_end
[../]
[./plastic_strain_xx]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_xx
index = 0
block = 1
execute_on = timestep_end
[../]
[./plastic_strain_zz]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_zz
index = 2
block = 1
execute_on = timestep_end
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = 1
[../]
[./creep_rate]
type = MaterialRealAux
variable = creep_rate
property = creep_rate
block = 1
execute_on = timestep_end
[../]
[./creep_rate_aux]
type = MaterialRealAux
variable = creep_rate_aux
property = creep_rate
block = 1
execute_on = timestep_end
[../]
[./bursted]
type = MaterialRealAux
variable = bursted
property = failed
boundary = 2
execute_on = timestep_end
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
quantity = hoop
execute_on = timestep_end
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./axial_strain]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./total_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_strain
quantity = hoop
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[]
#TODO: Add option in StandardLWRFuelRodOutputs to compute plenum temperature this way.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.66478
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00413 # m
i_enrich = '0.0293 .9707 0 0 0 0' # 3.67% enriched U-235 #TODO: Looks like it's set for 2.93%!
RPF = RPF
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e11 #TODO MT4 has it at 1e7. See which is better
normalize_penalty = true
system = Constraint
model = frictionless
# model = coulomb
formulation = penalty
# friction_coefficient = 1.0
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
# Define boundary conditions
[BCs]
# [./clad_inner_surface]
# type = FunctionNeumannBC
# boundary = 5
# function = q
# variable = temp
# [../]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 1.0 # Pa
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9 # clad interior + fuel exterior
initial_pressure = 9.15e6 # Pa
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 310 # K
inlet_pressure = 1.72e6 # Pa
# inlet_massflux = massfluxfunc # kg/m^2-sec
rod_diameter = 0.00963 # m
rod_pitch = 1.275e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
heat_transfer_mode = hmode_function
heat_transfer_coefficient = 0.0000001 #W/m^2-K
# heat_transfer_mode = htc_function
htc_correlation_type = 1
flooding_time = 60.0
flooding_rate = 0.059182 # m/s
initial_temperature = 1175 # K
initial_power = 1.776 # kW/m
blockage_ratio = 0.0 #
fuel_stack_length = 3.66 # m
reflooding_model = 1
compute_enthalpy = false
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
cold_work_factor = 0.5
formulation = NonlinearRZ
model_thermal_expansion = false
model_elastic_modulus = false
model_irradiation_growth = false
constitutive_model = combined
max_inelastic_increment = 1e-4
compute_material_timestep_limit = true
[../]
[./creep]
type = CreepZryModel
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
temp = temp
model_primary_creep = false
model_thermal_creep = false
model_thermal_creep_loca = true
model_irradiation_creep = false
creeprate_scalef = 1.0
temp_standard_creep_end = 700.
temp_loca_creep_begin = 900.
[../]
[./combined]
type = CombinedCreepPlasticity
block = 1
temp = temp
submodels = 'creep'
[../]
[./plasticity]
type = ZryPlasticity
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
Zircaloy_type = 4
[../]
[./phase]
type = ZrPhase
block = 1
temperature = temp
numerical_method = 2
[../]
[./failure_criterion]
type = FailureCladding
boundary = '2'
criterion = 2
hoop_stress = hoop_stress
eff_strain_rate_creep = creep_rate_aux
temperature = temp
fract_beta_phase = fract_beta_phase
outputs=all
output_properties='failed burst_stress'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
# initial_grain_radius = 6.552e-6 # 2D grain radius 4.2e-6
grain_radius = grain_radius
gbs_model = true
burnup = burnup
# compute_swelling = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
# [./contact_slip]
# type = ContactSlipDamper
# master = 5
# slave = 10
# min_damping_factor = 0.05
# [../]
[]
#[Preconditioning] #TODO: MT4 doesn't have preconditioning block defined
# [./smp]
# type = SMP
# off_diag_row = 'disp_x disp_y'
# off_diag_column = 'disp_y disp_x'
# [../]
#[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = 0.0
end_time = 63.02
dtmax = 5
dtmin = 0.00001
[./TimeStepper]
type = PostprocessorDT
postprocessor = material_timestep
dt = 0.01
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
execute_on=linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
execute_on=linear
[../]
[./max_betaph_fract]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
execute_on=timestep_end
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
execute_on=timestep_end
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.66 # rod height
execute_on=timestep_end
[../]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = 1
[../]
[./max_creep_rate]
type = ElementExtremeValue
block = 1
value_type = max
variable = creep_rate_aux
[../]
[./bursted]
type = ElementExtremeValue
block = 1
value_type = max
variable = bursted
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'bursted > 0'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[./console]
type = Console
output_linear = true
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/HBEP/analysis/BK363/SM/HBEP_BK363_sm.i
[GlobalParams]
density = 10233 #93.2% of TD (TD assumed to be 10980)
initial_porosity = 0.068
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = HBEP.e
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 10.60e-6
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
# reads and interpolates an input file containing rod average linear power vs time
type = PiecewiseLinear
data_file = BK363_linear_power.csv
format = columns
[../]
[./axial_peaking_factors]
# reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = BK363_power_peaking_factors.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
# reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
#Ambient for initial build @ 0.101353 MPa, PWR @ 13.73 MPa and PIE @ 0.101353 MPa
x = '-100 0 137115360'
y = '0.007382 1 0.007382'
[../]
[./flux]
type = PiecewiseLinear
data_file = BK363_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = BK363_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
# reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = BK363_clad_temp_peaking_factors.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1 # fission rate applied to the fuel only
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
a_lower = 0.00324
a_upper = 1.02024
fuel_outer_radius = 4.095e-3
fuel_inner_radius = 1.24e-3
i_enrich = '0.0707 0.9293 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = pellet_type_1
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = '1'
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = '1'
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./hydrostatic_stress]
block = pellet_type_1
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
# computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
index = 0
execute_on = timestep_end
block = 1
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
index = 1
execute_on = timestep_end
block = 1
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
index = 3
execute_on = timestep_end
block = 1
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
index = 2
execute_on = timestep_end
block = 1
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = 1
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
system = constraint
penalty = 1e7
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = .955e-6
roughness_fuel = 1.5e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 13.73e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 1.40e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = plenum_temperature
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = pellet_type_1
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic
dep_matl_props = deltav_v0_bd
block = pellet_type_1
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = .00819
q = q
gap = 1.7e-4 #diameteral gap
relocation_activation1 = 5000 # intial relocation activation power set to 5kW/m
burnup_relocation_stop = .035
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_thermal_expansion = true
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
diff_coeff_option = 2
transient_option = 2
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 50
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 137115360
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_history
max_function_change = 2e6
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block =pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.017 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = pellet_type_1
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = pellet_type_1
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 4784
[../]
[./maxFuelPenetration]
type = NodalMaxValue
boundary = 10 # pellet_centerline
variable = penetration
[../]
[./minFuelPenetration]
type = NodalExtremeValue
boundary = 10 # pellet_centerline
value_type = min
variable = penetration
[../]
[./clad_fuel_gap]
type = NodalMaxValue
variable = penetration
boundary = 10
[../]
[./max_cont_press]
type = NodalMaxValue
variable = contact_pressure
boundary = 10
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ022/TSQ022.i
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = tsq022_mesh.e
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 8.892e-6 # ((11.1+10.9+12.2)/3)/2*1.56
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = TSQ022_alhr.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = TSQ022_alhr_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 141789874 141793474' # -100 @ 101326 Pa, 0 to 141789874 @ 15.517 MPa, 141793474 @ 101326 Pa
y = '.00653 1 1 .00653'
[../]
[./flux]
type = PiecewiseLinear
data_file = TSQ022_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = TSQ022_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
type = PiecewiseBilinear
data_file = TSQ022_clad_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
add_variables = false
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = false
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz '
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1
fission_rate = fission_rate
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
a_lower = 0.00324
a_upper = 3.81705
fuel_outer_radius = 0.0041275
fuel_inner_radius = 0.0011684
i_enrich = '0.0348 0.9652 0 0 0 0' # 3.48% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = pellet_type_1
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = constraint
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10
initial_moles = initial_moles
master = 5
gas_released = fission_gas_released
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.517e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.62e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup = burnup
diameter = 0.008255
linear_heat_rate_function = q
gap = 0.0001778 #diametral gap
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_1
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
initial_porosity = 0.05
burnup = burnup
gbs_model = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 20.0
variable = temp
[../]
[]
[Preconditioning]
[./smp]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1e-3
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 141793474 #141789874+3600
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.81381 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = pellet_type_1
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = pellet_type_1
[../]
[./FCT]
type = NodalVariableValue
nodeid = 30330 #coords (0.0011684, 2.10133)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./FCT_slice4]
type = NodalVariableValue
nodeid = 37085 #coords (0.0011684, 1.71896)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = pellet_type_1
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
## Nodal comparison values
[./gap_slice6]
type = NodalVariableValue
variable = penetration
nodeid = 23579 #coords (0.0041275, 2.48172)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 30299 #coords (0.0041275, 2.10133)
[../]
[./gap_slice4]
type = NodalVariableValue
variable = penetration
nodeid = 37054 #coords (0.0041275, 1.71896)
[../]
[./contact_pressure_slice6]
type = NodalVariableValue
variable = contact_pressure
nodeid = 23579 #coords (0.0041275, 2.48172)
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 30299 #coords (0.0041275, 2.10133)
[../]
[./contact_pressure_slice4]
type = NodalVariableValue
variable = contact_pressure
nodeid = 37054 #coords (0.0041275, 1.71896)
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = pellet_type_1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/IFA_677/analysis/IFA_677.1_Rod1/ifa677r1_tm.i
[GlobalParams]
displacements = 'disp_x disp_y'
temperature = temp
order = FIRST
family = LAGRANGE
density = 10690.
initial_porosity = 0.049
energy_per_fission = 3.28451e-11
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = mesh_ifa677r1.e
patch_update_strategy = auto
patch_size = 10
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./grain_radius]
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
initial_condition = 28.e-06
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = powerhistory_ifa677_rod1.csv
scale_factor = 1e3
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = peakingfactors_ifa677_rod1.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./coolant_inlet_temp]
type = PiecewiseLinear
data_file = coolant_inlet_temp_ifa677_rod1.csv
scale_factor = 1
format = columns
[../]
[./fast_flux]
type = PiecewiseLinear
data_file = fast_neutron_flux_ifa677_rod1.csv
scale_factor = 1e4
format = columns
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_eigenstrain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_lower = 0.001025
a_upper = 0.399625
fuel_inner_radius = 0.
fuel_outer_radius = 0.4565e-2
fuel_volume_ratio = 0.9940
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.04944 0.95011 0 0 0 0'
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = linear
[../]
[./effective_creep_strain]
type = MaterialRealAux
block = 1
property = effective_creep_strain
variable = effective_creep_strain
execute_on = 'timestep_end'
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
contact_pressure = contact_pressure
quadrature = true
roughness_fuel = 5.0e-6
roughness_clad = 0.32e-6
roughness_coef = 3.2
[../]
[]
[./PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[../]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '20'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.4e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '9'
initial_pressure = 1.35e6
startup_time = -200
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = gas_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = coolant_inlet_temp
inlet_pressure = 3.4e+06
inlet_massflux = 450.
rod_diameter = 10.75e-03
rod_pitch = 46.e-03
htc_correlation_type = 2
compute_enthalpy = true
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
burnup_function = burnup
total_densification = 0.09e-2
initial_fuel_density = 10690.
gas_swelling_model_type = SIFGRS
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
relocation_model = ESCORE_modified
burnup_function = burnup
diameter = 9.13e-3
gap = 170.e-6
linear_heat_rate_function = q
relocation_activation1 = 5000
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_thermal_expansion]
type = UO2ThermalExpansionMATPROEigenstrain
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
stress_free_temperature = 293.
eigenstrain_name = fuel_thermal_eigenstrain
[../]
[./fuel_elasticity_tensor]
type = UO2IsotropicDamageElasticityTensor
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
matpro_youngs_modulus = true
matpro_poissons_ratio = true
rod_ave_lin_pow = power_history
[../]
[./fuel_stress]
type = ComputeMultipleInelasticStress
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
tangent_operator = elastic
inelastic_models = 'fuel_creep'
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
fission_rate = fission_rate
grain_radius = 28.e-06
oxygen_to_metal_ratio = 2.002
[../]
[./fuel_density]
type = Density
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.2
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep clad_zryplasticity'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
[../]
[./clad_zryplasticity]
type = ZryPlasticityUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.2
zircaloy_alloy_type = 4
plasticity_model_type = MATPRO
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6550.
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 4.65e-3
clad_outer_radius = 5.375e-3
use_coolant_channel = true
fast_neutron_flux = fast_neutron_flux
[../]
[./fission_gas_release]
type = Sifgrs
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 1
diff_coeff_option = 4
doping_type = 1
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
max_value = 3200.
min_value = 293.
variable = temp
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 4.387e7
num_steps = 50000
dtmax = 5e5
dtmin = 0.1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
timestep_limiting_function = power_history
max_function_change = 1000.
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./alhr_input]
type = FunctionValuePostprocessor
function = power_history
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_max]
type = NodalMaxValue
variable = temp
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
execute_on = 'initial timestep_end'
[../]
[./burnup_ave]
type = RodAverageBurnup
burnup_function = burnup
[../]
[./burnup_ave_MWdkgU]
type = ScalePostprocessor
value = burnup_ave
scaling_factor = 950.
[../]
[./time_days]
type = FunctionValuePostprocessor
function = t
scale_factor = 1.157407407e-5
[../]
[./temp_clad_max]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./oxide_thickness_midplane]
type = ElementalVariableValue
elementid = 629
variable = oxide_thickness
execute_on = 'initial timestep_end'
[../]
[./strain_clad_hoop_max]
type = ElementExtremeValue
value_type = max
variable = strain_zz
block = clad
[../]
[./temp_clad_outer_midplane]
type = NodalVariableValue
nodeid = 763
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_central]
type = NodalVariableValue
variable = temp
nodeid = 337
execute_on = 'initial timestep_end'
[../]
[./gas_volume]
type = InternalVolume
boundary = '9'
execute_on = 'initial linear'
[../]
[./fission_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
execute_on = linear
[../]
[./fission_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
execute_on = linear
[../]
[./fgr_percent]
type = FGRPercent
fission_gas_released = fission_gas_released
fission_gas_generated = fission_gas_produced
execute_on = linear
[../]
[./clad_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 826
[../]
[./fuel_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 504
[../]
[./temp_upper_TF7]
type = NodalVariableValue
variable = temp
nodeid = 633
[../]
[./temp_lower_TF1]
type = NodalVariableValue
variable = temp
nodeid = 31
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[./console]
type = Console
max_rows = 15
[../]
[./t]
type = Checkpoint
interval = 2
num_files = 2
[../]
[./chkfile]
type = CSV
show = 'temp_lower_TF1 temp_upper_TF7 fgr_percent plenum_pressure strain_clad_hoop_max'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ022/TSQ022_1pt5.i
# Model is of a 10 slice pellet stack in 1.5D
# Top plenum height of 213.45 mm + bot_gap_height = 1.e-3 in 2D mesh
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
displacements = disp_x
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = Layered1DMesh
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
pellet_inner_radius = 0.0011684 #annular pellets
pellet_outer_radius = 0.0041275
clad_gap_width = 8.89e-5
clad_thickness = 6.35e-4
fuel_height = 3.81381
plenum_height = 0.21445
slices_per_block = 10
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 300.0 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./grain_radius]
block = fuel
initial_condition = 8.892e-6 # ((11.1+10.9+12.2)/3)/2*1.56
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_zz]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear # reads an input file containing rod average linear power vs time
data_file = TSQ022_alhr.csv
format = columns
[../]
[./axial_peaking_factors]
# reads an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = TSQ022_alhr_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
# reads an input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
x = '-100 0 141789874 141793474' # -100 @ 101326 Pa, 0 to 141789874 @ 15.517 MPa, 141793474 @ 101326 Pa
y = '.00653 1 1 .00653'
[../]
[./flux]
type = PiecewiseLinear
data_file = TSQ022_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = TSQ022_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
# reads an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = TSQ022_clad_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[./clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 15.517e6
fuel_pin_geometry = pin_geometry
[../]
[./fuel_axial_pressure]
type = ParsedFunction
value = plenum_pressure
vars = plenum_pressure
vals = plenum_pressure
[../]
[]
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = fuel # fission rate applied to the fuel only
fission_rate = fission_rate # coupling to the fission_rate aux variable
[../]
[]
[Modules]
[./TensorMechanics]
[./Layered1DMaster]
[./fuel]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = fuel
out_of_plane_pressure = fuel_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_strain fuel_volumetric_strain'
[../]
[./clad]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = clad
out_of_plane_pressure = clad_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
[../]
[../]
[../]
[]
[Burnup]
[./burnup]
block = fuel
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 0.00324 # checked with paraview
a_upper = 3.81705 # checked with paraview
fuel_outer_radius = .0041275 # checked with paraview
fuel_inner_radius = .0011684 # Checked with paraview
i_enrich = '0.0348 0.9652 0 0 0 0' # 3.48% U235
fuel_volume_ratio = 1.0
order = Constant
family = MONOMIAL
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = fuel
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises_stress
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = VonMisesStress
execute_on = timestep_end
block = fuel
[../]
[./creep_strain_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xx
index_i = 0
index_j = 0
block = clad
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xy
index_i = 0
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_zz
index_i = 2
index_j = 2
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
formulation = kinematic # #changed to match 1.5d example problem
system = constraint
penalty = 1e9
model = frictionless
#normal_smoothing_distance = 0.1 # This option does not play nicely with 1.5D
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
#normal_smoothing_distance = 0.1 # This option does not play nicely with 1.5D
[../]
[]
[BCs]
# No displacement boundary conditions are necessary for annular pellets because of the
# axisymmetric stress divergence which creates the additional constraint
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '2'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '2'
function = pressure_ramp # use the pressure_ramp function defined above
factor = 15.517e6
displacements = 'disp_x'
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.62e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup = burnup
diameter = 0.008255
linear_heat_rate_function = q
gap = 0.0001778 #diametral gap
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = fuel
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
initial_porosity = 0.05
burnup = burnup
gbs_model = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 20.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
# controls for linear iterations
l_max_its = 100
l_tol = 1e-3
# controls for nonlinear iterations
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 141793474 #141789874+3600
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
execute_on = 'initial linear'
fuel_pin_geometry = pin_geometry
[../]
[./clad_inner_vol]
type = LayeredInternalVolumePostprocessor
boundary = 7
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./pellet_volume]
type = LayeredInternalVolumePostprocessor
boundary = 8
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./avg_clad_temp]
type = LayeredSideAverageValuePostprocessor
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
fuel_pin_geometry = pin_geometry
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./gas_volume]
type = LayeredInternalVolumePostprocessor
boundary = 9
execute_on = 'initial linear'
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./flux_from_clad]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 5
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_fuel]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.81381 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = fuel
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = fuel
[../]
[./FCT]
type = NodalVariableValue
nodeid = 264 #coords (0.0, 2.10084)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./FCT_slice4]
type = NodalVariableValue
nodeid = 231 #coords (0.0, 1.71945)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = fuel
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
## Nodal comparison values
[./gap_slice6]
type = NodalVariableValue
variable = penetration
nodeid = 328 #coords (0.0041275, 2.48222)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 295 #coords (0.0041275, 2.10084)
[../]
[./gap_slice4]
type = NodalVariableValue
variable = penetration
nodeid = 262 #coords (0.0041275, 1.71945)
[../]
[./contact_pressure_slice6]
type = NodalVariableValue
variable = contact_pressure
nodeid = 328 #coords (0.0041275, 2.48222)
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 295 #coords (0.0041275, 2.10084)
[../]
[./contact_pressure_slice4]
type = NodalVariableValue
variable = contact_pressure
nodeid = 262 #coords (0.0041275, 1.71945)
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_1'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_fuel_radial_displacement'
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./outfile_1]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./chkfile]
type = CSV
show = 'average_burnup fis_gas_percent FCT rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
[../]
[]
assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/TSQ002.i
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = tsq002_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 8.7945e-6 # ((11.6+11.2+11.2+11.1)/4)/2*1.56
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = TSQ002_alhr.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = TSQ002_alhr_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 141798626 141802226' # -100 @ 101326 Pa, 0 to 141798626 @ 15.517 MPa, 141802226 @ 101326 Pa
y = '.00653 1 1 .00653'
[../]
[./flux]
type = PiecewiseLinear
data_file = TSQ002_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = TSQ002_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
type = PiecewiseBilinear
data_file = TSQ002_clad_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
add_variables = false
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = false
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1
fission_rate = fission_rate
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
a_lower = 0.00324
a_upper = 3.81705
fuel_outer_radius = 0.0041275
i_enrich = '0.0348 0.9652 0 0 0 0' # 3.48% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = pellet_type_1
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = constraint
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10
initial_moles = initial_moles
master = 5
gas_released = fission_gas_released
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.517e6
function = pressure_ramp
displacements = 'disp_x disp_y'
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.62e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup = burnup
diameter = 0.008255
linear_heat_rate_function = q
gap = 0.0001778 #diameteral gap
relocation_activation1 = 5000
burnup_relocation_stop = 0.024
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_1
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
initial_porosity = 0.05
burnup = burnup
gbs_model = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 20.0
variable = temp
[../]
[]
[Preconditioning]
[./smp]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1e-4
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 141802226 #141798626+3600
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.81381 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = pellet_type_1
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = pellet_type_1
[../]
[./FCT]
type = NodalVariableValue
nodeid = 30330 #coords (0.0, 2.10133)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./FCT_slice4]
type = NodalVariableValue
nodeid = 37085 #coords (0.0, 1.71896)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = pellet_type_1
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
## Nodal comparison values
[./gap_slice6]
type = NodalVariableValue
variable = penetration
nodeid = 23579 #coords (0.0041275, 2.48172)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 30299 #coords (0.0041275, 2.10133)
[../]
[./gap_slice4]
type = NodalVariableValue
variable = penetration
nodeid = 37054 #coords (0.0041275, 1.71896)
[../]
[./contact_pressure_slice6]
type = NodalVariableValue
variable = contact_pressure
nodeid = 23579 #coords (0.0041275, 2.48172)
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 30299 #coords (0.0041275, 2.10133)
[../]
[./contact_pressure_slice4]
type = NodalVariableValue
variable = contact_pressure
nodeid = 37054 #coords (0.0041275, 1.71896)
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = TENSOR
temperature = temp
fuel_pellet_blocks = pellet_type_1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/HbepR1/analysis/A364/SM/HbepR1_A364_sm.i
################################################################################
#
# Description: HbepR1 Rod 30 - Rod ID A364
#
#
#
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file A364-power.csv
# axial peaking factor file A364-axial-profile.csv
# flux boundary condition file A364-tempprofile.csv
#
# Revision History:
# Last update: 5/20/2016
#
################################################################################
[GlobalParams]
density = 10490 #94.882 %TD Assume TD = 10972.65 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 8.0e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .0052195
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.68
ny_cl = 3
clad_top_gap_height = 0.2461
clad_gap_width = 1.055e-4
elem_type = QUAD8
patch_size = 100 # 1000 lowering this and setting the strategy to auto will reduce the amount of memory required to run the job.
patch_update_strategy = auto
partitioner = centroid # this will help with run time
centroid_partitioner_direction = y # this will help with run time
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 273 #K
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5.148e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = A364-power.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = A364-axial-profile.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '-100 0 166323600 166327200' #
y = '0.014429 1 1 0.014429'
[../]
[./temp_ramp]
type = PiecewiseBilinear
data_file = A364-axial-tempprofile.csv
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3 # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate # coupling to the fission_rate aux variable
save_in = saved_t
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
factor = 1.68056e13 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.68478
fuel_inner_radius = 0.0
fuel_outer_radius = 0.0052195 # m
i_enrich = '0.0308 .9692 0 0 0 0'
RPF = RPF
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 1.1e-6
roughness_clad = 0.35e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 # Pa
function = pressure_ramp
[../]
[../]
[./coolant_temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = temp_ramp
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9 # clad interior + fuel exterior
initial_pressure = 0.375e6 # Pa
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get inital fill gas mass
temperature = plenum_temperature # coupling to post processor to get gas temperature approximation
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
total_densification = .0043
tensor_mechanics_compatibility = true
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
initial_porosity = 0.04
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_and_creep]
type = Elastic
dep_matl_props = deltav_v0_bd
block = 3
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.005325
clad_outer_radius = 0.006125
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.010439 # fuel pellet diamter in meters
gap = 105.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .049 # turn off relocation
relocation_activation1 = 5000
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
stress_free_temperature = 273
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
material_type = 1
youngs_modulus = 7.5e10
poissons_ratio = 0.3
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[]
[UserObjects]
[./integral_burnup] # Added the computation of the average fuel rod burnup
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 166327200
dtmax = 1e6
dtmin = 0.1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
# Clad postprocessor (The rest are created with StandardLWRFuelRodOutputs)
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
[../]
[./clad_fuel_gap]
type = NodalMaxValue
variable = penetration
boundary = 10
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
interval = 1
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.10/TM/IFA_650_10_part2_tm.i
# Halden test IFA-650.10
[GlobalParams]
density = 10447. # 95.32% of 10960
displacements = 'disp_x disp_y'
temperature = temp
order = FIRST
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
restart_file_base = 'IFA_650_10_part1_tm_checkpoint_cp/LATEST'
[]
[Mesh]
file = mesh_ifa65010.e
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.
[../]
[]
[Functions]
[./linear_heat_rate]
type = PiecewiseLinear
data_file = lhr_average.csv
scale_factor = 1.e+03
format = columns
[../]
[./axial_power_peaking_factors]
type = PiecewiseBilinear
data_file = lhr_peaking_factors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./rod_outer_pressure]
type = PiecewiseLinear
data_file = rod_outer_pressure.csv
scale_factor = 1.e+06
format = columns
[../]
[./clad_outer_temperature]
type = PiecewiseBilinear
data_file = temp_outer_clad.csv
scale_factor = 1.
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./q] # same as linear_heat_rate for the base irradiation
type = PiecewiseLinear
data_file = lhr_average.csv
scale_factor = 1.e+03
format = columns
[../]
[./heat_sink_temperature]
type = PiecewiseBilinear
data_file = heat_sink_temperature.csv
scale_factor = 1.
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./average_coolant_htc]
type = PiecewiseLinear
data_file = htc_average.csv
scale_factor = 1.
format = columns
[../]
[./heat_transfer_mode]
type = PiecewiseConstant
x = '0 125690842. 125691189.5'
y = '9 9 8 '
direction = 'right'
[../]
[./forced_times]
type = PiecewiseLinear
data_file = timestep_limiting.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./grain_radius]
initial_condition = 4.65e-06
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase] # Fraction of beta phase in Zry
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness] # ZrO2 scale thickness (m)
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfract_total] # Current oxigen weight fraction (oxide+metal) (/)
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total] # Gained oxigen weight fraction (oxide+metal) (/)
order = CONSTANT
family = MONOMIAL
[../]
[./bursted] # Did cladding burst occur?
order = CONSTANT
family = MONOMIAL
[../]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_hflux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./htype]
order = CONSTANT
family = MONOMIAL
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
block = clad
variable = fast_neutron_flux
rod_ave_lin_pow = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./thcond]
type = MaterialRealAux
property = thermal_conductivity
variable = thermal_conductivity
block = pellet_type_1
[../]
[./hoop_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hoop_stress
scalar_type = HoopStress
execute_on = timestep_end
[../]
[./creep_rate]
type = MaterialRealAux
block = clad
variable = creep_rate
property = creep_rate
execute_on = timestep_end
[../]
[./hoop_strain]
type = RankTwoScalarAux
rank_two_tensor = total_strain
variable = hoop_strain
scalar_type = HoopStress
execute_on = timestep_end
[../]
[./fract_bphase]
type = MaterialRealAux
block = clad
variable = fract_beta_phase
property = fract_beta_phase
execute_on = 'initial linear'
[../]
[./oxi_thickness]
type = MaterialRealAux
boundary = 2
variable = oxide_thickness
property = oxide_scale_thickness
execute_on = 'initial linear'
[../]
[./ofract_total]
type = MaterialRealAux
boundary = 2
variable = oxywtfract_total
property = current_oxygen_weight_frac_total
execute_on = 'initial linear'
[../]
[./ofgain_total]
type = MaterialRealAux
boundary = 2
variable = oxywtfgain_total
property = oxygen_weight_frac_gained_total
execute_on = 'initial linear'
[../]
[./hasbursted]
type = MaterialRealAux
boundary = 2
variable = bursted
property = failed
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
boundary = 10
property = gap_conductance
variable = gap_conductance
execute_on = 'initial linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./coolant_hflux]
type = MaterialRealAux
property = output_heat_flux
variable = coolant_hflux
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = hmode
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = htype
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./pelletid]
type = PelletIdAux
block = pellet_type_1
variable = pellet_id
a_lower = 8.5e-03
a_upper = 448.5e-03
number_pellets = 44
execute_on = initial
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = pellet_type_1
add_variables = true
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_eigenstrain fuel_volumetric_swelling_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_strain clad_irradiation_growth'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
add_variables = true
decomposition_method = EigenSolution
[../]
[]
[Kernels]
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
rod_ave_lin_pow = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
num_radial = 50
bias = 0.95
num_axial = 20
a_lower = 8.5e-03
a_upper = 448.5e-03
fuel_inner_radius = 0.
fuel_outer_radius = 4.105e-03
fuel_volume_ratio = 1.
i_enrich = '0.04487 0.95513 0 0 0 0'
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
disp_x = disp_x
disp_y = disp_y
penalty = 1.e+07
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_gas_fractions = '1. 0. 0. 0. 0. 0. 0. 0. 0. 0.'
initial_moles = initial_moles
gas_released = fission_gas_released
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
quadrature = true
normal_smoothing_distance = 0.1
roughness_clad = 1.8e-07
roughness_fuel = 2.e-06
roughness_coef = 3.2
refab_gas_fractions = '0.05 0.95 0. 0. 0. 0. 0. 0. 0. 0.'
refab_time = 124861061.
refab_type = 0
[../]
[]
#TODO: Add option in StandardLWRFuelRodOutputs to compute plenum temperature this way.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[BCs]
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = PresetBC
variable = disp_x
boundary = 12
value = 0.
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.
[../]
[./clad_outer_temp]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = clad_outer_temperature
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
function = rod_outer_pressure
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.6e+06
startup_time = 0.
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 124861061.
refab_pressure = 4.e+06
refab_temperature = 293.15
refab_volume = 1.7e-05
[../]
[../]
[]
[Controls]
#[./period0]
# type = TimePeriod
# disable_objects = 'BCs/clad_outer_temp'
# start_time = 0.
# end_time = 124861061.0
#[../]
[./period1]
type = TimePeriod
disable_objects = 'BCs/clad_outer_temp'
start_time = 125690771.0
end_time = 125691189.5
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # PWR conditions (ignored after base irradiation)
boundary = '1 2 3'
variable = temp
heat_transfer_mode = heat_transfer_mode # prescribe htc until end of blowdown. Then use radiative (+ convective prescribed)
heat_transfer_coefficient = average_coolant_htc # For base irradiation, using averge htc from a previous simulation. Afterwards, use constant values (from jernkvist) plus radiation from end of blowdown
effective_emissivity = 0.6 # 0.75 # cf. Jernkvist
inlet_temperature = heat_sink_temperature # K
#inlet_pressure = 15.5e+06 # Pa
#inlet_massflux = 3800. # kg/m^2-s
rod_diameter = 9.5e-03 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
compute_enthalpy = false #true
#oxide_thickness = oxide_thickness
#heat_transfer_mode = 1 # Natural convection
#htc_correlation_type = 2 # Jens-Lottes (recommended for Halden HBWR)
outputs = all
output_properties = 'coolant_channel_htype coolant_channel_hmode'
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
initial_porosity = 0.0468
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_elasticity_tensor]
type = UO2IsotropicDamageElasticityTensor
block = pellet_type_1
rod_ave_lin_pow = linear_heat_rate
[../]
[./fuel_stress]
type = ComputeMultipleInelasticStress
block = pellet_type_1
inelastic_models = 'fuel_creep'
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_1
temperature = temp
burnup_function = burnup
initial_porosity = 0.0468
initial_fuel_density = 10447.
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = pellet_type_1
temperature = temp
fission_rate = fission_rate
#burnup_function = burnup #TODO For consistency, we should specify burnup_function rather than fission_rate,
#but keeping it this way to match the SM model
grain_radius = 4.65e-6
oxygen_to_metal_ratio = 2.0
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
diameter = 8.21e-03
linear_heat_rate_function = q
gap = 150.e-06
burnup_relocation_stop = 1.e+20
eigenstrain_name = fuel_relocation_eigenstrain
relocation_activation1 = 19685.039
[../]
[./fission_gas]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.0468
diff_coeff_option = 3
transient_option = 1 #0
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
[../]
[./clad_density]
type = Density
block = clad
density = 6550.
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.
specific_heat = 330.
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 300.0 #TODO: It is odd to have different values for fuel and clad, but keeping this way to match SM
eigenstrain_name = clad_thermal_strain
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = clad
youngs_modulus = 1.e+11
poissons_ratio = 0.3
[../]
[./zry_thermal_creep]
type = ZryCreepLOCAErbacherLimbackHoppeUpdate
block = clad
temperature = temp
model_irradiation_creep = false
model_primary_creep = false
model_thermal_creep = true
#TODO: The parameters below really should be provided, but they weren't specified in the SM model.
# They may have not been included because irradiation creep wasn't modeled. However, they are used in the thermal
# creep model as well.
# fast_neutron_flux = fast_neutron_flux
# fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'zry_thermal_creep'
block = clad
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = ESCORE_IrradiationGrowthZr4
eigenstrain_name = clad_irradiation_growth
[../]
[./clad_phase]
type = ZrPhase
block = clad
temperature = temp
numerical_method = 2
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temp
clad_inner_radius = 4.18e-03
clad_outer_radius = 4.75e-03
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = cathcart
use_coolant_channel = true
[../]
[./clad_failure_criterion]
type = ZryCladdingFailure
boundary = 2
failure_criterion = plastic_instability
hoop_stress = hoop_stress
effective_strain_rate_creep = creep_rate
#eff_strain_rate_plast =
fraction_beta_phase = fract_beta_phase
fraction_oxygen_gain = oxywtfract_total
temperature = temp
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1.e-05
variable = disp_x
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_tol = 1.e-02 # <--- l_tol is ignored when EW is used.
#l_tol = 8.e-03
line_search = 'none'
l_max_its = 200
nl_max_its = 15
nl_rel_tol = 1.e-04
nl_abs_tol = 1.e-10
n_startup_steps = 1
#end_time = 124861061. # End of base irradiation
#end_time = 125690771. # Blowdown. End prescribing clad outer temperature.
#end_time = 125690842. # End of blowdown
end_time = 125691189.5
dtmax = 5.e+05
dtmin = 0.00000001
[./TimeStepper]
type = IterationAdaptiveDT
timestep_limiting_postprocessor = timestep_material
dt = 1.e+02
#growth_factor = 1.1
#optimal_iterations = 4
#iteration_window = 2
timestep_limiting_function = forced_times #linear_heat_rate
max_function_change = 2000.
force_step_every_function_point = true
time_t = '121509219. 124861061. 125680151. 125690151. 125690771. 125691027. 125691033.'
time_dt = '5.e+05 1.e+04 1.e+04 10. 5. 0.5 5. '
[../]
[]
[UserObjects]
[./pbz]
type = PelletBrittleZone
block = pellet_type_1
pellet_id = pellet_id
temp = temp
a_lower = 8.5e-03
a_upper = 448.5e-03
pellet_radius = 4.105e-03
number_pellets = 44
execute_on = 'initial linear'
[../]
[./terminator]
type = Terminator
expression = 'bursted > 0'
execute_on = timestep_end
[../]
[]
[Postprocessors]
[./alhr_input]
type = FunctionValuePostprocessor
function = linear_heat_rate
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet_type_1
variable = burnup
[../]
[./temp_clad_max]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./betaph_fract_max]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
block = clad
execute_on = 'initial timestep_end'
[../]
[./oxygen_fract_max]
type = ElementExtremeValue
block = clad
value_type = max
variable = oxywtfract_total
execute_on = 'initial timestep_end'
[../]
[./oxygen_fgain_max]
type = ElementExtremeValue
block = clad
value_type = max
variable = oxywtfgain_total
execute_on = 'initial timestep_end'
[../]
[./creep_rate_max]
type = ElementExtremeValue
value_type = max
variable = creep_rate
block = clad
[../]
[./timestep_material]
type = MaterialTimeStepPostprocessor
block = clad
[../]
[./strain_clad_hoop_max]
type = ElementExtremeValue
value_type = max
variable = hoop_strain
block = clad
[../]
[./stress_clad_hoop_max]
type = ElementExtremeValue
value_type = max
variable = hoop_stress
block = clad
execute_on = 'initial timestep_end'
[../]
[./bursted]
type = ElementExtremeValue
value_type = max
variable = bursted
block = clad
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_midplane]
type = NodalVariableValue
nodeid = 676 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_tclow]
type = NodalVariableValue
nodeid = 826 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_tchigh]
type = NodalVariableValue
nodeid = 511 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_plenum_mid]
type = NodalVariableValue
nodeid = 241 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_inner_midplane]
type = NodalVariableValue
nodeid = 679 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_max]
type = NodalExtremeValue
boundary = '1 2 3'
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_ave]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_max]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_central]
type = NodalVariableValue
variable = temp
nodeid = 1569 # !! Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_outer_max]
type = NodalExtremeValue
boundary = 10
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./strain_clad_hoop_outer_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = hoop_strain
execute_on = 'initial timestep_end'
[../]
[./stress_clad_hoop_outer_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = hoop_stress
execute_on = 'initial timestep_end'
[../]
[./contact_pressure_midplane]
type = ElementalVariableValue
elementid = 1300 # !! Mesh dependent
variable = contact_pressure
execute_on = 'initial timestep_end'
[../]
[./oxide_thickness_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = oxide_thickness
execute_on = 'initial timestep_end'
[../]
[./gap_conductance_average]
type = SideAverageValue
boundary = 10
variable = gap_conductance
execute_on = 'initial timestep_end'
[../]
[./coolant_htc_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = coolant_htc
execute_on = 'initial timestep_end'
[../]
[./coolant_htc_average]
type = SideAverageValue
boundary = 2
variable = coolant_htc
execute_on = 'initial timestep_end'
[../]
[./coolant_hflux_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = coolant_hflux
execute_on = 'initial timestep_end'
[../]
[./coolant_hflux_average]
type = SideAverageValue
boundary = 2
variable = coolant_hflux
execute_on = 'initial timestep_end'
[../]
[]
[VectorPostprocessors]
[./clad_radial_disp]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_2'
[../]
[./clad_out_temp]
type = NodalValueSampler
variable = temp
boundary = 2
sort_by = y
outputs = 'outfile_temp_2'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_1
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./outfile_2]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_temp_2]
type = CSV
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_3/REP_Na_3.i
# REP Na 3 Rodlet Base Irradiation
[GlobalParams]
density = 10394.075 # assumed TD = 10970
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 30
acceptable_multiplier = 10
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
nx_p = 11
ny_p = 128
ny_cu = 3
ny_c = 130
ny_cl = 3
nx_c = 4
clad_thickness = 0.000596
pellet_outer_radius = 0.0040956
pellet_quantity = 32
pellet_height = 0.0135890
clad_top_gap_height = 0.0298168
clad_bot_gap_height = 0.003
clad_gap_width = 82.0e-6
top_bot_clad_height = 0.0015
elem_type = QUAD8
patch_size = 40
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.15
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5.0e-6 # Assume Grain size 10 microns
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fuel_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./stress_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_htype]
order = CONSTANT
family = MONOMIAL
[../]
[./critical_heat_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./plastic_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./oxywtfract_total]
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = REPNa3_power_history_Full.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = REPNa3_axial_peaking_Full.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # inlet coolant pressure evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 101325
8640 15499970
17280 15499970
25920 15499970
34560 15499970
43200 15499970
51840 15499970
98798400 15499970
99273600 101325
99273610 101325
99273650 500008
99273700 500008
99273900 500008
99274000 101325
99274100 101325'
[../]
[./temp_ramp] # inlet coolant temp evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 293.15
8640 583.15
17280 583.15
25920 583.15
34560 583.15
43200 583.15
51840 583.15
98798400 583.15
99273600 293.15
99273610 293.15
99273650 553.15
99273700 553.15
99273900 553.15
99274000 293.15
99274100 293.15'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./Fuel_CTE_function] #Fuel CTE as a function of temp from MATPRO data
type = PiecewiseLinear
format = columns
xy_data = ' 0 1.000E-05
300 1.000E-05
350 1.000E-05
400 1.000E-05
450 1.000E-05
500 1.001E-05
550 1.002E-05
600 1.003E-05
650 1.005E-05
700 1.008E-05
750 1.011E-05
800 1.015E-05
850 1.020E-05
900 1.026E-05
950 1.032E-05
1000 1.039E-05
1050 1.046E-05
1100 1.053E-05
1150 1.061E-05
1200 1.069E-05
1250 1.077E-05
1300 1.085E-05
1350 1.094E-05
1400 1.102E-05
1450 1.111E-05
1500 1.119E-05
1550 1.127E-05
1600 1.135E-05
1650 1.143E-05
1700 1.151E-05
1750 1.158E-05
1800 1.166E-05
1850 1.173E-05
1900 1.180E-05
1950 1.187E-05
2000 1.193E-05
2050 1.199E-05
2100 1.205E-05
2150 1.211E-05
2200 1.217E-05
2250 1.222E-05
2300 1.227E-05
2350 1.232E-05
2400 1.237E-05
2450 1.242E-05
2500 1.246E-05
2550 1.250E-05
2600 1.254E-05
2650 1.258E-05
2700 1.262E-05
2750 1.265E-05
2800 1.268E-05
2850 1.271E-05
2900 1.274E-05
2950 1.277E-05
3000 1.280E-05
3050 1.282E-05
3100 1.285E-05'
[../]
[./burnup_GWd]
type = ParsedFunction
value = bu*950
vars = 'bu'
vals = 'average_burnup'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 33
a_upper = 0.4393480
a_lower = 0.0045
fuel_inner_radius = 0
fuel_outer_radius = 0.0040956
fuel_volume_ratio = 1
i_enrich = '0.045 0.955 0 0 0 0'
RPF = RPF
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_profile
factor = 3e13 #n/m2-s
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
block = 1
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./fuel_conductance]
type = MaterialRealAux
property = thermal_conductivity
variable = fuel_cond
block = 3
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = total_swell
execute_on = timestep_end
block = 3
[../]
[./stress_hoop]
type = MaterialTensorAux
tensor = stress
variable = stress_hoop
quantity = Hoop
execute_on = timestep_end
[../]
[./stress_axial]
type = MaterialTensorAux
tensor = stress
variable = stress_axial
quantity = Axial
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./plastic_strain_hoop]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./plastic_strain_axial]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./total_hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_hoop_strain
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./total_axial_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_axial_strain
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./elastic_strain_hoop]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./elastic_strain_axial]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./clad_coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = clad_coolant_htc
boundary = 2
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = 2
[../]
[./clad_coolant_flux]
type = MaterialRealAux
property = output_heat_flux
variable = clad_coolant_flux
boundary = 2
[../]
[./coolant_channel_hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = coolant_channel_hmode
boundary = 2
[../]
[./coolant_channel_htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = coolant_channel_htype
boundary = 2
[../]
[./critical_heat_flux]
type = MaterialRealAux
property = critical_heat_flux
variable = critical_heat_flux
boundary = 2
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./plastic_strain_mag]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
[../]
[./ofract_total]
type = MaterialRealAux
variable = oxywtfract_total
property = current_oxygen_weight_frac_total
execute_on = timestep_end
boundary = 2
[../]
[./ofgain_total]
type = MaterialRealAux
variable = oxywtfgain_total
property = oxygen_weight_frac_gained_total
execute_on = timestep_end
boundary = 2
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e10
formulation = penalty
normalize_penalty = false
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2.0e-6
roughness_clad = 0.5e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
emissivity_fuel = 0.797698
emissivity_clad = 0.325
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 99187200
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_temperature = 293.15
initial_pressure = 2.60e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
save_in = 'saved_x saved_y'
refab_time = 99187200
refab_pressure = 0.31e6
refab_temperature = 293.15
refab_volume = 2.0e-6
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface_water] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp # K
inlet_pressure = pressure_ramp # Pa
inlet_massflux = 3244.044104 # kg/m^2-sec
rod_diameter = 0.0095 # m
rod_pitch = 1.26e-2 # m
coolant_material = 'water'
compute_enthalpy = true
oxide_thickness = oxide_thickness
number_axial_zone = 50
[../]
#
# [./convective_clad_surface_sodium] # apply convective boundary to clad outer surface
# boundary = '1 2 3'
# variable = temp
# inlet_temperature = temp_ramp # K
# inlet_pressure = pressure_ramp # Pa
# inlet_massflux = 3533 # kg/m^2-sec Based on flow rate provided and flow area and estimated density of 885.1 kg/m^3
# flow_area = 8.74855e-5 #m^2
# heated_diameter = 1.172526e-2 #m
# hydraulic_diameter = 4.7e-3 #m
# heated_perimeter = 2.984513e-2 #m
# coolant_material = 'sodium'
# compute_enthalpy = true
# heat_transfer_mode = 0
# oxide_thickness = oxide_thickness # coupled oxide_thickness
# number_axial_zone = 50
# rod_pitch = 1.26e-2 # m
# rod_diameter = 0.0095 # m
# [../]
[]
[Materials]
[./density_fuel]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.0525
[../]
[./fuel_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2e11
poissons_ratio = 0.345
#thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
thermal_expansion_function = Fuel_CTE_function
stress_free_temperature = 293.15
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.0081912 #Fuel pellet diameter in m
q = q
gap = 164.0e-6 #diametral gap in m
burnup_relocation_stop = 0.0242
relocation_activation1 = 5000 #initial relocation activation power in W/m
[../]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
save_solid_swell = true
save_densification = true
total_densification = 0.00675
initial_porosity = 0.0525
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
initial_porosity = 0.0525
grain_radius = grain_radius
#grain_radius_const = 5.0e-6
gbs_model = true
transient_option = 0
[../]
[./density_clad]
type = Density
block = '1'
density = 6550
[../]
[./clad_thermal]
type = ThermalZry
block = '1'
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
formulation = NonlinearRZ
large_strain = 1
constitutive_model = combined
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
model_irradiation_growth = 1
model_thermal_expansion = 1
model_elastic_modulus = 1
stress_free_temperature = 293.15
compute_JIntegral = true
oxygen_concentration = 0
max_inelastic_increment = 1.0e-4
compute_material_timestep_limit = true
[../]
[./combined]
type = CombinedCreepPlasticity
block = 1
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = 1
model_primary_creep = 1
model_thermal_creep = 1
model_thermal_creep_loca = 0
[../]
[./plasticity]
type = ZryPlasticity
block = clad
temp = temp
cold_work_factor = 0.5
fast_neutron_fluence = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
use_matpro = true
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0041178
clad_outer_radius = 0.0047549
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./phase]
type = ZrPhase
block = 1
temperature = temp
numerical_method = 2
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
[./contact_slip]
type = ContactSlipDamper
master = 5
slave = 10
min_damping_factor = 0.05
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1e-3
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = 0
end_time = 99273600
dtmax = 1e6
dtmin = 1e-9
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e3
optimal_iterations = 10
iteration_window = 4
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
max_function_change = 1e6
force_step_every_function_point = true
timestep_limiting_postprocessor = material_timestep_control
time_t = '99273610 99273620 99273630 99273640 99273650 99273660 99273670 99273680'
time_dt = '10 10 10 10 10 10 10 10'
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
#Used during RIA to be mainly the cladding temperature at the top of the plenum
# [./ave_temp_interior]
# type = NodalVariableValue
# variable = temp
# nodeid = 1937
# execute_on = 'initial linear'
# [../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./1_rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./burnup_GWd]
type = FunctionValuePostprocessor
function = burnup_GWd
[../]
#######################################
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 4415
use_displaced_mesh = 1
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 4415
use_displaced_mesh = 1
[../]
[./gap_cond]
type = ElementalVariableValue
variable = gap_cond
elementid = 1324
use_displaced_mesh = 1
[../]
[./creep_hoop_strain]
type = ElementalVariableValue
variable = creep_strain_hoop
elementid = 292
use_displaced_mesh = 1
[../]
[./elastic_hoop_strain]
type = ElementalVariableValue
variable = elastic_strain_hoop
elementid = 292
use_displaced_mesh = 1
[../]
[./plastic_hoop_strain]
type = ElementalVariableValue
variable = plastic_strain_hoop
elementid = 292
use_displaced_mesh = 1
[../]
[./total_hoop_strain]
type = ElementalVariableValue
variable = total_hoop_strain
elementid = 292
use_displaced_mesh = 1
[../]
[./clad_hoop_stress]
type = ElementalVariableValue
variable = stress_hoop
elementid = 292
use_displaced_mesh = 1
[../]
[./clad_axial_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 2031
use_displaced_mesh = 1
[../]
[./clad_oxide_thickness]
type = ElementalVariableValue
variable = oxide_thickness
elementid = 292
use_displaced_mesh = 1
[../]
[./clad_coolant_htc]
type = ElementalVariableValue
variable = clad_coolant_htc
elementid = 292
use_displaced_mesh = 1
[../]
[./coolant_temp]
type = ElementalVariableValue
variable = coolant_temp
elementid = 292
use_displaced_mesh = 1
[../]
[./fuel_centerline_temp]
type = NodalVariableValue
variable = temp
nodeid = 4384
[../]
[./fuel_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 4415
[../]
[./clad_inner_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 1027
[../]
[./clad_outer_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 1037
[../]
[./fuel_axial_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 6655
[../]
[./clad_radial_elongation]
type = NodalVariableValue
variable = disp_x
nodeid = 1037
[../]
[./fuel_radial_elongation]
type = NodalVariableValue
variable = disp_x
nodeid = 4415
[../]
[./SED_PPN_O]
type = ElementalVariableValue
variable = SED
elementid = 292
use_displaced_mesh = 1
[../]
[./SED_PPN_I]
type = ElementalVariableValue
variable = SED
elementid = 289
use_displaced_mesh = 1
[../]
[./OFract_PPN_O]
type = ElementalVariableValue
variable = oxywtfract_total
elementid = 292
use_displaced_mesh = 1
[../]
[./OGain_PPN_O]
type = ElementalVariableValue
variable = oxywtfgain_total
elementid = 292
use_displaced_mesh = 1
[../]
#######################################
[./max_fuel_temp]
type = NodalMaxValue
block = 3
variable = temp
[../]
[./max_clad_temp]
type = NodalMaxValue
block = clad
variable = temp
[../]
[./max_clad_SED]
type = ElementExtremeValue
block = clad
variable = SED
value_type = max
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[./material_timestep_control]
type = MaterialTimeStepPostprocessor
block = 1
[../]
[]
[VectorPostprocessors]
[./ox_thick]
type = SideValueSampler
variable = oxide_thickness
boundary = 2
sort_by = y
outputs = 'outfile_2'
[../]
[./rad_temp]
type = LineValueSampler
end_point = '0.0040956 0.22 0.0'
start_point = '0.0 0.22 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = 3
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
[./outfile_2]
type = CSV
sync_times = '99273600 99274100'
sync_only = true
[../]
[./dummy]
type = CSV
enable = false
[../]
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
sync_times = '99273600'
sync_only = true
[../]
[./chkfile]
type = CSV
show = 'plenum_temperature fission_gas_released_percentage average_centerline_fuel_temperature average_burnup'
execute_on = 'FINAL'
[../]
[./exodus]
type = Exodus
interval = 4
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
show_material_props = true
[]
assessment/LWR/validation/IFA_432/analysis/rod3/SM/IFA_432_rod3_sm.i
[GlobalParams]
density = 10431 # initial fuel density 95% of theoretical (10980 kg/m3)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa_432_rod3_fine.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 513.3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4 5'
initial_condition = 3.5e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = bol_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factor]
type = PiecewiseBilinear
data_file = bol_axial.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.029395 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factor'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = '3 4 5'
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
factor = 1.6e12 #(n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4 5'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = '3 4 5'
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
num_radial = 81
num_axial = 21
a_lower = 0.01494
a_upper = 0.57374
fuel_inner_radius = 0.00
fuel_outer_radius = 0.0054165
fuel_volume_ratio = 0.992883
i_enrich = '0.1 .9 0 0 0 0' # 10% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_fuel = 2.16e-6
roughness_clad = 6.35e-7
roughness_coef = 3.2
quadrature = true
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 513.3
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0135e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = '3 4 5'
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_density]
type = Density
block = '3 4 5'
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4 5'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = '3 4 5'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
stress_free_temperature = 297
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = '3 4 5'
burnup_function = burnup
q = q
diameter = 1.0833e-2
gap = 76.0e-6
relocation_activation1 = 5000
burnup_relocation_stop = 0.00821
tensor_mechanics_compatibility = true
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
stress_free_temperature = 297
model_irradiation_growth = true
model_thermal_expansion = false
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4 5'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 80
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# Time steps set up to match halden data
# start_time = -100
n_startup_steps = 1
end_time = 29700
dtmin = 1
[./TimeStepper]
type = ConstantDT
dt = 900
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3 4 5'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4 5'
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3 4 5'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
block = '3 4 5'
burnup_function = burnup
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4 5'
outputs = exodus
[../]
[./power_lower_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.075265 0'
[../]
[./power_upper_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.50389 0'
[../]
[./upper_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 8896 # paraview global node id 8897
[../]
[./lower_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 2694 # paraviw global node id 2695
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[]
test/tests/fuelrodlinevaluesampler/example_problem_smeared_test.i
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = SmearedTwoPelletOneType2D.e
displacements = 'disp_x disp_y'
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
# Define dependent variables and initial conditions
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
outputs = none
[../]
[./saved_y]
outputs = none
[../]
[./saved_t]
outputs = none
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
# Specify that we need solid mechanics (divergence of stress)
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
fuel_pin_geometry = 'pin_geometry'
#a_lower = 0.00324 # mesh dependent! ##Commentted out due to using FuelPinGeometry
#a_upper = 0.02696 # mesh dependent! ##Commentted out due to using FuelPinGeometry
#fuel_inner_radius = 0 ##Commentted out due to using FuelPinGeometry
#fuel_outer_radius = .0041 ##Commentted out due to using FuelPinGeometry
fuel_volume_ratio = 0.987775 # for use with dished pellets (ratio of actual volume to cylinder volume)
order = CONSTANT
family = MONOMIAL
#N235 = N235 # Activate to write N235 concentration to output file
#N236 = N236 # Activate to write N236 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
RPF = RPF
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'initial timestep_end'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'initial timestep_end'
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
contact_pressure = contact_pressure
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = -200
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
execute_on = 'initial linear'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
initial_porosity = 0.0
temp = temp
burnup_function = burnup
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (bison kernel)
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = pellet_type_1
temp = temp
burnup_function = burnup
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (bison kernel)
type = MechUO2
block = pellet_type_1
temp = temp
formulation = NonlinearRZ
burnup_function = burnup
model_swelling = true
name_swelling_model = fuel_solid_mechanics_swelling
model_relocation = true
name_relocation_model = fuel_relocation
model_thermal_expansion = true
model_hotpressing = true
model_creep = true
isotropic_cracking = true
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 10.0e-6
oxy_to_metal_ratio = 2.0
stress_free_temperature = 295.0
dep_matl_props = deltav_v0_bd
rod_ave_lin_pow = power_history
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
fuel_pin_geometry = 'pin_geometry'
#diameter = 0.0082 ##Commentted out due to using FuelPinGeometry
#gap = 160e-6 # diametral gap ##Commentted out due to using FuelPinGeometry
q = q
burnup_relocation_stop = 1.e20
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr4 (bison kernel)
type = ThermalIrradiationCreepZr4
block = clad
temp = temp
fast_neutron_flux = fast_neutron_flux
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
stress_free_temperature = 295.0
[../]
[./clad_irrgrowth]
type = IrradiationGrowthZr4
block = clad
fast_neutron_fluence = fast_neutron_fluence
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200
min_value = 300
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
coupled_groups = 'disp_x,disp_y'
[../]
[]
[Executioner]
# PETSC options:
# petsc_options
# petsc_options_iname
# petsc_options_value
#
# controls for linear iterations
# l_max_its
# l_tol
#
# controls for nonlinear iterations
# nl_max_its
# nl_rel_tol
# nl_abs_tol
#
# time control
# start_time
# dt
# optimal_iterations
# iteration_window
# linear_iteration_ratio
type = Transient
solve_type = 'PJFNK'
petsc_options = '-pc_type_asm'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-5 #8e-3
nl_max_its = 15
# This value is necessary to solve the displacements resonably tight for a good vonmises caluculation in the first timestep.
nl_rel_tol = 1e-10
# This value is here to "loosen" the relative tolerance for subsequent timesteps.
nl_abs_tol = 1e-8
start_time = -200
num_steps = 2
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2.0e2
optimal_iterations = 6
iteration_window = 2
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
execute_on = timestep_end
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
execute_on = timestep_end
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
execute_on = timestep_end
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
execute_on = timestep_end
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 9
component = 1
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./_dt] # time step
type = TimestepSize
execute_on = timestep_end
[../]
[./nonlinear_its] # number of nonlinear iterations at each timestep
type = NumNonlinearIterations
execute_on = timestep_end
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
execute_on = 'initial timestep_end'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.02372 # rod height
execute_on = 'initial timestep_end'
[../]
[]
[VectorPostprocessors]
[./fuel_vonmises]
type = FuelRodLineValueSampler
variable = vonmises
material = 'fuel'
fraction = 0.5
num_points = 20
orientation = 'horizontal'
fuel_pin_geometry = 'pin_geometry'
outputs = chkfile
[../]
[./clad_vonmises]
type = FuelRodLineValueSampler
variable = vonmises
material = 'clad'
fraction = 0.5
num_points = 10
orientation = 'horizontal'
fuel_pin_geometry = 'pin_geometry'
outputs = chkfile
[../]
[]
[Outputs]
exodus = true
color = false
csv = true
[./console]
type = Console
output_linear = true
max_rows = 25
[../]
[./chkfile]
type = CSV
execute_on = 'FINAL'
[../]
[]
examples/triso_particle_2D-RZ/triso2D_accident_tm.i
# This example is 2D-RZ analysis of a TRISO fuel particle. Fully coupled
# heat transfer and solid mechanics, plus diffusion of the fission product
# species cesium (Cs) are simulated. The mesh includes contact surfaces
# between the buffer and IPyC layers to facilitate a gap opening between
# these layers. These surfaces are initially in mechanical contact but
# are assumed to have no strength in tension. A coarse mesh is used to
# provide a short run time.
# The calculation simulates fuel-life in three steps. The first step is an
# irradiation period, where constant power and a fixed particle surface
# temperature (1500 K) are assumed over a lifetime of 76 Ms (2.4 yrs).
# For the second step, fuel removal and storage are simulated by setting
# the reactor power and Cs source terms to zero, reducing the particle
# surface temperature to ambient (300 K), and then holding it
# for 100 days. A third and final step simulates accident
# behavior by increasing the particle surface temperature from ambient
# to 2073 K over 2 hrs, and then holding it at this elevated temperature
# for an additional 200 hrs. At the particle outer boundary, the Cs
# concentration is held at zero and the pressure at ambient during the
# entire simulation. The particle is assumed to be stress-free at an
# initial temperature of 1500 K.
#
# Details about this simulation are given in Section 4 of the following
# article: J. D. Hales, R. L. Williamson, S. R. Novascone, D. M. Perez,
# B. W. Spencer and G. Pastore, "Multidimensional multiphysics simulation
# of TRISO particle fuel", Journal of Nuclear Materials, Vol. 443, p. 531,
# 2013.
[GlobalParams]
order = SECOND
family = LAGRANGE
displacements = 'disp_x disp_y'
[]
[Mesh]
file = triso2Dmed.e
[]
[Problem]
coord_type = RZ
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 1500.0
[../]
[./conc]
initial_condition = 0.0
scaling = 1e18
[../]
[]
[AuxVariables]
[./fluence]
[../]
[./fast_neutron_flux]
[../]
[./fission_rate]
block = fuel
[../]
[./burnup]
block = fuel
[../]
[./gap_condSlave]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[../]
[./temp_bc]
type = PiecewiseLinear
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[../]
[./k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[../]
[./d1_function]
type = ParsedFunction
value = 'exp(t/4.5e25)'
[../]
[./d_gap]
type = PiecewiseLinear
x = '1500 2100'
y = '1e-14 1e-12'
[../]
[]
[Modules/TensorMechanics/Master]
use_displaced_mesh = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx hydrostatic_stress'
strain = FINITE
incremental = true
add_variables = false
[./default]
block = 'fuel buffer IPyC OPyC'
eigenstrain_names = 'thermal_strain swelling_strain'
[../]
[./SiC]
block = 'SiC'
eigenstrain_names = 'thermal_strain'
[../]
[]
[Kernels]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[./mass_ie]
type = TimeDerivative
variable = conc
[../]
[./mass]
type = ArrheniusDiffusion
variable = conc
[../]
[./mass_source]
type = BodyForce
variable = conc
function = power_history
value = 1.22e-5 # units of moles/m**3-s
block = fuel
[../]
[./mass_decay]
type = Decay
variable = conc
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = power_history
factor = 5e17
execute_on = timestep_begin
[../]
[./fluence]
type = FastNeutronFluenceAux
variable = fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fission_rate]
type = FissionRateAux
variable = fission_rate
block = fuel
function = power_history
value = 3.89e19
execute_on = timestep_begin
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
execute_on = timestep_begin
density = 11000.0
[../]
[./creep_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_xx
index_i = 0
index_j = 0
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[../]
[./creep_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_yy
index_i = 1
index_j = 1
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[../]
[./creep_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_zz
index_i = 2
index_j = 2
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[../]
[./conductanceSlave]
type = MaterialRealAux
property = gap_conductance
variable = gap_condSlave
boundary = BufferGapBndry
execute_on = linear
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 15
slave = 17
penalty = 1e5
model = frictionless
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 15
slave = 17
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
roughness_coef = 0.0
[../]
[./cesium_contact]
type = GapHeatTransfer
variable = conc
master = 15
slave = 17
tangential_tolerance = 1e-6
gap_conductivity_function = d_gap
gap_conductivity_function_variable = temp
appended_property_name = _conc
[../]
[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
[./no_disp_y]
type = DirichletBC
variable = disp_y
boundary = yzero #1
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = FunctionDirichletBC
variable = temp
boundary = exterior
function = temp_bc
[../]
# fix concentration on free surface
[./freesurf_conc]
type = PresetBC
variable = conc
boundary = exterior
value = 0.0
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = BufferGapVol
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[Materials]
[./fission_gas_release] # Sifgrs fission gas release mode
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[../]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temp = temp
burnup = burnup
initial_porosity = 0.0
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = MATPRO
block = fuel
temperature = temp
burnup = burnup
eigenstrain_name = 'swelling_strain'
initial_fuel_density = 11000.0
[../]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
block = 'fuel'
[../]
[./fuel_elasticity]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.2e11
poissons_ratio = .345
[../]
[./fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./fuel_den]
type = Density
block = fuel
density = 11000.0 # kg/m^3
[../]
[./fuel_conc]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
[./buffer_eigenstrain]
type = PyCIrradiationEigenstrain
block = buffer
fluence = fluence
pyc_type = buffer
eigenstrain_name = 'swelling_strain'
[../]
[./buffer_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = buffer
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./buffer_elasticity]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e10
poissons_ratio = .23
[../]
[./buffer_stress]
type = PyCCreep
block = buffer
temperature = temp
flux = fast_neutron_flux
density = 1000.0 #kg/m^3
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_den]
type = Density
density = 1000.0 #kg/m^3
block = buffer
[../]
[./buffer_conc]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
[./IPyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = IPyC
fluence = fluence
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[../]
[./IPyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = IPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./IPyC_elasticity]
type = ComputeIsotropicElasticityTensor
block = IPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[../]
[./IPyC_disp]
type = PyCCreep
block = IPyC
temperature = temp
flux = fast_neutron_flux
density = 1900.0
[../]
[./IPyC_temp]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[../]
[./IPyC_den]
type = Density
density = 1900.0
block = IPyC
[../]
[./IPyC_conc]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8
q1 = 222.0e+3
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
[./SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./SiC_elasticity]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.4e11
poissons_ratio = .13
[../]
[./SiC_creep]
type = MonolithicSiCCreepUpdate
block = SiC
temperature = temp
k_function = k_function
fast_neutron_flux = fast_neutron_flux
[../]
[./SiC_stress]
type = ComputeMultipleInelasticStress
block = SiC
tangent_operator = elastic
inelastic_models = 'SiC_creep'
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_den]
type = Density
density = 3180.0 # kg/m^3
block = SiC
[../]
[./SiC_conc]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
[./OPyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = OPyC
fluence = fluence
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[../]
[./OPyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = OPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./OPyC_elasticity]
type = ComputeIsotropicElasticityTensor
block = OPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[../]
[./OPyC_disp]
type = PyCCreep
block = OPyC
temperature = temp
flux = fast_neutron_flux
density = 1900.0
[../]
[./OPyC_temp]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./OPyC_den]
type = Density
density = 1900.0 # kg/m^3
block = OPyC
[../]
[./OPyC_conc]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temp = temp
[../]
[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 5e-4
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 85.3682e6
dt = 100
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 6
growth_factor = 1.5
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[../]
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
perf_graph = true
exodus = true
[./console]
type = Console
max_rows = 25
[../]
[./csv]
type = CSV
sync_times = '100 6308007 75696087'
sync_only = true
[../]
[]
[Postprocessors]
[./Cs_release]
type = SideIntegralMassFlux
variable = conc
boundary = exterior
execute_on = timestep_end
[../]
[./dt]
type = TimestepSize
execute_on = timestep_end
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./volumeTotal]
type = InternalVolume
boundary = exterior
execute_on = 'initial timestep_end'
[../]
[./volumeFuel]
type = InternalVolume
boundary = fuel
execute_on = 'initial timestep_end'
[../]
[./volumeGas]
type = InternalVolume
boundary = BufferGapVol
# ro = 3.125e-4
# ri = 2.125e-4
# vb = 4/3*pi*(ro^3-ri^3) = 8.76e-11
# buffer density = 1000
# PyC density = 1900
# fill ratio = 10/19
# vb*10/19 = 4.6e-11
# Must remove 4.6e-11 m^3 from the volume
addition = -4.6e-11
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./volumeBufferShell]
type = InternalVolume
boundary = BufferGapVol
execute_on = 'initial timestep_end'
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = BufferGapVol
variable = temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[]
[VectorPostprocessors]
[./temperaturevpp]
type = SideValueSampler
boundary = 11
variable = temp
sort_by = x
outputs = 'csv'
use_displaced_mesh = true
[../]
[]
assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_10/RIA/REP_Na_10_RIA.i
# REP Na 10 Rodlet RIA
[GlobalParams]
density = 10448.925 # assumed TD = 10970
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 30
acceptable_multiplier = 10
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
nx_p = 11
ny_p = 156
ny_cu = 3
ny_c = 160
ny_cl = 3
nx_c = 4
clad_thickness = 0.0005753
pellet_outer_radius = 0.004096055
pellet_quantity = 39
pellet_height = 0.01425001
clad_top_gap_height = 0.032027026
clad_bot_gap_height = 0.003
clad_gap_width = 82.0e-6
top_bot_clad_height = 0.0015
elem_type = QUAD8
patch_size = 40
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.15
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./grain_radius]
block = 3
initial_condition = 5.0e-6 # Assume Grain size 10 microns
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fuel_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./stress_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_htype]
order = CONSTANT
family = MONOMIAL
[../]
[./critical_heat_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./plastic_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./oxywtfract_total]
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_profile]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = REPNa10_power_history_Full.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = REPNa10_axial_peaking_Full.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # inlet coolant pressure evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 101325
8640 15499970
125280000 15499970
125366400 101325
125798400 101325
125798410 101325
125798450 500008
125798500 500008
125798700 500008
125798800 101325
125798900 101325'
[../]
[./temp_ramp] # inlet coolant temp evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 293.15
8640 588.706
125280000 588.706
125366400 293.15
125798400 293.15
125798410 293.15
125798450 553.15
125798500 553.15
125798700 553.15
125798800 293.15
125798900 293.15'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./Fuel_CTE_function] #Fuel CTE as a function of temp from MATPRO data
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = ' 0 1.000E-05
300 1.000E-05
350 1.000E-05
400 1.000E-05
450 1.000E-05
500 1.001E-05
550 1.002E-05
600 1.003E-05
650 1.005E-05
700 1.008E-05
750 1.011E-05
800 1.015E-05
850 1.020E-05
900 1.026E-05
950 1.032E-05
1000 1.039E-05
1050 1.046E-05
1100 1.053E-05
1150 1.061E-05
1200 1.069E-05
1250 1.077E-05
1300 1.085E-05
1350 1.094E-05
1400 1.102E-05
1450 1.111E-05
1500 1.119E-05
1550 1.127E-05
1600 1.135E-05
1650 1.143E-05
1700 1.151E-05
1750 1.158E-05
1800 1.166E-05
1850 1.173E-05
1900 1.180E-05
1950 1.187E-05
2000 1.193E-05
2050 1.199E-05
2100 1.205E-05
2150 1.211E-05
2200 1.217E-05
2250 1.222E-05
2300 1.227E-05
2350 1.232E-05
2400 1.237E-05
2450 1.242E-05
2500 1.246E-05
2550 1.250E-05
2600 1.254E-05
2650 1.258E-05
2700 1.262E-05
2750 1.265E-05
2800 1.268E-05
2850 1.271E-05
2900 1.274E-05
2950 1.277E-05
3000 1.280E-05
3050 1.282E-05
3100 1.285E-05'
[../]
[./burnup_GWd]
type = ParsedFunction
value = bu*950
vars = 'bu'
vals = 'average_burnup'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system (in all cases here, the axisymmetric (RZ) version is specified)
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 40
a_upper = 0.5602504
a_lower = 0.0045
fuel_inner_radius = 0
fuel_outer_radius = 0.004096055
fuel_volume_ratio = 1
i_enrich = '0.045 0.955 0 0 0 0'
RPF = RPF
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = '1'
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_profile
factor = 3e13 #n/m2-s
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./fuel_conductance]
type = MaterialRealAux
property = thermal_conductivity
variable = fuel_cond
block = 3
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = total_swell
execute_on = timestep_end
block = 3
[../]
[./stress_hoop]
type = MaterialTensorAux
tensor = stress
variable = stress_hoop
quantity = Hoop
execute_on = timestep_end
[../]
[./stress_axial]
type = MaterialTensorAux
tensor = stress
variable = stress_axial
quantity = Axial
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./plastic_strain_hoop]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./plastic_strain_axial]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./total_hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_hoop_strain
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./total_axial_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_axial_strain
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./elastic_strain_hoop]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./elastic_strain_axial]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./clad_coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = clad_coolant_htc
boundary = 2
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = 2
[../]
[./clad_coolant_flux]
type = MaterialRealAux
property = output_heat_flux
variable = clad_coolant_flux
boundary = 2
[../]
[./coolant_channel_hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = coolant_channel_hmode
boundary = 2
[../]
[./coolant_channel_htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = coolant_channel_htype
boundary = 2
[../]
[./critical_heat_flux]
type = MaterialRealAux
property = critical_heat_flux
variable = critical_heat_flux
boundary = 2
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./plastic_strain_mag]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
[../]
[./ofract_total]
type = MaterialRealAux
variable = oxywtfract_total
property = current_oxygen_weight_frac_total
execute_on = timestep_end
boundary = 2
[../]
[./ofgain_total]
type = MaterialRealAux
variable = oxywtfgain_total
property = oxygen_weight_frac_gained_total
execute_on = timestep_end
boundary = 2
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = 1
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e10
formulation = penalty
normalize_penalty = false
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 0.1e-6 #2.0e-6
roughness_clad = 0.1e-6 #0.5e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
#emissivity_fuel = 0.797698 #Emissivity for fuel
#emissivity_clad = 0.325 #Emissivity for clad
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 125712000
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
emissivity_fuel = 1 #Emissivity for fuel
emissivity_clad = 1 #Emissivity for clad
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_temperature = 293.15
initial_pressure = 2.60e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior #plenumTemp
volume = gas_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
refab_time = 125712000
refab_pressure = 0.301e6
refab_temperature = 293.15
refab_volume = 2.0e-6
[../]
[../]
[]
[CoolantChannel]
# [./convective_clad_surface_water] # apply convective boundary to clad outer surface
# boundary = '1 2 3'
# variable = temp
# inlet_temperature = temp_ramp # K
# inlet_pressure = pressure_ramp # Pa
# inlet_massflux = 3244.044104 # kg/m^2-sec
# rod_diameter = 0.00951 # m
# rod_pitch = 1.26e-2 # m
# #linear_heat_rate = power_profile
# #axial_power_profile = axial_peaking_factors
# coolant_material = 'water'
# compute_enthalpy = true
# oxide_thickness = oxide_thickness # coupled oxide_thickness
# number_axial_zone = 50
# [../]
#
[./convective_clad_surface_sodium] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp # K
inlet_pressure = pressure_ramp # Pa
inlet_massflux = 3533 # kg/m^2-sec Based on flow rate provided and flow area and estimated density of 885.1 kg/m^3
flow_area = 8.74855e-5 #m^2
heated_diameter = 1.172526e-2 #m
hydraulic_diameter = 4.7e-3 #m
heated_perimeter = 2.984513e-2 #m
coolant_material = 'sodium'
compute_enthalpy = true
heat_transfer_mode = 0
#oxide_thickness = oxide_thickness # coupled oxide_thickness
number_axial_zone = 50
rod_pitch = 1.26e-2 # m
rod_diameter = 0.0095 # m
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./density_fuel]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.0475
[../]
[./fuel_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2e11
poissons_ratio = 0.345
#thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
thermal_expansion_function = Fuel_CTE_function
stress_free_temperature = 293.15
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.00819211 #Fuel pellet diameter in m
q = q
gap = 164.0e-6 #diametral gap in m
burnup_relocation_stop = 0.0246
relocation_activation1 = 5000 #initial relocation activation power in W/m
[../]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
save_solid_swell = true
save_densification = true
total_densification = 0.00675
initial_porosity = 0.0475
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
initial_porosity = 0.0475
#grain_radius = grain_radius
grain_radius_const = 5.0e-6
gbs_model = false
transient_option = 1
[../]
[./density_clad]
type = Density
block = '1'
density = 6550
[../]
[./clad_thermal]
type = ThermalZry
block = '1'
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
formulation = NonlinearRZ
large_strain = 1
constitutive_model = combined
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
model_irradiation_growth = 0 #1
model_thermal_expansion = 1
model_elastic_modulus = 1
stress_free_temperature = 293.15
compute_JIntegral = true
oxygen_concentration = 0.041967
max_inelastic_increment = 1.0e-4
compute_material_timestep_limit = true
[../]
[./combined]
type = CombinedCreepPlasticity
block = 1
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = 0 #1
model_primary_creep = 0 #1
model_thermal_creep = 0 #1
model_thermal_creep_loca = 0
[../]
[./plasticity]
type = ZryPlasticity
block = clad
temp = temp
cold_work_factor = 0.5
fast_neutron_fluence = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
use_matpro = true
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.00417806
clad_outer_radius = 0.00475336
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./phase]
type = ZrPhase
block = 1
temperature = temp
numerical_method = 2
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
max_value = 3200 # The maximum permissible iterative value for the variable.
min_value = 200 # The minimum permissible iterative value for the variable.
variable = temp # The name of the variable that this damper operates on
[../]
[./contact_slip]
type = ContactSlipDamper
master = 5
slave = 10
min_damping_factor = 0.05
[../]
[]
#Preconditioning seems to help with frictionless contact but with frictional contact has always resulted in BISON to fail
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
#verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 1e-3
# controls for nonlinear iterations
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-8
# time control
start_time = 0
end_time = 125798900
dtmax = 1e6
dtmin = 1e-9
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e3
optimal_iterations = 20
iteration_window = 4
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
max_function_change = 5e5
force_step_every_function_point = true
timestep_limiting_postprocessor = material_timestep_control
time_t = '125798410 125798420 125798430 125798440 125798450 125798460 125798470 125798480 125798500 125798500.1 125798500.2 125798500.3 125798500.32 125798500.35'
time_dt = '1 1 1 1 1 1 1 1 0.001 0.001 0.001 0.001 0.001 0.001'
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
# [./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
# type = SideAverageValue
# boundary = '6 8'
# variable = temp
# execute_on = 'initial linear'
# [../]
#Used during RIA to be mainly the cladding temperature at the top of the plenum
[./ave_temp_interior]
type = NodalVariableValue
variable = temp
nodeid = 2357
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./1_rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./burnup_GWd]
type = FunctionValuePostprocessor
function = burnup_GWd
[../]
#######################################
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 5535
use_displaced_mesh = 1
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 5535
use_displaced_mesh = 1
[../]
[./gap_cond]
type = ElementalVariableValue
variable = gap_cond
elementid = 1664
use_displaced_mesh = 1
[../]
[./creep_hoop_strain]
type = ElementalVariableValue
variable = creep_strain_hoop
elementid = 376
use_displaced_mesh = 1
[../]
[./elastic_hoop_strain]
type = ElementalVariableValue
variable = elastic_strain_hoop
elementid = 376
use_displaced_mesh = 1
[../]
[./plastic_hoop_strain]
type = ElementalVariableValue
variable = plastic_strain_hoop
elementid = 376
use_displaced_mesh = 1
[../]
[./total_hoop_strain]
type = ElementalVariableValue
variable = total_hoop_strain
elementid = 376
use_displaced_mesh = 1
[../]
[./clad_hoop_stress]
type = ElementalVariableValue
variable = stress_hoop
elementid = 376
use_displaced_mesh = 1
[../]
[./clad_axial_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 2451
use_displaced_mesh = 1
[../]
[./clad_oxide_thickness]
type = ElementalVariableValue
variable = oxide_thickness
elementid = 376
use_displaced_mesh = 1
[../]
[./clad_coolant_htc]
type = ElementalVariableValue
variable = clad_coolant_htc
elementid = 376
use_displaced_mesh = 1
[../]
[./coolant_temp]
type = ElementalVariableValue
variable = coolant_temp
elementid = 376
use_displaced_mesh = 1
[../]
[./fuel_centerline_temp]
type = NodalVariableValue
variable = temp
nodeid = 5504
[../]
[./fuel_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 5535
[../]
[./clad_inner_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 1307
[../]
[./clad_outer_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 1317
[../]
[./fuel_axial_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 8055
[../]
[./clad_radial_elongation]
type = NodalVariableValue
variable = disp_x
nodeid = 1317
[../]
[./fuel_radial_elongation]
type = NodalVariableValue
variable = disp_x
nodeid = 5535
[../]
[./SED_PPN_O]
type = ElementalVariableValue
variable = SED
elementid = 376
use_displaced_mesh = 1
[../]
[./SED_PPN_I]
type = ElementalVariableValue
variable = SED
elementid = 373
use_displaced_mesh = 1
[../]
[./OFract_PPN_O]
type = ElementalVariableValue
variable = oxywtfract_total
elementid = 376
use_displaced_mesh = 1
[../]
[./OGain_PPN_O]
type = ElementalVariableValue
variable = oxywtfgain_total
elementid = 376
use_displaced_mesh = 1
[../]
#######################################
[./max_fuel_temp]
type = NodalMaxValue
block = 3
variable = temp
[../]
[./max_clad_temp]
type = NodalMaxValue
block = clad
variable = temp
[../]
[./max_clad_SED]
type = ElementExtremeValue
block = clad
variable = SED
value_type = max
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[./material_timestep_control]
type = MaterialTimeStepPostprocessor
block = 1
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_1'
[../]
[./ox_thick]
type = SideValueSampler
variable = oxide_thickness
boundary = 2
sort_by = y
outputs = 'outfile_2'
[../]
[./rad_temp]
type = LineValueSampler
end_point = '0.004096055 0.3 0.0'
start_point = '0.0 0.3 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
interval = 1
csv = true
#exodus = true
color = false
[./outfile_1]
type = CSV
#execute_on = 'FINAL'
sync_times = '125798400 125798900'
sync_only = true
[../]
[./outfile_2]
type = CSV
#execute_on = 'FINAL'
sync_times = '125798400 125798900'
sync_only = true
[../]
[./dummy]
type = CSV
enable = false
[../]
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
sync_times = '125798400'
sync_only = true
[../]
[./exodus]
type = Exodus
interval = 5
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
show_material_props = true
[]
test/tests/meso_thcond_test/test.i
# This test is for the fuel swelling and porosity computation in the Sifgrs fission gas behavior model for UO2.
# As complementary to the fission gas release process, the fission gas swelling is related to gas retention in the fuel in the form of bubbles. Through a direct description of the gas bubble development, the fission gas swelling and release are modeled as inherently coupled processes, on a physical basis. Only the fission gas swelling due to grain-face bubbles is considered.
# In a comprehensive treatment of fission gas release and fuel swelling, Sifgrs also incorporates empirical models for the swelling due to solid fission products and the fuel densification.
# Moreover, the different contributions to fuel porosity, namely, those due to fabrication pores, gas bubbles (thus associated with fission gas swelling) , and sintering (densification), are computed consistently with the swelling calculations. Then, the fuel total porosity in each mesh location can be tracked (auxkernel PorosityAuxUO2), and considered in the computation of other relevant material properties like the fuel thermal conductivity (material model ThermalFuel).
# This test aims at demonstrating the above model capabilities. The considered case involves a single-element cubic domain, constant temperature (1400 K) and fission rate (1e19 f/(m**3s)), and a irradiation time of 1e8 s. The Sifgrs model is adopted for calculating the fission gas release and fuel swelling. Starting from a typical as-fabricated value of 5%, the fuel porosity evolves consistently with the swelling. The fuel thermal conductivity is calculated as coupled with porosity, which allows taking into account the conductivity degradation due to progressive increase of gaseous porosity (see also the attached file regression_tests_sifgrs.xlsx).
[Mesh]
type = FileMesh
file = cube_111.e
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = 1400.
[../]
[./Fiss_func]
type = ParsedFunction
value = 1.e19
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 1400.
[../]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./burnup]
order = FIRST
family = LAGRANGE
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.05
[../]
[./density]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_sl]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_dn]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
[../]
[./intra_porosity]
order = CONSTANT
family = MONOMIAL
[../]
[./gas_atom_conc]
order = CONSTANT
family = MONOMIAL
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
[../]
[./GBresistance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[SolidMechanics]
[./solid]
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
temp = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./frate]
type = FissionRateAux
variable = fission_rate
block = 1
function = Fiss_func
execute_on = timestep_begin
[../]
[./brnp]
type = BurnupAux
variable = burnup
block = 1
fission_rate = fission_rate
density = 10417.
execute_on = timestep_begin
[../]
[./por]
type = PorosityAuxUO2
block = 1
variable = porosity
execute_on = linear
[../]
[./rho]
type = MaterialRealAux
variable = density
property = density
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = deltav_v0_swe
[../]
[./thcond]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./GBCoverage]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./intra_porosity]
type = MaterialRealAux
variable = intra_porosity
property = intra_porosity
[../]
[./gas_atom_conc]
type = MaterialRealAux
variable = gas_atom_conc
property = gas_atom_conc
[../]
[./deltav_v0_dn]
type = MaterialRealAux
variable = deltav_v0_dn
property = deltav_v0_dn
[../]
[./deltav_v0_sl]
type = MaterialRealAux
variable = deltav_v0_sl
property = deltav_v0_sl
[../]
[./rad_bbl_bdr]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./GBresistance]
type = MaterialRealAux
variable = GBresistance
property = GBresistance
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[../]
[./x_disp]
type = DirichletBC
variable = disp_x
value = 0
boundary = 1
[../]
[./y_disp]
type = DirichletBC
variable = disp_y
value = 0
boundary = 2
[../]
[./z_disp]
type = DirichletBC
variable = disp_z
value = 0
boundary = 3
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 1
temp = temp
burnup = burnup
initial_porosity = 0.05
porosity = porosity
thermal_conductivity_model = NFIR
[../]
[./solid]
type = Elastic
block = 1
temp = temp
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
youngs_modulus = 2.e+11
poissons_ratio = 0.3
thermal_expansion = 1.e-05
[../]
[./density]
type = Density
block = 1
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
density = 10417.
[../]
[./fission_gas_release_and_swelling]
type = Sifgrs
block = 1
temp = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.05
porosity = porosity
[../]
[./fuel_thermal_meso]
type = ThermalUO2FissionGas
block = 1
temp = temp
burnup = burnup
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-05
nl_rel_tol = 1.e-05
start_time = 0.
num_steps = 100
dt = 1.e+06
end_time = 1.e+08
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[./GBCov]
type = ElementalVariableValue
variable = GBCoverage
elementid = 0
[../]
[./gas_atom_conc]
type = ElementalVariableValue
variable = gas_atom_conc
elementid = 0
[../]
[./thcond]
type = ElementalVariableValue
variable = thermal_conductivity
elementid = 0
[../]
[./intra_porosity]
type = ElementalVariableValue
variable = intra_porosity
elementid = 0
[../]
[./rad_bbl_bdr]
type = ElementalVariableValue
variable = rad_bbl_bdr
elementid = 0
[../]
[./GBresistance]
type = ElementalVariableValue
variable = GBresistance
elementid = 0
[../]
[]
[Outputs]
file_base = jf
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[]
assessment/LWR/validation/Super_Ramp/analysis/PK14/PK14.i
[GlobalParams]
density = 10360.0
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = false
initial_porosity = 0.054
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temperature'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 10
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 28
pellet_height = 0.011143
pellet_outer_radius = 4.555e-3
pellet_mesh_density = customize
nx_p = 11
ny_p = 84
clad_mesh_density = customize
nx_c = 4
ny_c = 84
clad_gap_width = 100.0e-6
clad_thickness = 0.725e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 15.5e-3
clad_top_gap_height = 32.3e-3
ny_cu = 3
ny_cl = 3
elem_type = QUAD8
[]
[Variables]
[./temperature]
initial_condition = 293.15
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = alhr_history.csv
format = columns
[../]
[./axial_power_factors]
type = PiecewiseBilinear
data_file = axial_lhr_factors.csv
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_power_factors'
[../]
[./clad_out_temp]
type = PiecewiseLinear
data_file = temp_outer_clad_history.csv
format = columns
[../]
[./axial_temp_factors]
type = PiecewiseBilinear
data_file = axial_temp_factors.csv
axis = 1
[../]
[./clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = pressure_coolant.csv
format = columns
[../]
[./fast_flux]
type = PiecewiseLinear
data_file = fast_neutron_flux.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = 3
initial_condition = 4.68e-6
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
block = 3
initial_condition = 0.054
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain
fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy
stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz
creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx
strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temperature
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temperature
execute_on = linear
[../]
[./porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
a_lower = 0.0165
a_upper = 0.328504
number_pellets = 28
execute_on = initial
[../]
[./oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./layered_average_contact_pressure]
type = SpatialUserObjectAux
block = 3
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = 3
execute_on = nonlinear
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 80
num_axial = 20
i_enrich = '0.032 0.968 0.0 0.0 0.0 0.0'
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1.0e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
formulation = KINEMATIC
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temperature
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = 5
outer_surfaces = 10
temp = temperature
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temperature
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.25e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temperature
burnup_function = burnup
initial_fuel_density = 10360
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = 3
temperature = temperature
burnup_function = burnup
grain_radius = 4.68e-6
[../]
[./fuel_stress]
type = ComputeSmearedCrackingStress
block = 3
cracking_stress = 1.68e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
linear_heat_rate_function = power_history
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = true
max_relocation_recovery_fraction = 0.5
relocation_scaling_factor = 1
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
output_properties = 'relocation_strain recovered_relocation_strain'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
diff_coeff_option = 3
transient_option = 2
res_param_option = 0
temp = temperature
fission_rate = fission_rate
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6550.0
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temperature
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
fuel_pin_geometry = pin_geometry
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-4
nl_max_its = 30
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
start_time = 0.0
n_startup_steps = 1
end_time = 75918744.0
dtmax = 1.0e6
dtmin = 1.0
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 15
iteration_window = 3
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./avg_gap_conductance]
type = SideAverageValue
boundary = 10
variable = gap_cond
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temperature
nodeid = 3110 #Mesh dependent!
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = strain_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = stress_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 3141 # Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./total_rod_integral_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = 3
[../]
[./total_rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.376004 # rod height
[../]
[./vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = TENSOR
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage central_fuel_temp midplane_contact_pressure'
execute_on = 'FINAL'
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temperature
fuel_pin_geometry = pin_geometry
number_pellets = 28
execute_on = 'initial linear'
[../]
[./layered_average_contact_pressure]
type = LayeredSideAverage
variable = contact_pressure
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[../]
[]
assessment/LWR/validation/IFA_519/analysis/rod_DK/SM/IFA_519_rod_DK_sm.i
# IFA-519.9 Rod DK
[GlobalParams]
density = 10400.0 # Table 1 HWR 668
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (200 MeV per fission)
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
file = IFA_519_DK_smeared.e
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
patch_update_strategy = auto
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./grain_radius]
block = 3
initial_condition = 13.26e-6 # 2D grain radius 8.5e-6
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = DK_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
x = '-100 0 548244882 548309902'
y = '0.0298015 1 1 0.0298015'
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = 519_coolant_temp_DK.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system (in all cases here, the axisymmetric (RZ) version is specified)
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.24824
a_lower = 0.00324
fuel_inner_radius = 0
fuel_outer_radius = 0.00457
i_enrich = '0.13 .87 0 0 0 0' # 13% enriched U-235
RPF = RPF
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 1.6e12 #(n/m2-s per W/m) taken from IFA-431
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 226456300
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020 # 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6 # taken from IFA-431
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.59e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get inital fill gas mass
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
refab_time = 226456300
refab_pressure = 2.38e6
refab_temperature = 293
refab_volume = 9.8e-6
displacements = 'disp_x disp_y'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./density_clad]
type = Density
block = '1'
density = 6551.0
[../]
[./density_fuel]
type = Density
block = 3
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.053
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
density = 10400.0
tensor_mechanics_compatibility = true
[../]
[./fuel_creep]
type = Elastic #CreepUO2
block = 3
temp = temp
stress_free_temperature = 293
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.00914 #Fuel pellet diameter in m
q = q
gap = 3.6e-4 #diametral gap in m
burnup_relocation_stop = 0.031254
relocation_activation1 = 5000 #initial relocation activation power in W/m
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = '1'
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = '1'
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
stress_free_temperature = 293
material_type = SRA # Zr-4 cladding
youngs_modulus = 7.5e10
poissons_ratio = 0.3
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 548309902
dtmax = 1e6
dtmin = 1
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 1000
linear_iteration_ratio = 100
growth_factor = 5
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = 3
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 3
[../]
[./ave_burnup]
type = ElementAverageValue
variable = burnup
block = 3
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[]
assessment/LWR/validation/HbepR1/analysis/H8364/HbepR1_H8364.i
[GlobalParams]
density = 10490 #94.882 %TD Assume TD = 10972.65 kg/cm3
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
temperature = temp
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.95e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .0049695
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.68
ny_cl = 3
clad_top_gap_height = 0.244325
clad_gap_width = 1.005e-4
elem_type = QUAD8
patch_size = 100 # 1000 lowering this and setting the strategy to auto will reduce the amount of memory required to run the job.
patch_update_strategy = iteration#auto
partitioner = centroid # this will help with run time
centroid_partitioner_direction = y # this will help with run time
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 273 #K
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5.148e-6
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = H8364-power.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = H8364-axial-profile.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '-100 0 166323600 166327200' #
y = '0.014429 1 1 0.014429'
[../]
[./temp_ramp]
type = PiecewiseBilinear
data_file = H8364-axial-tempprofile.csv
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[Modules/TensorMechanics/Master]
[./fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz
vonmises_stress hydrostatic_stress'
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz creep_strain_xx
creep_strain_xy creep_strain_yy vonmises_stress creep_strain_zz'
[../]
[]
# Define kernels for the various terms in the PDE system
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3 # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate # coupling to the fission_rate aux variable
save_in = saved_t
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
factor = 1.6727e13 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.68478
fuel_inner_radius = 0.0
fuel_outer_radius = 0.0049695 # m
i_enrich = '0.0139 .9861 0 0 0 0'
RPF = RPF
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 1.1e-6
roughness_clad = 3.5e-7
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 # Pa
function = pressure_ramp
[../]
[../]
[./coolant_temp]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = temp_ramp
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9 # clad interior + fuel exterior
initial_pressure = 0.375e6 # Pa
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = plenum_temperature # coupling to post processor to get gas temperature approximation
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
initial_porosity = 0.04
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.00507
clad_outer_radius = 0.005865
use_coolant_channel = true
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
stress_free_temperature = 273
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup = burnup
diameter = 0.009939 # fuel pellet diamter in meters
gap = 100.5e-6 # nominal diametral gap in meters
linear_heat_rate_function = q
burnup_relocation_stop = .049 # turn off relocation
relocation_activation1 = 5000
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_inelastic_stressUpdate]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type =recrystalization_annealed
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = clad_inelastic_stressUpdate
[../]
[./clad_thermal_eigenstrain]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 273
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_eigenstrain]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = recrystallization_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup = burnup
initial_fuel_density = 10490
total_densification = .0043
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[UserObjects]
[./integral_burnup] # Added the computation of the average fuel rod burnup
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 166327200
dtmax = 1e6
dtmin = 0.1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
# Clad postprocessor (The rest are created with StandardLWRFuelRodOutputs)
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
[../]
[./clad_fuel_gap]
type = NodalMaxValue
variable = penetration
boundary = 10
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = true
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_new_DiffCoeff4_GrainGrowth.i
[GlobalParams]
density = 10431.0
initial_porosity = 0.2
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.9144
pellet_outer_radius = 2.794e-3
pellet_inner_radius = 6.985e-4
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 101.6e-6
clad_thickness = 0.5334e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 1.057
elem_type = QUAD8
nx_c = 4
ny_c = 1000
nx_p = 10
ny_p = 500
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
scaling = 1
[../]
[]
[AuxVariables]
[./fission_rate]
block = pellet
[../]
[./burnup]
block = pellet
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = pellet
initial_condition = 10e-6
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./fraction_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 0.854004932 0.854004932'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 2.99513e+19 2.99513e+19'
[../]
[./axial_power_profile]
type = PiecewiseBilinear
x = '0.0334152 0.09468 0.1559448 0.2162952 0.27756 0.3388248 0.3991752 0.46044 0.5217048 0.5820552 0.64332 0.7045848 0.7649352 0.8262 0.8874648'
y = '0 31858942.74'
z = '5493.43832 7183.727034 29157.48031 34228.34646 37608.92388 40144.35696 41412.07349 42257.21785 41834.64567 39721.78478 37608.92388 33805.77428 28312.33596 4225.721785 2535.433071 5041.338583 6592.519685 26757.87402 31411.41732 34513.77953 36840.55118 38003.93701 38779.52756 38391.73228 36452.75591 34513.77953 31023.62205 25982.28346 3877.952756 2326.771654'
scale_factor = 1
axis = 1
[../]
[./average_power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24264.05646 24264.05646'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.2
axial_power_profile = axial_power_profile
rod_ave_lin_pow = fraction_history
pellet_diameter = 0.005588
execute_on = timestep_begin
pellet_inner_diameter = 0.001397
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
execute_on = timestep_end
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
execute_on = timestep_end
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
execute_on = timestep_end
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
execute_on = timestep_end
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
execute_on = timestep_end
[../]
[./nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vcn_bdr_2
execute_on = timestep_end
[../]
[./atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atm_bbl_bdr
execute_on = timestep_end
[../]
[./vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vcn_bbl_bdr
execute_on = timestep_end
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
execute_on = timestep_end
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
execute_on = timestep_end
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = timestep_end
[../]
[./volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = vol_bbl_bdr
execute_on = timestep_end
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 0.151e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580
inlet_pressure = 0.151e6
inlet_massflux = 1687.43
rod_diameter = 6.858e-3
rod_pitch = 1.7e-2
linear_heat_rate = fraction_history
axial_power_profile = axial_power_profile
coolant_material = sodium
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = 0.2
output_properties = 'thermal_conductivity'
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
outputs = exodus
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = ThermalHT9
block = clad
temp = temp
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.88e11
poissons_ratio = 0.236
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_ht9creep'
block = clad
[../]
[./clad_ht9creep]
type = HT9CreepUpdate
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 1.2e-5
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
bubble_gb_limit = 1.0e+11
diff_coeff_option = 4
[../]
[./clad_density]
type = Density
block = clad
density = 7874.0
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[./fast_neutron_flux]
type = GenericFunctionMaterial
block = clad
prop_names = fast_neutron_flux
prop_values = fast_neutron_flux_function
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = fraction_history
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.9144 # rod height
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
test/tests/element_integral_power/fission_gas_error_check_1D.i
# Tests the ElementIntegralPower postprocessor
#
# A constant volumetric fission rate of 3.125e18 fissions/m^3-s is applied to a RZ cylinder
# having an inner radius of 0.01 m, outer radius of 0.0114818 m and height of 0.01 m.
# The power is thus constant with magnitude:
#
# Power = Fdot * Energy_per_fission * Volume
# = 3.125e18 * 3.2e-11 * Pi*(0.0114818^2 - 0.01^2) * 0.01
# = 100
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
type = Layered1DMesh
fuel_height = 0.01
include_clad = false
include_plenum = false
slices_per_block = 1
pellet_bottom_coor = 0
pellet_outer_radius = 0.011481768
pellet_inner_radius = 0.01
clad_gap_width = 0
clad_thickness = 0
elem_type = EDGE2
pellet_mesh_density = customize
nx_p = 1
[]
[Problem]
coord_type = RZ
[]
[Functions]
[./unity]
type = ParsedFunction
value = '1.0'
[../]
[]
[Variables]
[./temp]
initial_condition = 500.0
[../]
[]
[AuxVariables]
[./fission_rate]
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateAux
variable = fission_rate
value = 3.125e18
function = unity
execute_on = 'initial timestep_begin'
[../]
[]
[BCs]
[./left_T]
type = PresetBC
variable = temp
boundary = 13
value = 500.0
[../]
[]
[Materials]
[./fuel]
type = HeatConductionMaterial
block = fuel
temp = temp
thermal_conductivity = 10
specific_heat = 100
[../]
[./density]
type = Density
block = fuel
density = 10000
[../]
[./fission_gas_release]
type = Sifgrs
temp = temp
fission_rate = fission_rate
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 2
dt = 1.0e6
nl_abs_tol = 1e-8
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
[../]
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
[../]
[]
[Outputs]
exodus = true
[]
assessment/LWR/validation/RIA_CABRI_REP_Na4/analysis/REP_Na_4/RIA/REP_Na_4_tm_RIA.i
# REP Na 4 RIA
[GlobalParams]
density = 10476.35 # assumed TD = 10970
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
acceptable_iterations = 30
acceptable_multiplier = 10
[]
[Mesh]
file = REP_Na4.e
patch_size = 40
#patch_update_strategy = auto
#partitioner = centroid
#centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.15
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
clad_inner_wall = 5
clad_outer_wall = 2
clad_top = 3
clad_bottom = 1
pellet_exteriors = 8
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = 'clad'
[../]
[./fast_neutron_fluence]
block = 'clad'
[../]
[./grain_radius]
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
initial_condition = 5.0e-6 # Assume Grain size 10 microns
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fuel_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./swelling_strain]
order = CONSTANT
family = MONOMIAL
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_plastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_plastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_elastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_elastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_htype]
order = CONSTANT
family = MONOMIAL
[../]
[./critical_heat_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 'clad'
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
block = 'clad'
[../]
[./oxywtfract_total]
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = REPNa4_power_history_Full.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = REPNa4_axial_peaking_Full.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # inlet coolant pressure evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 101325
8640 15499970
124675200 15499970
124718400 101325
125193600 101325
125193610 101325
125193650 500008
125193700 500008
125193900 500008
125194000 101325
125194100 101325'
[../]
[./temp_ramp] # inlet coolant temp evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 293.15
8640 591
20476800 591
21859200 600
47692800 600
51840000 593
72144000 593
73440000 586
96940800 586
99360000 583
124675200.0 583
124761600.0 293.150
125193600.0 293.150
125193650.0 553.150
125193900.0 553.150
125194000.0 293.150
125194100.0 293.150'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./burnup_GWd]
type = ParsedFunction
value = bu*950
vars = 'bu'
vals = 'average_burnup'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 'clad'
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz plastic_strain_xx plastic_strain_yy plastic_strain_zz creep_strain_xx creep_strain_yy creep_strain_zz elastic_strain_xx elastic_strain_yy elastic_strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.5678974
a_lower = 0.0045
fuel_inner_radius = 0
fuel_outer_radius = 0.0040959
fuel_volume_ratio = 1
i_enrich = '0.0449 0.9551 0 0 0 0'
RPF = RPF
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_profile
factor = 3e13 #n/m2-s
block = 'clad'
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
block = 'clad'
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./fuel_conductance]
type = MaterialRealAux
property = thermal_conductivity
variable = fuel_cond
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
[../]
[./swelling_strain]
type = MaterialRealAux
property = volumetric_swelling_strain
variable = swelling_strain
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
[../]
[./vonmises_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises_stress
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hoop_stress]
type = RankTwoAux
rank_two_tensor = stress
variable = hoop_stress
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./axial_stress]
type = RankTwoAux
rank_two_tensor = stress
variable = axial_stress
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./hoop_creep_strain]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = hoop_creep_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = 'clad'
[../]
[./axial_creep_strain]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = axial_creep_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = 'clad'
[../]
[./hoop_plastic_strain]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = hoop_plastic_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = 'clad'
[../]
[./axial_plastic_strain]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = axial_plastic_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = 'clad'
[../]
[./total_hoop_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_hoop_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = 'clad'
[../]
[./total_axial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_axial_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = 'clad'
[../]
[./hoop_elastic_strain]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = hoop_elastic_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = 'clad'
[../]
[./axial_elastic_strain]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = axial_elastic_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = 'clad'
[../]
[./creep_strain_mag]
type = RankTwoScalarAux
rank_two_tensor = creep_strain
variable = creep_strain_mag
scalar_type = EffectiveStrain
execute_on = timestep_end
block = 'clad'
[../]
[./plastic_strain_mag]
type = RankTwoScalarAux
rank_two_tensor = plastic_strain
variable = plastic_strain_mag
scalar_type = EffectiveStrain
execute_on = timestep_end
block = 'clad'
[../]
[./clad_coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = clad_coolant_htc
boundary = 2
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = 2
[../]
[./clad_coolant_flux]
type = MaterialRealAux
property = output_heat_flux
variable = clad_coolant_flux
boundary = 2
[../]
[./coolant_channel_hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = coolant_channel_hmode
boundary = 2
[../]
[./coolant_channel_htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = coolant_channel_htype
boundary = 2
[../]
[./critical_heat_flux]
type = MaterialRealAux
property = critical_heat_flux
variable = critical_heat_flux
boundary = 2
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
[../]
[./ofract_total]
type = MaterialRealAux
property = current_oxygen_weight_frac_total
variable = oxywtfract_total
execute_on = timestep_end
boundary = 2
[../]
[./ofgain_total]
type = MaterialRealAux
property = oxygen_weight_frac_gained_total
variable = oxywtfgain_total
execute_on = timestep_end
boundary = 2
[../]
[./fract_bphase]
type = MaterialRealAux
property = fract_beta_phase
variable = fract_beta_phase
block = 'clad'
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 210 #10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.3
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[./pellet_clad_mechanical_2]
master = 5
slave = 410
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.0
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 0.1e-6 #2.0e-6
roughness_clad = 0.1e-6 #0.5e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
emissivity_fuel = 0.800 #Emissivity for fuel
emissivity_clad = 0.325 #Emissivity for clad
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 125107200
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_coef = 20 #10 default
[../]
[]
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_temperature = 293.15
initial_pressure = 2.60e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior #plenumTemp
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
# save_in = 'saved_x saved_y'
refab_time = 125107200
refab_pressure = 0.301e6
refab_temperature = 293.15
refab_volume = 2.0e-6
[../]
[../]
[]
[CoolantChannel]
# [./convective_clad_surface_water] # apply convective boundary to clad outer surface
# boundary = '1 2 3'
# variable = temp
# inlet_temperature = temp_ramp # K
# inlet_pressure = pressure_ramp # Pa
# inlet_massflux = 3244.044104 # kg/m^2-sec
# rod_diameter = 0.00951 # m
# rod_pitch = 1.26e-2 # m
# coolant_material = 'water'
# compute_enthalpy = true
# oxide_thickness = oxide_thickness # coupled oxide_thickness
# number_axial_zone = 50
# [../]
#
[./convective_clad_surface_sodium] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp # K
inlet_pressure = pressure_ramp # Pa
inlet_massflux = 3533 # kg/m^2-sec Based on flow rate provided and flow area and estimated density of 885.1 kg/m^3
flow_area = 8.74855e-5 #m^2
heated_diameter = 1.172526e-2 #m
hydraulic_diameter = 4.7e-3 #m
heated_perimeter = 2.984513e-2 #m
coolant_material = 'sodium'
compute_enthalpy = true
heat_transfer_mode = 0
oxide_thickness = oxide_thickness # coupled oxide_thickness
number_axial_zone = 50
rod_diameter = 0.0095 # m
htc_correlation_type = 2
[../]
[]
[Materials]
[./fuel_density]
type = Density
#density = 10476.35
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
[../]
[./fuel_thermal]
type = ThermalFuel
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.045
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
matpro_poissons_ratio = 1
matpro_youngs_modulus = 1
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
[../]
[./fuel_thermal_expansion]
type = UO2ThermalExpansionMATPROEigenstrain
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
temperature = temp
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
burnup_function = burnup
linear_heat_rate_function = q
relocation_activation1 = 5000
burnup_relocation_stop = 0.0 #0.0208
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = 'pin_geometry'
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
temperature = temp
burnup_function = burnup
initial_fuel_density = 10476.35
total_densification = 0.00675
initial_porosity = 0.045
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
temp = temp
fission_rate = fission_rate
burnup_function = burnup
initial_porosity = 0.045
#grain_radius = grain_radius
#gbs_model = true
#transient_option = 0
grain_radius_const = 5.0e-6
gbs_model = false
transient_option = 1
[../]
[./clad_density]
type = Density
block = 'clad'
density = 6550
[../]
[./clad_thermal]
type = ThermalZry
block = 'clad'
temp = temp
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
temperature = temp
matpro_poissons_ratio = true
matpro_youngs_modulus = true
cold_work_factor = 0.5
fast_neutron_fluence = fast_neutron_fluence
block = 'clad'
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
#inelastic_models = 'clad_zrycreep clad_zryplasticity'
inelastic_models = 'clad_zryplasticity'
block = 'clad'
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = 'clad'
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
#creeprate_scale_factor = 1
model_irradiation_creep = 1
model_primary_creep = 1
model_thermal_creep = 1
max_inelastic_increment = 0.0001
creeprate_scale_factor = 0
enable = 0
[../]
[./clad_zryplasticity]
type = ZryPlasticityUpdate
block = 'clad'
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
plasticity_model_type = MATPRO
zircaloy_alloy_type = 4
max_inelastic_increment = 0.0001
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 'clad'
temperature = temp
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = 'clad'
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
compute = 0
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.00417789
clad_outer_radius = 0.00475615
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
oxygen_weight_fraction_initial = 0.0012
[../]
[./phase]
type = ZrPhase
block = 'clad'
numerical_method = 2
temperature = temp
[../]
[./StrainEnergyDensity]
type = StrainEnergyDensity
block = 'clad'
incremental = 1
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
max_value = 3200 # The maximum permissible iterative value for the variable.
min_value = 200 # The minimum permissible iterative value for the variable.
variable = temp # The name of the variable that this damper operates on
[../]
[./contact_slip]
type = ContactSlipDamper
master = 5
slave = 10
min_damping_factor = 0.05
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
#full = true
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'contact'
contact_line_search_allowed_lambda_cuts = 0
contact_line_search_ltol = 0.5
verbose = true
l_max_its = 100
l_tol = 1e-3
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = 0
end_time = 125194100 #125193600 #125194100 is the end time for the RIA
dtmax = 10
dtmin = 1e-7
[./TimeStepper]
type = IterationAdaptiveDT
dt = 10
optimal_iterations = 20
iteration_window = 4
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
max_function_change = 5e5
force_step_every_function_point = true
timestep_limiting_postprocessor = material_timestep
time_t = '125193610 125193620 125193630 125193640 125193650 125193660 125193670 125193680'
time_dt = '10 10 10 10 10 10 10 10'
[../]
[./Quadrature]
order = FIFTH #SEVENTH
side_order = SEVENTH #Comment out if order = SEVENTH
[../]
[]
[Postprocessors]
# [./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
# type = SideAverageValue
# boundary = 9 #For RIA the node number is ##***8479***##
# variable = temp
# execute_on = 'initial linear'
# [../]
[./ave_temp_interior]
type = NodalVariableValue
variable = temp
nodeid = 8479
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = 'clad'
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = 'clad'
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
outputs = exodus
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./1_rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./average_burnup]
type = ElementAverageValue
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
variable = burnup
[../]
[./3_burnup_GWd]
type = FunctionValuePostprocessor
function = burnup_GWd
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = 'clad'
variable = vonmises_stress
[../]
[./z_average_RPF]
type = ElementAverageValue
block = 'pellet_type_1 pellet_type_2 pellet_type_3'
variable = RPF
[../]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = 'clad'
[../]
## Nodal values
[./FCT] #fuel centerline temperature
type = NodalVariableValue
variable = temp
nodeid = 3866 #(0, 0.303375, 0)
[../]
[./FST] #fuel surface temperature
type = NodalVariableValue
variable = temp
nodeid = 3823 #(0.0040959, 0.303375, 0)
[../]
[./CIST] #clad inner surface temperature
type = NodalVariableValue
variable = temp
nodeid = 9557 #(0.0041779, 0.305106, 0)
[../]
[./COST] #clad outer surface temperature
type = NodalVariableValue
variable = temp
nodeid = 9547 #(0.00475615, 0.305106, 0)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 3823 #(0.0040959, 0.303375, 0)
use_displaced_mesh = true
[../]
#######################################
[./qpoint_penetration] #FOCE
type = ElementalVariableValue
variable = qpoint_penetration
elementid = 1200
use_displaced_mesh = 1
[../]
[./penetration] #FOCN
type = NodalVariableValue
variable = penetration
nodeid = 3823
use_displaced_mesh = 1
[../]
[./contact_pressure] #FOCN
type = NodalVariableValue
variable = contact_pressure
nodeid = 3823
use_displaced_mesh = 1
[../]
[./gap_cond] #FOCE
type = ElementalVariableValue
variable = gap_cond
elementid = 1200
use_displaced_mesh = 1
[../]
[./creep_hoop_strain] #COCE
type = ElementalVariableValue
variable = hoop_creep_strain
elementid = 2981
use_displaced_mesh = 1
[../]
[./elastic_hoop_strain] #COCE
type = ElementalVariableValue
variable = hoop_elastic_strain
elementid = 2981
use_displaced_mesh = 1
[../]
[./plastic_hoop_strain] #COCE
type = ElementalVariableValue
variable = hoop_plastic_strain
elementid = 2981
use_displaced_mesh = 1
[../]
[./total_hoop_strain] #COCE
type = ElementalVariableValue
variable = total_hoop_strain
elementid = 2981
use_displaced_mesh = 1
[../]
[./clad_hoop_stress] #COCE
type = ElementalVariableValue
variable = hoop_stress
elementid = 2981
use_displaced_mesh = 1
[../]
[./clad_axial_elongation] #COTN
type = NodalVariableValue
variable = disp_y
nodeid = 10755
use_displaced_mesh = 1
[../]
[./clad_oxide_thickness] #COCE
type = ElementalVariableValue
variable = oxide_thickness
elementid = 2981
use_displaced_mesh = 1
[../]
[./clad_coolant_htc] #COCE
type = ElementalVariableValue
variable = clad_coolant_htc
elementid = 2981
use_displaced_mesh = 1
[../]
[./coolant_temp] #COCE
type = ElementalVariableValue
variable = coolant_temp
elementid = 2981
use_displaced_mesh = 1
[../]
[./clad_coolant_flux] #COCE
type = ElementalVariableValue
variable = clad_coolant_flux
elementid = 2981
use_displaced_mesh = 1
[../]
[./coolant_channel_hmode] #COCE
type = ElementalVariableValue
variable = coolant_channel_hmode
elementid = 2981
use_displaced_mesh = 1
[../]
[./coolant_channel_htype] #COCE
type = ElementalVariableValue
variable = coolant_channel_htype
elementid = 2981
use_displaced_mesh = 1
[../]
[./critical_heat_flux] #COCE
type = ElementalVariableValue
variable = critical_heat_flux
elementid = 2981
use_displaced_mesh = 1
[../]
[./fuel_centerline_temp] #FICN
type = NodalVariableValue
variable = temp
nodeid = 3866
[../]
[./fuel_surface_temp] #FOCN
type = NodalVariableValue
variable = temp
nodeid = 3823
[../]
[./clad_inner_surface_temp] #CICN
type = NodalVariableValue
variable = temp
nodeid = 9557
[../]
[./clad_outer_surface_temp] #COCN
type = NodalVariableValue
variable = temp
nodeid = 9547
[../]
[./fuel_axial_elongation] #FOTN
type = NodalVariableValue
variable = disp_y
nodeid = 7739
[../]
[./clad_radial_elongation] #COCN
type = NodalVariableValue
variable = disp_x
nodeid = 9547
[../]
[./fuel_radial_elongation] #FOCN
type = NodalVariableValue
variable = disp_x
nodeid = 3823
[../]
[./SED_PPN_O] #COCE
type = ElementalVariableValue
variable = SED
elementid = 2981
use_displaced_mesh = 1
[../]
[./SED_PPN_I] #CICE
type = ElementalVariableValue
variable = SED
elementid = 2984
use_displaced_mesh = 1
[../]
[./zz_OFract_PPN_O] #COCE
type = ElementalVariableValue
variable = oxywtfract_total
elementid = 2981
use_displaced_mesh = 1
[../]
[./zz_OGain_PPN_O] #COCE
type = ElementalVariableValue
variable = oxywtfgain_total
elementid = 2981
use_displaced_mesh = 1
[../]
#######################################
[./max_clad_SED]
type = ElementExtremeValue
block = 'clad'
variable = SED
value_type = max
[../]
#Post processor to calculate radial average enthalpy. This postprocessor isnt available yet in BISON
[./z_RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_clad_diameter'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_pellet_diameter'
[../]
#Location of peak power node at appoximately 0.3 m in mesh
[./rad_temp]
type = LineValueSampler
end_point = '0.0040959 0.3 0.0'
start_point = '0.0 0.3 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = 'outfile_radial_temp'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 'pellet_type_1 pellet_type_2 pellet_type_3'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
interval = 1
csv = true
#exodus = true
color = false
[./outfile_clad_diameter]
type = CSV
sync_times = '125194100'
sync_only = true
[../]
[./outfile_pellet_diameter]
type = CSV
sync_times = '125194100'
sync_only = true
[../]
[./outfile_radial_temp]
type = CSV
end_time = -100000
[../]
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'ave_temp_interior fis_gas_released FCT average_burnup'
execute_on = 'FINAL'
[../]
[./exodus]
type = Exodus
interval = 4
end_time = 125193700
[../]
[./exodus_RIA]
type = Exodus
interval = 3
start_time = 125193695
[../]
[./checkpoint_RIA]
type = Checkpoint
file_base = recover_files_RIA
sync_times = '124761600 125107200 125193600 125193650 125193700 125193700.06 125193700.07 125193700.08 125193700.09 125193700.10 125193700.20 125193700.30 125193700.40 125193700.50 125193700.60 125193700.70 125193700.80 125193700.90 125193701.00 125193701.25 125193701.50 125193701.75 125193702.00 125193702.25 125193702.50 125193702.75 125193703.00 125193704.00 125193705.00'
sync_only = true
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
show_material_props = true
[]
assessment/LWR/validation/Riso_II3/analysis/Riso_II3.i
[GlobalParams]
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = riso_II3.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
scaling = 1e3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4'
initial_condition = 6.1e-6 # 2D grain radius 6.1e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = riso_II3_power_history.csv
format = columns
scale_factor = 1.05
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = riso_II3_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 97891200 97891210 97916190 97916200 98261980 98261990 '
y = '0.01403 1 1 0.01403 0.01403 1 1 0.01403'
[../]
[./flux]
type = PiecewiseLinear
data_file = riso_II3_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = riso_II3_clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = '3 4'
strain = FINITE
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain fuel_volumetric_swelling_eigenstrain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_growth_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_]
type = NeutronHeatSource
variable = temp
block = '3 4'
burnup_function = burnup
fraction = 0.95238095
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
density = 10486.8 # assumed TD = 10950
num_radial = 80
num_axial = 11
a_upper = 0.30686
a_lower = 0.0158
fuel_inner_radius = 0
fuel_outer_radius = 0.005445
fuel_volume_ratio = 0.992395144
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = 1
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
model = frictionless
formulation = penalty
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 97891210
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.24e6 #changes from 3.2MPa during base irradiation
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.53e6 #changes to 1e5 for bump tests
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 97891210
refab_pressure = 6.84e5
refab_temperature = 373
refab_volume = 7.41e-6
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4'
burnup_function = burnup
initial_fuel_density = 10486.8
temperature = temp
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
[../]
[./density_clad]
type = Density
block = 1
density = 6551.0
[../]
[./density_fuel]
type = Density
block = '3 4'
density = 10486.8
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4'
[../]
[./fuel_elasticity]
type = UO2ElasticityTensor
block = '3 4'
density = 10486.8
temperature = temp
[../]
[./fuel_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = '3 4'
stress_free_temperature = 293.0
temperature = temp
thermal_expansion_coeff = 10e-6
eigenstrain_name = fuel_thermal_eigenstrain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4'
diameter = 0.01089
gap = 0.00022 #diametral gap in m
burnup_function = burnup
burnup_relocation_stop = 0.029
relocation_activation1 = 5000
linear_heat_rate_function = q
eigenstrain_name = fuel_relocation_eigenstrain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
temperature = temp
[../]
[./clad_multiple_stress]
type = ComputeMultipleInelasticStress
block = clad
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = clad
stress_free_temperature = 293.0
temperature = temp
thermal_expansion_coeff = 5.0e-6
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-7
start_time = -100
end_time = 98290000
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 10
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3 4'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = '3 4'
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4'
[../]
[./TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 3486 #Global node ID 3487
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = '3 4'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'fission_gas_released_percentage TC_temp rod_total_power'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Riso_II5/analysis/SM/Riso_II5_sm.i
[GlobalParams]
density = 10369.65 # assumed TD = 10950
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = Riso_II5_insulator_pellets.e
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
patch_update_strategy = auto
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '4 5'
initial_condition = 4.992e-6 # 2D grain radius 3.2e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fuel_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = riso_II5_power_history.csv
format = columns
scale_factor = 1.031
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = riso_II5_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 174891600 174978000 174981600 174986520 175255020 175258620'
y = '0.014028 0.44444 0.44444 0.014028 0.014028 1 1 0.014028'
[../]
[./flux]
type = PiecewiseLinear
data_file = riso_II5_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = riso_II5_clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '4 5'
burnup_function = burnup
fraction = 0.97
[../]
[]
[Burnup]
[./burnup]
block = '4 5'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.29883
a_lower = 0.011
fuel_inner_radius = 0
fuel_outer_radius = 0.00632
fuel_volume_ratio = 0.99435997
i_enrich = '0.05078 0.94922 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = '1'
axial_power_profile = axial_peaking_factors
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '4 5'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '4 5'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./fuel_conductance]
type = MaterialRealAux
property = thermal_conductivity
variable = fuel_cond
block = '4 5'
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 5e9
formulation = penalty
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 174980000
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.2e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 9e4 #changes to 6.41e5 for bump tests
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenumTemp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 174980000 #174796490
refab_pressure = 6.41e5
refab_temperature = 273
refab_volume = 8.68e-6
displacements = 'disp_x disp_y'
[../]
[../]
[]
[PlenumTemperature]
[./plenumTemp]
boundary = 9
inner_surfaces = '20 10 21'
outer_surfaces = '4 5 6'
temp = temp
[../]
[]
[Materials]
[./density_clad]
type = Density
block = '1'
density = 6550
[../]
[./density_fuel]
type = Density
block = '4 5'
[../]
[./density_insulator_pellets]
type = Density
block = '3 6'
density = 3890
[../]
[./thermal_insulator_pellets]
type = HeatConductionMaterial
block = '3 6'
thermal_conductivity = 35
specific_heat = 880
[../]
[./mechanical_insulator_pellets]
type = Elastic
block = '3 6'
temp = temp
youngs_modulus = 375e9
poissons_ratio = 0.22
thermal_expansion = 8.4e-6
stress_free_temperature = 293.0
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./swelling]
type = VSwellingUO2
block = '4 5'
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_thermal]
type = ThermalFuel
block = '4 5'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic
block = '4 5'
temp = temp
youngs_modulus = 2e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
stress_free_temperature = 293.0
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = '4 5'
burnup_function = burnup
diameter = 0.01264
q = q
gap = 0.00021 #diametral gap
burnup_relocation_stop = 6.6525e-3
relocation_activation1 = 5000
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = '1'
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = clad
temp = temp
material_type = SRA #Stress relieved Zr-2
youngs_modulus = 7.5e10
poissons_ratio = 0.3
stress_free_temperature = 293
model_irradiation_growth = true
model_thermal_expansion = true
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = '4 5'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 175258620
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '4 5'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '4 5'
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = '4 5'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '4 5'
[../]
[./TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 2864 #Global node ID 2865 1.5 pellet lengths above bottom of TC hole
[../]
[./average_burnup]
type = ElementAverageValue
block = '4 5'
variable = burnup
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = '4 5'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage TC_temp rod_total_power'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/IFA_534/analysis/rod_19/IFA_534_rod19.i
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
temperature = temp
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = IFA534_rod19.e
patch_size = 10 # 20 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 4.25e-6 # must be the same as the initial value in Sifgr
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = IFA534_linear_power_rod19.csv
format = columns
[../]
[./axial_peaking_factors]
# reads and interpolates an input file containing the axial power profile vs time
type = ParsedFunction
value = 1
[../]
[./pressure_ramp]
# reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
#Ambient for initial build @ 0.101353 MPa, Base irradiation in a PWR @ 15.5 MPa, Ambient for refab @ 0.101353 MPa, Ramp testing done in the Halden Rx @ 3.2 MPa, Ambient for PIE @ 0.101353 MPa
x = '-100 0 127353600 127357200 127425420 127432620 136365300 136368900'
y = '0.006539 1 1 0.006539 0.006539 0.20645 0.20645 0.006539'
[../]
[./flux]
type = PiecewiseLinear
data_file = IFA534_fast_flux_rod19.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_bc]
type = PiecewiseLinear
data_file = IFA534_clad_temp_rod19.csv
format = columns
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress'
decomposition_method = EigenSolution
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress creep_strain_xx
creep_strain_xy creep_strain_yy creep_strain_zz'
decomposition_method = EigenSolution
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1 # fission rate applied to the fuel only
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
a_lower = 0.00324
a_upper = .407
fuel_outer_radius = .00456
fuel_inner_radius = 0
i_enrich = '0.0379 0.9621 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = pellet_type_1
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = '1'
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = '1'
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = 1
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
disp_x = disp_x
disp_y = disp_y
system = constraint
penalty = 1e8
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 127360800
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionPresetBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.15e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = plenum_temperature
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
refab_time = 127360800
refab_pressure = 2.15e6
refab_temperature = 293
refab_volume = 5.1e-6
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup_function = burnup
initial_fuel_density = 10431
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[../]
[./fuel_elasticity_and_creep]
type = ComputeThermalExpansionEigenstrain
block = 3
stress_free_temperature = 293
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = .00912
linear_heat_rate_function= q
gap = 170e-6 #diameteral gap
relocation_activation1 = 5000
burnup_relocation_stop = .029
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_inelastic_stressUpdate]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = 'clad_inelastic_stressUpdate'
[../]
[./clad_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = 1
stress_free_temperature = 293
thermal_expansion_coeff = 5.0e-6
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_eigenstrain]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
# type = MaxIncrement
type = BoundingValueNodalDamper
# max_increment = 50.0
max_value = 3200.0
min_value = 273.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
# l_max_its = 100
l_max_its = 60
l_tol = 8e-3
# controls for nonlinear iterations
# nl_max_its = 25
nl_max_its = 35
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 136369000
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 15
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_history
max_function_change = 2e6
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = .407 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 3
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = 3
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 1700
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/MOX/JOYO/MK-I/analysis/MK-I_50MW_master_old_bubble_gb_lim.i
[GlobalParams]
density = 10836.8
initial_porosity = 0.065
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.6
pellet_outer_radius = 0.0027
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000100
clad_thickness = 0.00035
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 0.599
elem_type = QUAD8
nx_c = 4
ny_c = 200
nx_p = 20
ny_p = 200
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
[../]
[]
[AuxVariables]
[./pore]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fission_rate]
block = pellet
[../]
[./burnup]
block = pellet
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
[../]
[]
[Functions]
[./power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = '0 70000 17153028'
y = '0 25577 25577'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 70000 17153028'
y = '0 1.2e+19 1.2e+19'
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
x = '0 0.071 0.146 0.221 0.296 0.37 0.443 0.566'
y = '0 17153028'
z = '0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672 0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672'
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./average_power_history]
type = PiecewiseLinear
x = '0 70000 17153028'
y = '0 21000 21000'
[../]
[./clad_surface_temp]
type = PiecewiseBilinear
x = '0 0.075 0.15 0.225 0.3 0.375 0.45 0.525 0.6'
y = '0 17153028'
z = '295 295 295 295 295 295 295 295 295 499.9 509.1 517.8 525.42 532.71 540.29 547.7 552.3 554.81'
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.065
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
execute_on = timestep_end
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
execute_on = timestep_end
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
execute_on = timestep_end
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
execute_on = timestep_end
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
execute_on = timestep_end
[../]
[./nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vcn_bdr_2
execute_on = timestep_end
[../]
[./atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atm_bbl_bdr
execute_on = timestep_end
[../]
[./vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vcn_bbl_bdr
execute_on = timestep_end
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
execute_on = timestep_end
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
execute_on = timestep_end
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = timestep_end
[../]
[./volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = vol_bbl_bdr
execute_on = timestep_end
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = fast_neutron_flux_function
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = '12'
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp_clad_out]
type = FunctionPresetBC
variable = temp
boundary = '2'
function = clad_surface_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 101325
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 300000
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10836.8
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = Thermal316
block = clad
temp = temp
[../]
[./clad_density]
type = Density
block = clad
density = 8000
[../]
[./clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
diff_coeff_option = 4
fission_rate = fission_rate
grain_radius_const = 8.01e-6 #I'm keeping the grain radius const because the grain growth in MOX is probably different due to high Temp
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
picard_abs_tol = 1e-5
picard_rel_tol = 1e-5
picard_max_its = 1
l_max_its = 70
l_tol = 8e-3
nl_max_its = 70
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = 0
n_startup_steps = 1
end_time = 17153028
dtmax = 1e6
dtmin = 0.25
[./TimeStepper]
type = IterationAdaptiveDT
dt = 5000
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.6 # rod height
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./ave_pore]
type = ElementAverageValue
variable = pore
[../]
[./max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[../]
[./min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[../]
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = MK-I_50MW_sub_old_bubble_gb_lim.i
[../]
[]
[Transfers]
[./temp_to_sub]
type = MultiAppProjectionTransfer
direction = to_multiapp
multi_app = sub
source_variable = temp
variable = temp
[../]
[./pore_from_sub]
type = MultiAppInterpolationTransfer
direction = from_multiapp
multi_app = sub
source_variable = pore
variable = pore
[../]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temp disp_x disp_y'
[]
assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_10/REP_Na_10.i
# REP Na 10 Rodlet
[GlobalParams]
density = 10448.925 # assumed TD = 10970
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 30
acceptable_multiplier = 10
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
nx_p = 11
ny_p = 156
ny_cu = 3
ny_c = 160
ny_cl = 3
nx_c = 4
clad_thickness = 0.0005753
pellet_outer_radius = 0.004096055
pellet_quantity = 39
pellet_height = 0.01425001
clad_top_gap_height = 0.032027026
clad_bot_gap_height = 0.003
clad_gap_width = 82.0e-6
top_bot_clad_height = 0.0015
elem_type = QUAD8
patch_size = 40
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.15
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5.0e-6 # Assume Grain size 10 microns
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fuel_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./stress_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_htype]
order = CONSTANT
family = MONOMIAL
[../]
[./critical_heat_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./plastic_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./oxywtfract_total]
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = REPNa10_power_history_Full.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = REPNa10_axial_peaking_Full.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # inlet coolant pressure evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 101325
8640 15499970
125280000 15499970
125366400 101325
125798400 101325
125798410 101325
125798450 500008
125798500 500008
125798700 500008
125798800 101325
125798900 101325'
[../]
[./temp_ramp] # inlet coolant temp evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 293.15
8640 588.706
125280000 588.706
125366400 293.15
125798400 293.15
125798410 293.15
125798450 553.15
125798500 553.15
125798700 553.15
125798800 293.15
125798900 293.15'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./Fuel_CTE_function] #Fuel CTE as a function of temp from MATPRO data
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = ' 0 1.000E-05
300 1.000E-05
350 1.000E-05
400 1.000E-05
450 1.000E-05
500 1.001E-05
550 1.002E-05
600 1.003E-05
650 1.005E-05
700 1.008E-05
750 1.011E-05
800 1.015E-05
850 1.020E-05
900 1.026E-05
950 1.032E-05
1000 1.039E-05
1050 1.046E-05
1100 1.053E-05
1150 1.061E-05
1200 1.069E-05
1250 1.077E-05
1300 1.085E-05
1350 1.094E-05
1400 1.102E-05
1450 1.111E-05
1500 1.119E-05
1550 1.127E-05
1600 1.135E-05
1650 1.143E-05
1700 1.151E-05
1750 1.158E-05
1800 1.166E-05
1850 1.173E-05
1900 1.180E-05
1950 1.187E-05
2000 1.193E-05
2050 1.199E-05
2100 1.205E-05
2150 1.211E-05
2200 1.217E-05
2250 1.222E-05
2300 1.227E-05
2350 1.232E-05
2400 1.237E-05
2450 1.242E-05
2500 1.246E-05
2550 1.250E-05
2600 1.254E-05
2650 1.258E-05
2700 1.262E-05
2750 1.265E-05
2800 1.268E-05
2850 1.271E-05
2900 1.274E-05
2950 1.277E-05
3000 1.280E-05
3050 1.282E-05
3100 1.285E-05'
[../]
[./burnup_GWd]
type = ParsedFunction
value = bu*950
vars = 'bu'
vals = 'average_burnup'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 40
a_upper = 0.5602504
a_lower = 0.0045
fuel_inner_radius = 0
fuel_outer_radius = 0.004096055
fuel_volume_ratio = 1
i_enrich = '0.045 0.955 0 0 0 0'
RPF = RPF
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_profile
factor = 3e13 #n/m2-s
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./fuel_conductance]
type = MaterialRealAux
property = thermal_conductivity
variable = fuel_cond
block = 3
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = total_swell
execute_on = timestep_end
block = 3
[../]
[./stress_hoop]
type = MaterialTensorAux
tensor = stress
variable = stress_hoop
quantity = Hoop
execute_on = timestep_end
[../]
[./stress_axial]
type = MaterialTensorAux
tensor = stress
variable = stress_axial
quantity = Axial
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./plastic_strain_hoop]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./plastic_strain_axial]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./total_hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_hoop_strain
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./total_axial_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_axial_strain
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./elastic_strain_hoop]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./elastic_strain_axial]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./clad_coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = clad_coolant_htc
boundary = 2
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = 2
[../]
[./clad_coolant_flux]
type = MaterialRealAux
property = output_heat_flux
variable = clad_coolant_flux
boundary = 2
[../]
[./coolant_channel_hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = coolant_channel_hmode
boundary = 2
[../]
[./coolant_channel_htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = coolant_channel_htype
boundary = 2
[../]
[./critical_heat_flux]
type = MaterialRealAux
property = critical_heat_flux
variable = critical_heat_flux
boundary = 2
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./plastic_strain_mag]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
[../]
[./ofract_total]
type = MaterialRealAux
variable = oxywtfract_total
property = current_oxygen_weight_frac_total
execute_on = timestep_end
boundary = 2
[../]
[./ofgain_total]
type = MaterialRealAux
variable = oxywtfgain_total
property = oxygen_weight_frac_gained_total
execute_on = timestep_end
boundary = 2
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e10
formulation = penalty
normalize_penalty = false
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2.0e-6
roughness_clad = 0.5e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
emissivity_fuel = 0.797698
emissivity_clad = 0.325
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 125712000
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_temperature = 293.15
initial_pressure = 2.60e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
refab_time = 125712000
refab_pressure = 0.301e6
refab_temperature = 293.15
refab_volume = 2.0e-6
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface_water]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp # K
inlet_pressure = pressure_ramp # Pa
inlet_massflux = 3244.044104 # kg/m^2-sec
rod_diameter = 0.00951 # m
rod_pitch = 1.26e-2 # m
compute_enthalpy = true
oxide_thickness = oxide_thickness
number_axial_zone = 50
[../]
# [./convective_clad_surface_sodium] # apply convective boundary to clad outer surface
# boundary = '1 2 3'
# variable = temp
# inlet_temperature = temp_ramp # K
# inlet_pressure = pressure_ramp # Pa
# inlet_massflux = 3533 # kg/m^2-sec Based on flow rate provided and flow area and estimated density of 885.1 kg/m^3
# flow_area = 8.74855e-5 #m^2
# heated_diameter = 1.172526e-2 #m
# hydraulic_diameter = 4.7e-3 #m
# heated_perimeter = 2.984513e-2 #m
# coolant_material = 'sodium'
# compute_enthalpy = true
# heat_transfer_mode = 0
# oxide_thickness = oxide_thickness # coupled oxide_thickness
# number_axial_zone = 50
# rod_pitch = 1.26e-2 # m
# rod_diameter = 0.0095 # m
# [../]
[]
[Materials]
[./density_fuel]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.0475
[../]
[./fuel_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2e11
poissons_ratio = 0.345
#thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
thermal_expansion_function = Fuel_CTE_function
stress_free_temperature = 293.15
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.00819211 #Fuel pellet diameter in m
q = q
gap = 164.0e-6 #diametral gap in m
burnup_relocation_stop = 0.0246
relocation_activation1 = 5000 #initial relocation activation power in W/m
[../]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
save_solid_swell = true
save_densification = true
total_densification = 0.00675
initial_porosity = 0.0475
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
initial_porosity = 0.0475
grain_radius = grain_radius
#grain_radius_const = 5.0e-6
gbs_model = true
transient_option = 0
[../]
[./density_clad]
type = Density
block = 1
density = 6550
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
formulation = NonlinearRZ
large_strain = 1
constitutive_model = combined
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
model_irradiation_growth = 1
model_thermal_expansion = 1
model_elastic_modulus = 1
stress_free_temperature = 293.15
compute_JIntegral = true
oxygen_concentration = 0.0
max_inelastic_increment = 1.0e-4
compute_material_timestep_limit = true
[../]
[./combined]
type = CombinedCreepPlasticity
block = 1
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = 1
model_primary_creep = 1
model_thermal_creep = 1
model_thermal_creep_loca = 0
[../]
[./plasticity]
type = ZryPlasticity
block = clad
temp = temp
cold_work_factor = 0.5
fast_neutron_fluence = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
use_matpro = true
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.00417806
clad_outer_radius = 0.00475336
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./phase]
type = ZrPhase
block = 1
temperature = temp
numerical_method = 2
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
[./contact_slip]
type = ContactSlipDamper
master = 5
slave = 10
min_damping_factor = 0.05
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1e-3
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = 0
end_time = 125798400
dtmax = 1e6
dtmin = 1e-7
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e3
optimal_iterations = 10
iteration_window = 4
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
max_function_change = 1e6
force_step_every_function_point = true
timestep_limiting_postprocessor = material_timestep_control
time_t = '125798410 125798420 125798430 125798440 125798450 125798460 125798470 125798480 125798500 125798500.1 125798500.2 125798500.3 125798500.32 125798500.35'
time_dt = '1 1 1 1 1 1 1 1 0.001 0.001 0.001 0.001 0.001 0.001'
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./1_rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./burnup_GWd]
type = FunctionValuePostprocessor
function = burnup_GWd
[../]
#######################################
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 5535
use_displaced_mesh = 1
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 5535
use_displaced_mesh = 1
[../]
[./gap_cond]
type = ElementalVariableValue
variable = gap_cond
elementid = 1664
use_displaced_mesh = 1
[../]
[./creep_hoop_strain]
type = ElementalVariableValue
variable = creep_strain_hoop
elementid = 376
use_displaced_mesh = 1
[../]
[./elastic_hoop_strain]
type = ElementalVariableValue
variable = elastic_strain_hoop
elementid = 376
use_displaced_mesh = 1
[../]
[./plastic_hoop_strain]
type = ElementalVariableValue
variable = plastic_strain_hoop
elementid = 376
use_displaced_mesh = 1
[../]
[./total_hoop_strain]
type = ElementalVariableValue
variable = total_hoop_strain
elementid = 376
use_displaced_mesh = 1
[../]
[./clad_hoop_stress]
type = ElementalVariableValue
variable = stress_hoop
elementid = 376
use_displaced_mesh = 1
[../]
[./clad_axial_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 2451
use_displaced_mesh = 1
[../]
[./clad_oxide_thickness]
type = ElementalVariableValue
variable = oxide_thickness
elementid = 376
use_displaced_mesh = 1
[../]
[./clad_coolant_htc]
type = ElementalVariableValue
variable = clad_coolant_htc
elementid = 376
use_displaced_mesh = 1
[../]
[./coolant_temp]
type = ElementalVariableValue
variable = coolant_temp
elementid = 376
use_displaced_mesh = 1
[../]
[./fuel_centerline_temp]
type = NodalVariableValue
variable = temp
nodeid = 5504
[../]
[./fuel_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 5535
[../]
[./clad_inner_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 1307
[../]
[./clad_outer_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 1317
[../]
[./fuel_axial_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 8055
[../]
[./clad_radial_elongation]
type = NodalVariableValue
variable = disp_x
nodeid = 1317
[../]
[./fuel_radial_elongation]
type = NodalVariableValue
variable = disp_x
nodeid = 5535
[../]
[./SED_PPN_O]
type = ElementalVariableValue
variable = SED
elementid = 376
use_displaced_mesh = 1
[../]
[./SED_PPN_I]
type = ElementalVariableValue
variable = SED
elementid = 373
use_displaced_mesh = 1
[../]
[./OFract_PPN_O]
type = ElementalVariableValue
variable = oxywtfract_total
elementid = 376
use_displaced_mesh = 1
[../]
[./OGain_PPN_O]
type = ElementalVariableValue
variable = oxywtfgain_total
elementid = 376
use_displaced_mesh = 1
[../]
#######################################
[./max_fuel_temp]
type = NodalMaxValue
block = 3
variable = temp
[../]
[./max_clad_temp]
type = NodalMaxValue
block = clad
variable = temp
[../]
[./max_clad_SED]
type = ElementExtremeValue
block = clad
variable = SED
value_type = max
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[./material_timestep_control]
type = MaterialTimeStepPostprocessor
block = 1
[../]
[]
[VectorPostprocessors]
[./ox_thick]
type = SideValueSampler
variable = oxide_thickness
boundary = 2
sort_by = y
outputs = 'outfile_2'
[../]
[./rad_temp]
type = LineValueSampler
end_point = '0.004096055 0.3 0.0'
start_point = '0.0 0.3 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = 3
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
[./outfile_2]
type = CSV
sync_times = '125798400 125798900'
sync_only = true
[../]
[./dummy]
type = CSV
enable = false
[../]
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
sync_times = '125798400'
sync_only = true
[../]
[./chkfile]
type = CSV
show = 'plenum_temperature fission_gas_released_percentage average_centerline_fuel_temperature average_burnup'
execute_on = 'FINAL'
[../]
[./exodus]
type = Exodus
interval = 4
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
show_material_props = true
[]
examples/fast_mox_sifgrs/input_single_pellet_sifgrs_mox.i
#This input is is a simple example of FBR MOX fuel analysis.
#In this case we test the application of Sifgrs to FBR MOX using a specific setting for the lower limit of grain-boundary bubble number density.
[GlobalParams]
displacements = 'disp_x disp_y'
temperature = temp
density = 10920.4
order = FIRST
family = LAGRANGE
energy_per_fission = 3.28451e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = SmearedPelletMesh
dim = 2
include_clad = false
clad_top_gap_height = 0.
pellet_quantity = 1
pellet_height = 0.01
pellet_outer_radius = 0.0027
pellet_mesh_density = customize
nx_p = 10
ny_p = 5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 683 #typical inlet temperature of the sodium
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fission_rate]
block = pellet
[../]
[./burnup]
block = pellet
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0. 70000. 10000000. 10070000.'
y = '0. 35. 35. 0. '
scale_factor = 1000.
[../]
[./temp_surface]
type = PiecewiseLinear
x = '0. 70000. 10000000. 10070000.'
y = '683. 1000. 1000. 683. '
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '0. 70000. 10000000. 10070000.'
y = '0.3 0.5 1.8 0.3 '
scale_factor = 1.e+6
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = pellet
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.07
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
execute_on = timestep_end
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
execute_on = timestep_end
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = centerline
value = 0.
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = bottom_central_pellet_node
value = 0.
[../]
[./imposed_ext_temp]
type = FunctionPresetBC
boundary = pellet_outer_radial_surface
variable = temp
function = temp_surface
[../]
[./top_pellet]
variable = temp
type = NeumannBC
value = 0.
boundary = top_of_top_pellet
[../]
[./bottom_pellet]
variable = temp
type = NeumannBC
value = 0.
boundary = bottom_of_bottom_pellet
[../]
[./Pressure]
[./pressure]
boundary = pellet_outer_radial_surface
function = pressure_ramp
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = 0.07
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = pellet
burnup = burnup
total_densification = 0.1e-02
initial_fuel_density = 10920.4
gas_swelling_model_type = SIFGRS
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[./fission_gas]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
fission_rate = fission_rate
grain_radius_const = 8.01e-6
diff_coeff_option = 4
bubble_gb_limit = 1.0e+11 #recommended value for fast MOX fuels
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 1.e-08
nl_max_its = 15
nl_rel_tol = 1.e-4
nl_abs_tol = 1.e-10
start_time = 0.
end_time = 10070000
dtmax = 5e+05
dtmin = 1.
[./TimeStepper]
type = IterationAdaptiveDT
growth_factor = 3.
dt = 1.e+02
timestep_limiting_function = power_history
max_function_change = 1000.
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./alhr_input]
type = FunctionValuePostprocessor
function = power_history
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_max]
type = NodalMaxValue
variable = temp
block = pellet
execute_on = 'initial timestep_end'
[../]
[./burnup_ave]
type = ElementAverageValue
block = pellet
variable = burnup
[../]
[./burnup_ave_MWdkgU]
type = ScalePostprocessor
value = burnup_ave
scaling_factor = 950.
[../]
[./fission_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
variable = temp
block = pellet
execute_on = linear
[../]
[./fission_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
variable = temp
block = pellet
execute_on = linear
[../]
[./fgr_percent]
type = FGRPercent
value1 = fission_gas_released
value2 = fission_gas_produced
execute_on = linear
[../]
[./bubble_num_grain_boundary_center]
type = ElementalVariableValue
variable = bbl_bdr_2
elementid = 21
[../]
[./bubble_num_grain_boundary_surface]
type = ElementalVariableValue
variable = bbl_bdr_2
elementid = 30
[../]
[./bubble_num_grain_boundary_min]
type = ElementExtremeValue
value_type = min
variable = bbl_bdr_2
block = pellet
[../]
[./swelling_grain_boundary_center]
type = ElementalVariableValue
variable = deltav_v0_bd
elementid = 21
[../]
[./swelling_grain_boundary_surface]
type = ElementalVariableValue
variable = deltav_v0_bd
elementid = 30
[../]
[./temp_fuel_center]
type = NodalVariableValue
variable = temp
nodeid = 23
[../]
[./temp_fuel_surface]
type = NodalVariableValue
variable = temp
nodeid = 32
[../]
[./_dt]
type = TimestepSize
execute_on = linear
[../]
[./nonlinear_its]
type = NumNonlinearIterations
execute_on = linear
[../]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[./console]
type = Console
max_rows = 15
[../]
[./t]
type = Checkpoint
interval = 2
num_files = 2
[../]
[]
assessment/LWR/validation/Riso_AN3/analysis/Riso_AN3.i
[GlobalParams]
density = 10303.0 # assumed TD = 10950
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = riso_an3.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4'
initial_condition = 4.68e-6 # 2D grain radius 3.0e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = riso_an3_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = an3_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 103528800 103529000 103529020 103529120 103789797 103789810'
y = '0.00653 1 1 0.00653 0.00653 0.986 0.986 0.00653'
[../]
[./flux]
type = PiecewiseLinear
data_file = riso_an3_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = riso_an3_clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
add_variables = false
block = '3 4'
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz vonmises_stress'
eigenstrain_names = 'fuel_volumetric_swelling_eigenstrain fuel_thermal_eigenstrain fuel_relocation_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[./clad]
add_variables = false
block = 1
strain = FINITE
incremental = true
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz'
eigenstrain_names = 'clad_irradiation_growth_eigenstrain clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = '3 4'
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.29334
a_lower = 0.00734
fuel_inner_radius = 0
fuel_outer_radius = 0.0045265
fuel_volume_ratio = 0.9889
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.9e17
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = 1
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 103529000
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1.552e7 #changes to 1.53e7 for bump tests
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.31e6 #changes to 1e5 for bump tests
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 103529000
refab_pressure = 1.57e6
refab_temperature = 293
refab_volume = 7.0e-6
[../]
[../]
[]
[Materials]
[./swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4'
burnup_function = burnup
temperature = temp
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
initial_fuel_density = 10303.0
[../]
[./density_clad]
type = Density
block = 1
density = 6551.0
[../]
[./density_fuel]
type = Density
block = '3 4'
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity]
type = UO2ElasticityTensor
block = '3 4'
temperature = temp
[../]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4'
[../]
[./fuel_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = '3 4'
temperature = temp
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
stress_free_temperature = 293
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4'
burnup_function = burnup
diameter = 0.009053
linear_heat_rate_function = q
gap = 2.05e-4
burnup_relocation_stop = 0.029
relocation_activation1 = 5000
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity]
type = ZryElasticityTensor
block = 1
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = clad_creep
[../]
[./clad_creep]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
temperature = temp
[../]
[./clad_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = 1
temperature = temp
thermal_expansion_coeff = 5.0e-6
eigenstrain_name = 'clad_thermal_eigenstrain'
stress_free_temperature = 293
[../]
[./clad_irradiation_growth_eigenstrain]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 103789797
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3 4'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = '3 4'
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4'
[../]
[./TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 9738 #Global node ID 9739
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = '3 4'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
[./chkfile]
type = CSV
show = 'ave_fission_rate average_centerline_fuel_temperature fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
examples/tensor_mechanics/1.5D_rodlet_10pellets/Smeared_2D_sm.i
# Model is of a 10 pellet stack of smeared fuel (pellet_type_2).
[GlobalParams]
density = 10431.0
initial_porosity = 0.05
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
#type = ReferenceResidualProblem
#solution_variables = 'disp_x disp_y temp'
#reference_residual_variables = 'saved_x saved_x saved_t'
[]
[Mesh]
file = smeared.e
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./solid_swell]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./gas_swell]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./densification]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[./relocation]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
save_in_disp_r = saved_x
save_in_disp_z = saved_y
temp = temp
[../]
[]
[Kernels]
#[./gravity] # body force term in stress equilibrium equation
# type = Gravity
# variable = disp_y
# value = -9.81
#[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 0.00324 # mesh dependent
a_upper = 0.12184 # mesh dependent
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 1.0 # for use with dished pellets (ratio of actual volume to cylinder volume)
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain
block = clad
execute_on = timestep_end
[../]
[./strain_xx]
type = MaterialTensorAux
tensor = total_strain
variable = strain_xx
index = 0
execute_on = timestep_end
[../]
[./creep_strain_rate]
type = MaterialRealAux
property = creep_rate
variable = creep_strain_rate
block = clad
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[./solid_swell]
type = MaterialRealAux
variable = solid_swell
property = solid_swell
execute_on = timestep_end
block = pellet_type_1
[../]
[./gas_swell]
type = MaterialRealAux
variable = gas_swell
property = gas_swell
execute_on = timestep_end
block = pellet_type_1
[../]
[./densification]
type = MaterialRealAux
variable = densification
property = densification
execute_on = timestep_end
block = pellet_type_1
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = total_swell
execute_on = timestep_end
block = pellet_type_1
[../]
[./relocation_strain]
type = MaterialRealAux
variable = relocation
property = relocation_strain
execute_on = timestep_end
block = pellet_type_1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
quadrature = true
contact_pressure = contact_pressure
[../]
[]
[BCs]
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = pellet_type_1
temp = temp
burnup_function = burnup
save_solid_swell = true
save_densification = true
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (BISON kernel)
type = Elastic
block = pellet_type_1
disp_r = disp_x
disp_z = disp_y
temp = temp
dep_matl_props = deltav_v0_bd
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
formulation = NonlinearRZ
stress_free_temperature = 295.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = 0.0082
q = q
gap = 160e-6 # diametral gap
burnup_relocation_stop = 0.024
relocation_activation1 = 5000
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./clad_thermal] # general thermal property input
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr4 (BISON kernel)
type = MechZry
block = clad
disp_r = disp_x
disp_z = disp_y
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
# thermal_expansion = 5.0e-6 # unnecessary because computing the thermal expansion with MATPRO
model_irradiation_growth = true
model_thermal_expansion = true
stress_free_temperature = 295.0
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
# PETSC options:
# petsc_options
# petsc_options_iname
# petsc_options_value
#
# controls for linear iterations
# l_max_its
# l_tol
#
# controls for nonlinear iterations
# nl_max_its
# nl_rel_tol
# nl_abs_tol
#
# time control
# start_time
# dt
# optimal_iterations
# iteration_window
# linear_iteration_ratio
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-5
nl_abs_tol = 1e-7
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
# outputs = exodus
execute_on = 'initial linear'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
# outputs = exodus
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial linear'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fisson_gas_release]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./_dt] # time step
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temp
nodeid = 584 # !! Mesh dependent (0.0041, 0.0546333)
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
[../]
### Comparisons for 1.5D work, mesh specific ####################
# von Mises Stress
[./top_vonMises_fuel]
type = ElementalVariableValue
elementid = 77 # mesh dependent (contains pt. 0.0041, 0.0902133)
variable = vonmises
[../]
[./center_vonMises_fuel]
type = ElementalVariableValue
elementid = 176 # mesh dependent (contains pt. 0.0041, 0.0546333)
variable = vonmises
[../]
[./bottom_vonMises_fuel]
type = ElementalVariableValue
elementid = 275 # mesh dependent (contains pt. 0.0041, 0.0190533)
variable = vonmises
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises
block = pellet_type_1
[../]
[./top_vonMises_clad_inner]
type = ElementalVariableValue
elementid = 401 # mesh dependent (contains pt. 0.00418, 0.0896)
variable = vonmises
[../]
[./top_vonMises_clad_outer]
type = ElementalVariableValue
elementid = 398 # mesh dependent (contains pt. 0.00474, 0.0896)
variable = vonmises
[../]
[./center_vonMises_clad_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent (contains pt. 0.00418, 0.0556267)
variable = vonmises
[../]
[./center_vonMises_clad_outer]
type = ElementalVariableValue
elementid = 426 # mesh dependent (contains pt. 0.00474, 0.0556267)
variable = vonmises
[../]
[./bottom_vonMises_clad_inner]
type = ElementalVariableValue
elementid = 461 # mesh dependent (contains pt. 0.00418, 0.0216533)
variable = vonmises
[../]
[./bottom_vonMises_clad_outer]
type = ElementalVariableValue
elementid = 458 # mesh dependent (contains pt. 0.00474, 0.0216533)
variable = vonmises
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises
block = clad
[../]
# radial stress
[./top_stress_rr_fuel]
type = ElementalVariableValue
elementid = 77 # mesh dependent (contains pt. 0.0041, 0.0902133)
variable = stress_xx
[../]
[./center_stress_rr_fuel]
type = ElementalVariableValue
elementid = 176 # mesh dependent (contains pt. 0.0041, 0.0546333)
variable = stress_xx
[../]
[./bottom_stress_rr_fuel]
type = ElementalVariableValue
elementid = 275 # mesh dependent (contains pt. 0.0041, 0.0190533)
variable = stress_xx
[../]
[./average_stress_rr_fuel]
type = ElementAverageValue
variable = stress_xx
block = pellet_type_1
[../]
[./top_stress_rr_clad_inner]
type = ElementalVariableValue
elementid = 401 # mesh dependent (contains pt. 0.00418, 0.0896)
variable = stress_xx
[../]
[./top_stress_rr_clad_outer]
type = ElementalVariableValue
elementid = 398 # mesh dependent (contains pt. 0.00474, 0.0896)
variable = stress_xx
[../]
[./center_stress_rr_clad_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent (contains pt. 0.00418, 0.0556267)
variable = stress_xx
[../]
[./center_stress_rr_clad_outer]
type = ElementalVariableValue
elementid = 426 # mesh dependent (contains pt. 0.00474, 0.0556267)
variable = stress_xx
[../]
[./bottom_stress_rr_clad_inner]
type = ElementalVariableValue
elementid = 461 # mesh dependent (contains pt. 0.00418, 0.0216533)
variable = stress_xx
[../]
[./bottom_stress_rr_clad_outer]
type = ElementalVariableValue
elementid = 458 # mesh dependent (contains pt. 0.00474, 0.0216533)
variable = stress_xx
[../]
[./average_stress_rr_clad]
type = ElementAverageValue
variable = stress_xx
block = clad
[../]
# radial strain
[./top_strain_rr_fuel]
type = ElementalVariableValue
elementid = 77 # mesh dependent (contains pt. 0.0041, 0.0902133)
variable = strain_xx
[../]
[./center_strain_rr_fuel]
type = ElementalVariableValue
elementid = 176 # mesh dependent (contains pt. 0.0041, 0.0546333)
variable = strain_xx
[../]
[./bottom_strain_rr_fuel]
type = ElementalVariableValue
elementid = 275 # mesh dependent (contains pt. 0.0041, 0.0190533)
variable = strain_xx
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = strain_xx
block = pellet_type_1
[../]
[./top_strain_rr_clad_inner]
type = ElementalVariableValue
elementid = 401 # mesh dependent (contains pt. 0.00418, 0.0896)
variable = strain_xx
[../]
[./top_strain_rr_clad_outer]
type = ElementalVariableValue
elementid = 398 # mesh dependent (contains pt. 0.00474, 0.0896)
variable = strain_xx
[../]
[./center_strain_rr_clad_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent (contains pt. 0.00418, 0.0556267)
variable = strain_xx
[../]
[./center_strain_rr_clad_outer]
type = ElementalVariableValue
elementid = 426 # mesh dependent (contains pt. 0.00474, 0.0556267)
variable = strain_xx
[../]
[./bottom_strain_rr_clad_inner]
type = ElementalVariableValue
elementid = 461 # mesh dependent (contains pt. 0.00418, 0.0216533)
variable = strain_xx
[../]
[./bottom_strain_rr_clad_outer]
type = ElementalVariableValue
elementid = 458 # mesh dependent (contains pt. 0.00474, 0.0216533)
variable = strain_xx
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = strain_xx
block = clad
[../]
# effective creep strain
[./top_creep_strain_clad_inner]
type = ElementalVariableValue
elementid = 401 # mesh dependent (contains pt. 0.00418, 0.0896)
variable = creep_strain
[../]
[./top_creep_strain_clad_outer]
type = ElementalVariableValue
elementid = 398 # mesh dependent (contains pt. 0.00474, 0.0896)
variable = creep_strain
[../]
[./center_creep_strain_clad_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent (contains pt. 0.00418, 0.0556267)
variable = creep_strain
[../]
[./center_creep_strain_clad_outer]
type = ElementalVariableValue
elementid = 426 # mesh dependent (contains pt. 0.00474, 0.0556267)
variable = creep_strain
[../]
[./bottom_creep_strain_clad_inner]
type = ElementalVariableValue
elementid = 461 # mesh dependent (contains pt. 0.00418, 0.0216533)
variable = creep_strain
[../]
[./bottom_creep_strain_clad_outer]
type = ElementalVariableValue
elementid = 458 # mesh dependent (contains pt. 0.00474, 0.0216533)
variable = creep_strain
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = creep_strain
block = clad
[../]
### Nodal displacements
[./top_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 269 # mesh dependent, at (0.0041, 0.0902133)
[../]
[./center_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
[../]
[./bottom_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 899 # mesh dependent, at (0.0041, 0.0190533)
[../]
[./top_disp_r_clad_inner]
type = NodalVariableValue
variable = disp_x
nodeid = 1342 #mesh dependent, at (0.00418, 0.0896)
[../]
[./top_disp_r_clad_outer]
type = NodalVariableValue
variable = disp_x
nodeid = 1332 #mesh dependent, at (0.00474, 0.0896)
[../]
[./center_disp_r_clad_inner]
type = NodalVariableValue
variable = disp_x
nodeid = 1440 #mesh dependent, at (0.00418, 0.0556267)
[../]
[./center_disp_r_clad_outer]
type = NodalVariableValue
variable = disp_x
nodeid = 1430 #mesh dependent, at (0.00474, 0.0556267)
[../]
[./bottom_disp_r_clad_inner]
type = NodalVariableValue
variable = disp_x
nodeid = 1538 #mesh dependent, at (0.00418, 0.0216533)
[../]
[./bottom_disp_r_clad_outer]
type = NodalVariableValue
variable = disp_x
nodeid = 1528 #mesh dependent, at (0.00418, 0.0216533)
[../]
### Nodal temperatures
[./top_temp_fuel]
type = NodalVariableValue
variable = temp
nodeid = 269 # mesh dependent, at (0.0041, 0.0902133)
[../]
[./center_temp_fuel]
type = NodalVariableValue
variable = temp
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
[../]
[./bottom_temp_fuel]
type = NodalVariableValue
variable = temp
nodeid = 899 # mesh dependent, at (0.0041, 0.0190533)
[../]
[./top_temp_clad_inner]
type = NodalVariableValue
variable = temp
nodeid = 1342 #mesh dependent, at (0.00418, 0.0896)
[../]
[./top_temp_clad_outer]
type = NodalVariableValue
variable = temp
nodeid = 1332 #mesh dependent, at (0.00474, 0.0896)
[../]
[./center_temp_clad_inner]
type = NodalVariableValue
variable = temp
nodeid = 1440 #mesh dependent, at (0.00418, 0.0556267)
[../]
[./center_temp_clad_outer]
type = NodalVariableValue
variable = temp
nodeid = 1430 #mesh dependent, at (0.00474, 0.0556267)
[../]
[./bottom_temp_clad_inner]
type = NodalVariableValue
variable = temp
nodeid = 1538 #mesh dependent, at (0.00418, 0.0216533)
[../]
[./bottom_temp_clad_outer]
type = NodalVariableValue
variable = temp
nodeid = 1528 #mesh dependent, at (0.00418, 0.0216533)
[../]
### Nodal penetration
[./top_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 269 # mesh dependent, at (0.0041, 0.0902133)
[../]
[./center_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
[../]
[./bottom_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 899 # mesh dependent, at (0.0041, 0.0190533)
[../]
### Nodal contact pressure
[./top_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 269 # mesh dependent, at (0.0041, 0.0902133)
[../]
[./center_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
[../]
[./bottom_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 899 # mesh dependent, at (0.0041, 0.0190533)
[../]
### End of 1.5D comparisons
[./center_effective_creep_rate_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent
variable = creep_strain_rate
[../]
[./center_effective_creep_rate_outer]
type = ElementalVariableValue
elementid = 426 # mesh dependent
variable = creep_strain_rate
[../]
[./effective_creep_strain_rate]
type = ElementAverageValue
variable = creep_strain_rate
[../]
[./solid_swelling]
type = ElementAverageValue
variable = solid_swell
block = pellet_type_1
[../]
[./gas_swelling]
type = ElementAverageValue
variable = gas_swell
block = pellet_type_1
[../]
[./densification]
type = ElementAverageValue
variable = densification
block = pellet_type_1
[../]
[./volumetric_swelling]
type = ElementAverageValue
variable = volumetric_swelling_strain
block = pellet_type_1
[../]
[./relocation]
type = ElementAverageValue
variable = relocation
block = pellet_type_1
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'sm_clad_radial_displacement'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'sm_fuel_radial_displacement'
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./sm_clad_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./sm_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[]
examples/IAEA_CRP-6_type/case_11/case_11.i
[GlobalParams]
density = 10810.0 # kg/m^3
order = SECOND
family = LAGRANGE
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Mesh]
file = case_11.e
[]
[Problem]
coord_type = RZ
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 1608.0
[../]
[]
[AuxVariables]
[./fluence]
[../]
[./fast_neutron_flux]
[../]
[./fission_rate]
block = fuel
[../]
[./burnup]
block = fuel
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./grain_radius]
initial_condition = 5.0e-6
[../]
[]
[Functions]
[./fast_neutron_flux]
type = ParsedFunction
value = 2.37417e18
[../]
[./fission_rate]
type = ParsedFunction
value = 1.1135e20 # units of fissions/m**3
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
[../]
[]
[Kernels]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fluence]
type = FastNeutronFluenceAux
variable = fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./fast_neutron_flux]
type = FunctionAux
variable = fast_neutron_flux
function = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fission_rate]
type = FunctionAux
variable= fission_rate
block = fuel
function = fission_rate
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./stress_xy]
type = MaterialTensorAux
tensor = stress
variable = stress_xy
index = 3
execute_on = timestep_end
[../]
[./stress_yz]
type = MaterialTensorAux
tensor = stress
variable = stress_yz
index = 4
execute_on = timestep_end
[../]
[./stress_xz]
type = MaterialTensorAux
tensor = stress
variable = stress_xz
index = 5
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 15
slave = 17
penalty = 1e5
model = frictionless
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 15
slave = 17
initial_moles = initial_moles
gas_released = 'fis_gas_released co_production'
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
[../]
[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
[./no_disp_y]
type = DirichletBC
variable = disp_y
boundary = yzero
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = DirichletBC
variable = temp
boundary = exterior
value = 1608
[../]
# exterior and internal pressures
[./exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
component = 0
factor = 0.1e6
[../]
[./exterior_pressure_y]
type = Pressure
variable = disp_y
boundary = exterior
component = 1
factor = 0.1e6
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 'PyCGapBndry BufferGapBndry'
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = volumeGas
material_input = 'fis_gas_released co_production'
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
temp = temp
thermal_conductivity_model = FINK_LUCUTA
initial_porosity = 0.0
burnup = burnup
[../]
[./fuel_disp]
type = Elastic
block = fuel
temp = temp
youngs_modulus = 2.0e8
poissons_ratio = 0.345
thermal_expansion = 10e-6
[../]
[./fuel_den]
type = Density
block = fuel
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
[../]
[./PyCBuffer]
type = PyCIrradiationStrain
block = buffer
fluence = fluence
pyc_type = buffer
[../]
[./buffer_disp]
type = Elastic
block = buffer
temp = temp
youngs_modulus = 2.0e8
poissons_ratio = 0.345
thermal_expansion = 5.5e-6
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_den]
type = Density
density = 1000.0 #kg/m^3
block = buffer
[../]
[./IPyC_density]
type = PyCIrradiationStrain
block = IPyC
fluence = fluence
pyc_type = dense
[../]
[./IPyC_disp]
type = CreepPyC
block = IPyC
temp = temp
youngs_modulus = 3.96e10
poissons_ratio = 0.33
thermal_expansion = 5.50e-6
flux = fast_neutron_flux
density = 1880.0 # kg/m^3
[../]
[./IPyC_temp]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./IPyC_den]
type = Density
density = 1880.0 # kg/m^3
block = IPyC
[../]
[./SiC_disp]
type = Elastic
block = SiC
temp = temp
youngs_modulus = 3.7e11
poissons_ratio = 0.13
thermal_expansion = 4.9e-6
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_den]
type = Density
density = 3200.0 # kg/m^3
block = SiC
[../]
[./OPyC_density]
type = PyCIrradiationStrain
block = OPyC
fluence = fluence
pyc_type = dense
[../]
[./OPyC_disp]
type = CreepPyC
block = OPyC
temp = temp
youngs_modulus = 3.96e10
poissons_ratio = 0.33
thermal_expansion = 5.50e-6
flux = fast_neutron_flux
density = 1880.0 # kg/m^3
[../]
[./OPyC_temp]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./OPyC_den]
type = Density
density = 1880.0 # kg/m^3
block = OPyC
[../]
[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 20
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-4
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 3.032e7
dtmax = 2e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 10
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./max_xx_IPyC]
type = ElementExtremeValue
variable = stress_xx
block = IPyC
[../]
[./max_yy_IPyC]
type = ElementExtremeValue
variable = stress_yy
block = IPyC
[../]
[./min_zz_IPyC]
type = ElementExtremeValue
variable = stress_zz
block = IPyC
value_type = min
[../]
[./max_xx_SiC]
type = ElementExtremeValue
variable = stress_xx
block = SiC
[../]
[./max_yy_SiC]
type = ElementExtremeValue
variable = stress_yy
block = SiC
[../]
[./min_zz_SiC]
type = ElementExtremeValue
variable = stress_zz
block = SiC
value_type = min
[../]
[./max_xx_OPyC]
type = ElementExtremeValue
variable = stress_xx
block = OPyC
[../]
[./max_yy_OPyC]
type = ElementExtremeValue
variable = stress_yy
block = OPyC
[../]
[./min_zz_OPyC]
type = ElementExtremeValue
variable = stress_zz
block = OPyC
value_type = min
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = 'initial linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = 'initial linear'
[../]
[./volumeTotal]
type = InternalVolume
component = 0
boundary = exterior
execute_on = 'initial timestep_end'
[../]
[./volumeFuel]
type = InternalVolume
component = 0
boundary = fuel
execute_on = 'initial timestep_end'
[../]
[./volumeGas]
type = InternalVolume
component = 0
boundary = BufferGapVol
addition = -5.53e-11
execute_on = 'initial timestep_end'
[../]
[./volumeBufferShell]
type = InternalVolume
component = 0
boundary = BufferGapVol
execute_on = 'initial timestep_end'
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = BufferGapVol
variable = temp
execute_on = 'initial timestep_end'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial timestep_end'
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
execute_on = 'initial timestep_end'
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
execute_on = 'initial timestep_end'
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
execute_on = 'initial timestep_end'
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
execute_on = 'initial timestep_end'
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./chkfile]
type = CSV
execute_on = Final
show = 'co_production fis_gas_released avg_surface_temp'
[../]
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFJ027/SM/BFJ027.i
################################################################################
#
# Description: Calvert Cliffs BFJ027
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFJ027_power.csv
# axial peaking factor file BFJ027_axial_peaking.csv
# flux boundary condition file BFJ027_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10411.07 #94.882 %TD Assume TD = 10972.65 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.28943
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.2e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFJ027_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFJ027_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 177688931 177689291'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 177688931 177689291'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFJ027_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155 # m
i_enrich = '0.0366 .9634 0 0 0 0' # 3.66% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elasticity_and_creep]
type = Elastic #CreepUO2
block = 3
temp = temp
# fission_rate = fission_rate
# cracking_stress = 130e6
# max_cracks = 1
# active_crack_planes = 2
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
# grain_radius = 6.0e-6
# grain_radius = 10.0e-6 # set larger than 6 microns (see ForMas) to impove convergence
# oxy_to_metal_ratio = 2.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.0095631 # fuel pellet diamter in meters
gap = 190.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .029 # turn off relocation
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 177689291
dtmax = 2.5e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
print_linear_residuals = true
perf_graph = true
[./outfile_1]
type = CSV
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_new.i
[GlobalParams]
density = 10431.0
initial_porosity = 0.2
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.9144
pellet_outer_radius = 2.794e-3
pellet_inner_radius = 6.985e-4
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 101.6e-6
clad_thickness = 0.5334e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 1.057
elem_type = QUAD8
nx_c = 4
ny_c = 1000
nx_p = 10
ny_p = 500
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
scaling = 1
[../]
[]
[AuxVariables]
[./fission_rate]
block = pellet
[../]
[./burnup]
block = pellet
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./fraction_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 0.854004932 0.854004932'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 2.99513e+19 2.99513e+19'
[../]
[./axial_power_profile]
type = PiecewiseBilinear
x = '0.0334152 0.09468 0.1559448 0.2162952 0.27756 0.3388248 0.3991752 0.46044 0.5217048 0.5820552 0.64332 0.7045848 0.7649352 0.8262 0.8874648'
y = '0 31858942.74'
z = '5493.43832 7183.727034 29157.48031 34228.34646 37608.92388 40144.35696 41412.07349 42257.21785 41834.64567 39721.78478 37608.92388 33805.77428 28312.33596 4225.721785 2535.433071 5041.338583 6592.519685 26757.87402 31411.41732 34513.77953 36840.55118 38003.93701 38779.52756 38391.73228 36452.75591 34513.77953 31023.62205 25982.28346 3877.952756 2326.771654'
scale_factor = 1
axis = 1
[../]
[./average_power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24264.05646 24264.05646'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.2
axial_power_profile = axial_power_profile
rod_ave_lin_pow = fraction_history
pellet_diameter = 0.005588
execute_on = timestep_begin
pellet_inner_diameter = 0.001397
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
execute_on = timestep_end
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
execute_on = timestep_end
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
execute_on = timestep_end
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
execute_on = timestep_end
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
execute_on = timestep_end
[../]
[./nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vcn_bdr_2
execute_on = timestep_end
[../]
[./atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atm_bbl_bdr
execute_on = timestep_end
[../]
[./vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vcn_bbl_bdr
execute_on = timestep_end
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
execute_on = timestep_end
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
execute_on = timestep_end
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = timestep_end
[../]
[./volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = vol_bbl_bdr
execute_on = timestep_end
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 0.151e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580
inlet_pressure = 0.151e6
inlet_massflux = 1687.43
rod_diameter = 6.858e-3
rod_pitch = 1.7e-2
linear_heat_rate = fraction_history
axial_power_profile = axial_power_profile
coolant_material = sodium
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = 0.2
output_properties = 'thermal_conductivity'
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
outputs = exodus
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = ThermalHT9
block = clad
temp = temp
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.88e11
poissons_ratio = 0.236
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_ht9creep'
block = clad
[../]
[./clad_ht9creep]
type = HT9CreepUpdate
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 1.2e-5
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
fission_rate = fission_rate
grain_radius_const = 10e-06
bubble_gb_limit = 1.0e+11
[../]
[./clad_density]
type = Density
block = clad
density = 7874.0
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[./fast_neutron_flux]
type = GenericFunctionMaterial
block = clad
prop_names = fast_neutron_flux
prop_values = fast_neutron_flux_function
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = fraction_history
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.9144 # rod height
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_2/REP_Na_2_1pt5.i
# REP Na 2 Base Irradiation
[GlobalParams]
displacements = disp_x
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
coord_type = RZ
#type = ReferenceResidualProblem
#solution_variables = 'disp_x temp'
#reference_residual_variables = 'saved_x saved_t'
#acceptable_iterations = 30
#acceptable_multiplier = 10
[]
[Mesh]
type = Layered1DMesh
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
clad_thickness = 0.000637
pellet_outer_radius = 0.0040248
fuel_height = 1.00706
plenum_height = 0.044077
clad_gap_width = 93.0e-6
pellet_bottom_coor = 0.0045
slices_per_block = 10
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 293.15
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = fuel
initial_condition = 5.0e-6
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fuel_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./swelling_strain]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_plastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_plastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_elastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_elastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_htype]
order = CONSTANT
family = MONOMIAL
[../]
[./critical_heat_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./plastic_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./oxywtfract_total]
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = REPNa2_power_history.csv
format = columns
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = REPNa2_axial_peaking.csv
axis = 1
[../]
[./pressure_ramp] # inlet coolant pressure evolution
type = PiecewiseLinear
format = columns
xy_data = '0 101325
8640 13999808
57067200 13999808
57110400 101325
57542410 101325
57542450 500008
57542700 500008
57542800 101325
57542900 101325'
[../]
[./temp_ramp] # inlet coolant temp evolution
type = PiecewiseLinear
format = columns
xy_data = '0 293.15
8640 543.15
57067200 543.15
57110400 293.15
57542410 293.15
57542450 553.15
57542700 553.15
57542800 293.15
57542900 293.15'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./Fuel_CTE_function] #Fuel CTE as a function of temp from MATPRO data
type = PiecewiseLinear
format = columns
xy_data = ' 0 1.000E-05
300 1.000E-05
350 1.000E-05
400 1.000E-05
450 1.000E-05
500 1.001E-05
550 1.002E-05
600 1.003E-05
650 1.005E-05
700 1.008E-05
750 1.011E-05
800 1.015E-05
850 1.020E-05
900 1.026E-05
950 1.032E-05
1000 1.039E-05
1050 1.046E-05
1100 1.053E-05
1150 1.061E-05
1200 1.069E-05
1250 1.077E-05
1300 1.085E-05
1350 1.094E-05
1400 1.102E-05
1450 1.111E-05
1500 1.119E-05
1550 1.127E-05
1600 1.135E-05
1650 1.143E-05
1700 1.151E-05
1750 1.158E-05
1800 1.166E-05
1850 1.173E-05
1900 1.180E-05
1950 1.187E-05
2000 1.193E-05
2050 1.199E-05
2100 1.205E-05
2150 1.211E-05
2200 1.217E-05
2250 1.222E-05
2300 1.227E-05
2350 1.232E-05
2400 1.237E-05
2450 1.242E-05
2500 1.246E-05
2550 1.250E-05
2600 1.254E-05
2650 1.258E-05
2700 1.262E-05
2750 1.265E-05
2800 1.268E-05
2850 1.271E-05
2900 1.274E-05
2950 1.277E-05
3000 1.280E-05
3050 1.282E-05
3100 1.285E-05'
[../]
[./burnup_GWd]
type = ParsedFunction
value = bu*950
vars = 'bu'
vals = 'average_burnup'
[../]
[./clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
fuel_pin_geometry = pin_geometry
[../]
[./fuel_axial_pressure]
type = ParsedFunction
value = plenum_pressure
vars = plenum_pressure
vals = plenum_pressure
[../]
[]
[Modules/TensorMechanics/Layered1DMaster]
[./pellets]
block = fuel
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
out_of_plane_pressure = fuel_axial_pressure
strain = FINITE
use_displaced_mesh = true
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
[../]
[./clad]
block = clad
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
out_of_plane_pressure = clad_axial_pressure
strain = FINITE
use_displaced_mesh = true
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
[../]
[]
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source_fuel] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = fuel
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = fuel
density = 10344.71
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 85
a_upper = 1.0115592
a_lower = 0.0045
fuel_inner_radius = 0
fuel_outer_radius = 0.0040248
fuel_volume_ratio = 1
i_enrich = '0.0685 0.9315 0 0 0 0'
RPF = RPF
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_profile
factor = 3e13 #n/m2-s
block = clad
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
block = clad
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./fuel_conductance]
type = MaterialRealAux
property = thermal_conductivity
variable = fuel_cond
block = fuel
[../]
[./swelling_strain]
type = MaterialRealAux
property = volumetric_swelling_strain
variable = swelling_strain
block = fuel
[../]
[./vonmises_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises_stress
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hoop_stress]
type = RankTwoAux
rank_two_tensor = stress
variable = hoop_stress
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./axial_stress]
type = RankTwoAux
rank_two_tensor = stress
variable = axial_stress
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./hoop_creep_strain]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = hoop_creep_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = clad
[../]
[./axial_creep_strain]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = axial_creep_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = clad
[../]
[./hoop_plastic_strain]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = hoop_plastic_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = clad
[../]
[./axial_plastic_strain]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = axial_plastic_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = clad
[../]
[./total_hoop_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_hoop_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = clad
[../]
[./total_axial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_axial_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = clad
[../]
[./hoop_elastic_strain]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = hoop_elastic_strain
index_i = 2
index_j = 2
execute_on = timestep_end
block = clad
[../]
[./axial_elastic_strain]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = axial_elastic_strain
index_i = 1
index_j = 1
execute_on = timestep_end
block = clad
[../]
[./creep_strain_mag]
type = RankTwoScalarAux
rank_two_tensor = creep_strain
variable = creep_strain_mag
scalar_type = EffectiveStrain
execute_on = timestep_end
[../]
[./plastic_strain_mag]
type = RankTwoScalarAux
rank_two_tensor = plastic_strain
variable = plastic_strain_mag
scalar_type = EffectiveStrain
execute_on = timestep_end
block = clad
[../]
[./clad_coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = clad_coolant_htc
boundary = 2
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = 2
[../]
[./clad_coolant_flux]
type = MaterialRealAux
property = output_heat_flux
variable = clad_coolant_flux
boundary = 2
[../]
[./coolant_channel_hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = coolant_channel_hmode
boundary = 2
[../]
[./coolant_channel_htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = coolant_channel_htype
boundary = 2
[../]
[./critical_heat_flux]
type = MaterialRealAux
property = critical_heat_flux
variable = critical_heat_flux
boundary = 2
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[./ofract_total]
type = MaterialRealAux
property = current_oxygen_weight_frac_total
variable = oxywtfract_total
execute_on = timestep_end
boundary = 2
[../]
[./ofgain_total]
type = MaterialRealAux
property = oxygen_weight_frac_gained_total
variable = oxywtfgain_total
execute_on = timestep_end
boundary = 2
[../]
[./fract_bphase]
type = MaterialRealAux
property = fract_beta_phase
variable = fract_beta_phase
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
formulation = penalty
normalize_penalty = true
model = frictionless
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2.0e-6
roughness_clad = 0.5e-6
roughness_coef = 3.2
quadrature = true
emissivity_fuel = 0.797698 #Emissivity for fuel
emissivity_clad = 0.325 #Emissivity for clad
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 57456000
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = 2
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_temperature = 293.15
initial_pressure = 1.70e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior #plenumTemp
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
refab_time = 57456000
refab_pressure = 0.1e6
refab_temperature = 293.15
refab_volume = 2.3e-6
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface_water] # apply convective boundary to clad outer surface
boundary = 2
variable = temp
inlet_temperature = temp_ramp # K
inlet_pressure = pressure_ramp # Pa
inlet_massflux = 1779 # kg/m^2-sec
rod_diameter = 0.0095096 # m
rod_pitch = 1.265e-2 # m
#linear_heat_rate = power_profile
#axial_power_profile = axial_peaking_factors
coolant_material = 'water'
compute_enthalpy = true
oxide_thickness = oxide_thickness # coupled oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
density = 10344.71
block = fuel
[../]
[./fuel_thermal]
type = ThermalFuel
block = fuel
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.057
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./fuel_thermal_expansion]
type = ComputeInstantaneousThermalExpansionFunctionEigenstrain
block = fuel
thermal_expansion_function = Fuel_CTE_function
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup_function = burnup
diameter = 0.0080496 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 186.0e-6 #diametral gap in m
relocation_activation1 = 5000
burnup_relocation_stop = 0.024
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = fuel
temperature = temp
burnup_function = burnup
initial_fuel_density = 10344.71
total_densification = 0.00676
initial_porosity = 0.057
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
burnup_function = burnup
initial_porosity = 0.057
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6550
[../]
[./clad_thermal]
type = ThermalZry
block = clad
temp = temp
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
cold_work_factor = 0.5
fast_neutron_fluence = fast_neutron_fluence
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep clad_zryplasticity'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
max_inelastic_increment = 1.0e-4
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_zryplasticity]
type = ZryPlasticityUpdate
block = clad
cold_work_factor = 0.5
max_inelastic_increment = 1.0e-4
fast_neutron_fluence = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
plasticity_model_type = MATPRO
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0041178
clad_outer_radius = 0.0047549
use_coolant_channel = true
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_phase]
type = ZrPhase
block = clad
numerical_method = 2
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
max_value = 3200 # The maximum permissible iterative value for the variable.
min_value = 200 # The minimum permissible iterative value for the variable.
variable = temp # The name of the variable that this damper operates on
[../]
[./contact_slip]
type = ContactSlipDamper
master = 5
slave = 10
min_damping_factor = 0.05
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type'
petsc_options_value = ' lu'
line_search = 'none'
l_max_its = 100
l_tol = 1e-3
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = 0
end_time = 57542400
dtmax = 1e6
dtmin = 1e-7
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e3
optimal_iterations = 10
iteration_window = 4
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
max_function_change = 1e6
force_step_every_function_point = true
timestep_limiting_postprocessor = material_timestep_control
time_t = '57542410 57542420 57542430 57542440 57542450 57542460 57542470 57542480'
time_dt = '10 10 10 10 10 10 10 10'
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
execute_on = 'initial linear'
fuel_pin_geometry = pin_geometry
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = LayeredSideAverageValuePostprocessor
boundary = 7
variable = temp
fuel_pin_geometry = pin_geometry
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./clad_inner_vol]
type = LayeredInternalVolumePostprocessor
boundary = 7
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
execute_on = 'initial linear'
[../]
[./pellet_volume]
type = LayeredInternalVolumePostprocessor
boundary = 8
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
execute_on = 'initial linear'
[../]
[./gas_volume] # gas volume
type = LayeredInternalVolumePostprocessor
boundary = 9
execute_on = 'initial linear'
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./flux_from_clad]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 5
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_fuel]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 1.05114 # rod height
[../]
[./average_burnup]
type = ElementAverageValue
block = fuel
variable = burnup
[../]
[./burnup_GWd]
type = FunctionValuePostprocessor
function = burnup_GWd
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = fuel
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
[./material_timestep_control]
type = MaterialTimeStepPostprocessor
block = clad
[../]
## Nodal values
[./FCT] #fuel centerline temperature
type = NodalVariableValue
variable = temp
nodeid = 264 #(0, 0.558383, 0)
[../]
[./FST] #fuel surface temperature
type = NodalVariableValue
variable = temp
nodeid = 295 #(0.0040248, 0.558383, 0)
[../]
[./CIST] #clad inner surface temperature
type = NodalVariableValue
variable = temp
nodeid = 45 #(0.0041178, 0.558383, 0)
[../]
[./COST] #clad outer surface temperature
type = NodalVariableValue
variable = temp
nodeid = 52 #(0.0047548, 0.558383, 0)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 295 #(0.0040248, 0.558383, 0)
use_displaced_mesh = true
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 295 #(0.0040248, 0.558383, 0)
use_displaced_mesh = true
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_clad_diameter'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_pellet_diameter'
[../]
[./ox_thick]
type = SideValueSampler
variable = oxide_thickness
boundary = 2
sort_by = y
outputs = 'outfile_oxide_thickness'
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
interval = 1
csv = true
#exodus = true
color = false
[./outfile_clad_diameter]
type = CSV
#execute_on = 'FINAL'
sync_times = '57542400 57542900'
sync_only = true
[../]
[./outfile_pellet_diameter]
type = CSV
#execute_on = 'FINAL'
sync_times = '57542400 57542900'
sync_only = true
[../]
[./outfile_oxide_thickness]
type = CSV
#execute_on = 'FINAL'
sync_times = '57542400 57542900'
sync_only = true
[../]
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
sync_times = '57542400'
sync_only = true
[../]
[./chkfile]
type = CSV
show = 'ave_temp_interior fis_gas_released FCT average_burnup'
execute_on = 'FINAL'
[../]
[./exodus]
type = Exodus
interval = 4
[../]
[]
[Debug]
show_var_residual = 'disp_x temp'
show_var_residual_norms = true
show_material_props = true
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM073/SM/BFM073.i
################################################################################
#
# Description: Calvert Cliffs BFM073
#
#
#
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFM073_power.csv
# axial peaking factor file BFM073_axial_peaking.csv
# flux boundary condition file BFM073_fast_flux.csv
################################################################################
[GlobalParams]
density = 10386.93 #94.662 %TD Assume TD = 10972.65 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.31914
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 3.85e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFM073_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFM073_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 179191453 179191813'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 179191453 179191813'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFM073_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elasticity_and_creep]
type = Elastic #CreepUO2
block = 3
temp = temp
# fission_rate = fission_rate
# cracking_stress = 130e6
# max_cracks = 1
# active_crack_planes = 2
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
# grain_radius = 6.0e-6
# grain_radius = 10.0e-6 # set larger than 6 microns (see ForMas) to impove convergence
# oxy_to_metal_ratio = 2.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.0095631 # fuel pellet diamter in meters
gap = 190.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .029 # turn off relocation
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 179191813
# dtmax = 1e6
dtmax = 2.5e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Riso_II5/analysis/Riso_II5.i
[GlobalParams]
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = Riso_II5_insulator_pellets.e
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
patch_update_strategy = auto
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = 'clad'
[../]
[./fast_neutron_fluence]
block = 'clad'
[../]
[./grain_radius]
block = 'pellet_type_2 pellet_type_3'
initial_condition = 4.992e-6 # 2D grain radius 3.2e-6
[../]
[./effective_creep_strain]
block = 'clad'
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fuel_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = riso_II5_power_history.csv
format = columns
scale_factor = 1.031
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = riso_II5_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 174891600 174978000 174981600 174986520 175255020 175258620'
y = '0.014028 0.44444 0.44444 0.014028 0.014028 1 1 0.014028'
[../]
[./flux]
type = PiecewiseLinear
data_file = riso_II5_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = riso_II5_clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 'pellet_type_2 pellet_type_3'
strain = FINITE
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain fuel_volumetric_swelling_eigenstrain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz'
[../]
[./insulator_pellets]
block = 'pellet_type_1 pellet_type_4'
strain = FINITE
eigenstrain_names = 'insulator_fuel_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
[../]
[./clad]
block = 'clad'
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_growth_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = 'pellet_type_2 pellet_type_3'
burnup_function = burnup
fraction = 0.97
[../]
[]
[Burnup]
[./burnup]
block = 'pellet_type_2 pellet_type_3'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
density = 10369.65 # assumed TD = 10950
num_radial = 80
num_axial = 11
a_upper = 0.29883
a_lower = 0.011
fuel_inner_radius = 0
fuel_outer_radius = 0.00632
fuel_volume_ratio = 0.99435997
i_enrich = '0.05078 0.94922 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
axial_power_profile = axial_peaking_factors
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 'pellet_type_2 pellet_type_3'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 'clad'
execute_on = timestep_end
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./fuel_conductance]
type = MaterialRealAux
property = thermal_conductivity
variable = fuel_cond
block = 'pellet_type_2 pellet_type_3'
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 5e9
formulation = penalty
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 174980000
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.2e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 9e4 #changes to 6.41e5 for bump tests
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenumTemp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 174980000 #174796490
refab_pressure = 6.41e5
refab_temperature = 273
refab_volume = 8.68e-6
displacements = 'disp_x disp_y'
[../]
[../]
[]
[PlenumTemperature]
[./plenumTemp]
boundary = 9
inner_surfaces = '20 10 21'
outer_surfaces = '4 5 6'
temp = temp
[../]
[]
[Materials]
[./insulator_pellet_elasticity]
type = ComputeIsotropicElasticityTensor
block = 'pellet_type_1 pellet_type_4'
youngs_modulus = 375e9
poissons_ratio = 0.22
[../]
[./insulator_pellet_stress]
type = ComputeFiniteStrainElasticStress
block = 'pellet_type_1 pellet_type_4'
[../]
[./inusulator_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = 'pellet_type_1 pellet_type_4'
stress_free_temperature = 293.0
temperature = temp
thermal_expansion_coeff = 8.4e-6
eigenstrain_name = 'insulator_fuel_thermal_eigenstrain'
[../]
[./density_insulator_pellets]
type = Density
block = 'pellet_type_1 pellet_type_4'
density = 3890
[../]
[./thermal_insulator_pellets]
type = HeatConductionMaterial
block = 'pellet_type_1 pellet_type_4'
thermal_conductivity = 35
specific_heat = 880
[../]
[./fuel_elasticity]
type = UO2ElasticityTensor
block = 'pellet_type_2 pellet_type_3'
temperature = temp
density = 10369.65
[../]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
block = 'pellet_type_2 pellet_type_3'
[../]
[./fuel_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = 'pellet_type_2 pellet_type_3'
stress_free_temperature = 293.0
temperature = temp
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./swelling]
type = UO2VolumetricSwellingEigenstrain
block = 'pellet_type_2 pellet_type_3'
burnup_function = burnup
initial_fuel_density = 10369.65
temperature = temp
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 'pellet_type_2 pellet_type_3'
diameter = 0.01264
gap = 0.00021 #diametral gap in m
burnup_function = burnup
burnup_relocation_stop = 6.6525e-3
relocation_activation1 = 5000
linear_heat_rate_function = q
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = 'pellet_type_2 pellet_type_3'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[./density_fuel]
type = Density
block = 'pellet_type_2 pellet_type_3'
density = 10369.65
[../]
[./fuel_thermal]
type = ThermalFuel
block = 'pellet_type_2 pellet_type_3'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
temperature = temp
zircaloy_material_type = stress_relief_annealed
[../]
[./clad_multiple_stress]
type = ComputeMultipleInelasticStress
block = clad
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_thermal_eigenstrain]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 293.0
temperature = temp
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./density_clad]
type = Density
block = clad
density = 6550
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 175258620
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 'pellet_type_2 pellet_type_3'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 'pellet_type_2 pellet_type_3'
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./_dt]
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = 'pellet_type_2 pellet_type_3'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 'pellet_type_2 pellet_type_3'
[../]
[./TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 2864 #Global node ID 2865 1.5 pellet lengths above bottom of TC hole
[../]
[./average_burnup]
type = ElementAverageValue
block = 'pellet_type_2 pellet_type_3'
variable = burnup
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 'pellet_type_2 pellet_type_3'
temperature = temp
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage TC_temp rod_total_power'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
examples/experimental_design/3D_asbuiltCCM/simulation/Alloy33/final_1.i
[GlobalParams]
density = 10431.0
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
displacements = 'disp_x disp_y disp_z'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
[./file_mesh]
type = FileMeshGenerator
file = geAlloy33_1.e
[../]
[./scale] # Convert CUBIT geometry (built in 100x inches) into meters.
type = TransformGenerator
transform = SCALE
vector_value = '2.54e-4 2.54e-4 2.54e-4'
input = file_mesh
[../]
dim = 3
patch_size = 1000 # For contact algorithm
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./T]
initial_condition = 300
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 8.64E+04 3.46E+05 4.32E+05 777600 864000 2332800 3801600 5097600 5184000 8985600 9072000 10627200 12182400 13564800 13651200 18057600 18144000 19699200 21254400 22636800 22723200 25920000 26006400 27388800 28771200'
y = '0 29100.13691 2.91E+04 0 0 28765.65338 27821.9286 27415.44121 27415.44121 0 0 27494.58176 26612.85703 26149.9983 26149.9983 0 0 33820.63602 32566.74267 31819.53594 31819.53594 0 0 33065.95692 31851.27402 31230.11945'
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = '1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./initial_power_ramp]
type = PiecewiseLinear
x = '0 8.64e4'
y = '0 1'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-400 0'
y = '0 1'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = T
block = 3
fission_rate = fission_rate
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = T
[../]
[./heat_source_clad]
type = NeutronHeatSource
variable = T
block = 2
fission_rate = gamma_heating_clad
[../]
[./heat_source_cap]
type = NeutronHeatSource
variable = T
block = 1
fission_rate = gamma_heating_cap
[../]
[]
[BCs]
[./convective_capsule_surface]
type = ConvectiveFluxBC
boundary = 1
variable = T
rate = 45800.0 # convection coefficient (h)
initial = 325 # initial coolant temp
final = 325 # coolant temperature following initial power ramp
duration = 0.0 # duration of initial power ramp
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = 1
factor = 2.4e6
function = pressure_ramp
[../]
[../]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = '102 105 108 100 101 103 104 106 107 20 21'
value = 0.0
[../]
[./no_y_all]
type = DirichletBC
variable = disp_y
boundary = '100 101 103 104 106 107 20 21'
value = 0.0
[../]
[./no_z_all]
type = DirichletBC
variable = disp_z
boundary = '100 103 106'
value = 0.0
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 13
initial_pressure = 1e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
output = capsule_pressure
displacements = 'disp_x disp_y disp_z'
[../]
[./plenumPressure1]
boundary = 12
initial_pressure = 1e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles1
temperature = ave_temp_interior1
volume = gas_volume1
material_input = fis_gas_released1
output = plenum_pressure1
displacements = 'disp_x disp_y disp_z'
[../]
[../]
[]
[SolidMechanics]
[./solid]
temp = T
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 50
a_lower = 5.17269685344284e-05
a_upper = 0.0949369541451446
fuel_inner_radius = 0
fuel_outer_radius = 0.00410464
[../]
[]
[AuxKernels]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./stress_xy]
type = MaterialTensorAux
tensor = stress
variable = stress_xy
index = 3
execute_on = timestep_end
[../]
[./stress_yz]
type = MaterialTensorAux
tensor = stress
variable = stress_yz
index = 4
execute_on = timestep_end
[../]
[./stress_xz]
type = MaterialTensorAux
tensor = stress
variable = stress_xz
index = 5
execute_on = timestep_end
[../]
[./conductance_fuel]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 5
[../]
[./conductance_gap]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 3
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = T
execute_on = linear
[../]
[./gamma_heating_clad]
type = FissionRateAux
variable = gamma_heating_clad
block = 2
value = 2e18
function = initial_power_ramp
[../]
[./gamma_heating_cap]
type = FissionRateAux
variable = gamma_heating_cap
block = 1
value = 2e18
function = initial_power_ramp
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
factor = 9.7e17 # n/m^2-sec from ATR user guide for other flux traps
[../]
[]
[AuxVariables]
[./fission_rate]
block = 3
[../]
[./grain_radius]
block = 3
initial_condition = 10e-6
[../]
[./gamma_heating_clad]
block = 2
[../]
[./gamma_heating_cap]
block = 1
[../]
[./burnup]
block = 3
[../]
[./fast_neutron_flux]
order = FIRST
family = LAGRANGE
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
# [./coolant_htc]
# order = CONSTANT
# family = MONOMIAL
# [../]
[]
[ThermalContact]
[./thermal_contact_fuel]
type = GapHeatTransferLWR
variable = T
master = 4 # clad inner
slave = 5 # fuel outer
jump_distance_model=KENNARD
plenum_pressure=plenum_pressure1 #required for KENNARD
emissivity_fuel=0.85
emissivity_clad=0.85
roughness_fuel=8e-7
roughness_clad=8e-7
roughness_coef=3.2
contact_pressure = contact_pressure
initial_gas_fractions= '1 0 0 0 0 0 0 0 0 0'
quadrature = true
[../]
[./thermal_contact_capsule]
type = GapHeatTransferLWR
variable = T
master = 2 # capsule inner
slave = 3 # clad outer
jump_distance_model=KENNARD
plenum_pressure=capsule_pressure #required for KENNARD
emissivity_fuel=0.85
emissivity_clad=0.85
roughness_fuel=4e-7
roughness_clad=8e-7
roughness_coef=3.2
contact_pressure = contact_pressure
quadrature = true
[../]
[./fuel_clad_bottom_contact]
type = GapHeatTransferLWR
variable = T
master = 31 # capsule inner
slave = 30 # clad outer
jump_distance_model=KENNARD
plenum_pressure=capsule_pressure #required for KENNARD
emissivity_fuel=0.85
emissivity_clad=0.85
roughness_fuel=8e-7
roughness_clad=8e-7
roughness_coef=3.2
contact_pressure = contact_pressure
initial_gas_fractions= '1 0 0 0 0 0 0 0 0 0'
quadrature = true
[../]
[]
[Contact]
[./fuel_clad_mechanical]
master = 4
slave = 5
formulation = penalty
penalty = 1e7
tangential_tolerance = 1e-2
normal_smoothing_distance = 0.1
[../]
[./cap_clad_mechanical]
master = 2
slave = 3
formulation = penalty
penalty = 1e7
tangential_tolerance = 1e-2
normal_smoothing_distance = 0.1
[../]
[./fuel_clad_bottom_mechanical]
master = 31
slave = 30
formulation = penalty
penalty = 1e7
tangential_tolerance = 1e-2
normal_smoothing_distance = 0.1
[../]
[]
[Materials]
# --- CLADDING ----
[./clad]
type = ThermalAlloy33
block = 2
temp = T
[../]
[./clad_density]
type = Density
block = 2
density = 7900
[../]
[./clad_disp]
type = MechAlloy33
block = 2
temp = T
youngs_modulus = 195
poissons_ratio = 0.31
[../]
# --- FUEL ----
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
temp = T
burnup = burnup
thermal_conductivity_model = FINK_LUCUTA
initial_porosity = 0.05
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_disp]
type = Elastic
block = 3
temp = T
youngs_modulus = 2.e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = MATPRO
block = 3
temp = T
burnup = burnup
[../]
[./fission_gas_release] # Forsberg-Massih fission gas release mode
type = Sifgrs
block = 3
temp = T
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius = grain_radius
gbs_model = true
[../]
# --- CAPSULE ----
[./capsule]
type = Thermal316
block = 1
temp = T
[../]
[./capsule_density]
type = Density
block = 1
density = 7980
[../]
[./cap_disp]
type = MechSS316
block = 1
youngs_modulus = 1.93e11
poissons_ratio = 0.31
temp = T
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 10
variable = T
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-ksp_gmres_modifiedgramschmidt'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_composite_pcs -sub_0_pc_hypre_type -sub_0_pc_hypre_boomeramg_max_iter -sub_0_pc_hypre_boomeramg_grid_sweeps_all -sub_1_sub_pc_type -pc_composite_type -ksp_type -mat_mffd_type -pc_hypre_boomeramg_strong_threshold'
petsc_options_value = '201 composite hypre,asm boomeramg 2 2 lu multiplicative fgmres ds 0.7'
# petsc_options = '-snes_linesearch_monitor'
# petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter -pc_hypre_boomeramg_strong_threshold'
# petsc_options_value = '201 hypre boomeramg 4 0.7'
scheme = bdf2
l_max_its = 100
l_tol = 1e-3
nl_max_its = 15
nl_rel_tol = 1e-3
nl_abs_tol = 1e-8
start_time = -400
end_time = 864000
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 400
optimal_iterations = 8
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 13
variable = T
[../]
[./ave_temp_interior1]
type = SideAverageValue
boundary = 12
variable = T
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 15
outputs = exodus
[../]
[./pellet_volume]
type = InternalVolume
boundary = 14
outputs = exodus
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 15
variable = T
[../]
[./_dt]
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = T
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.0
[../]
[./average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_history
[../]
[./peak_clad_temp]
type = NodalMaxValue
variable = T
block = 2
[../]
[./PostProcessorBurnup]
type = ElementAverageValue
variable = burnup
block = 3
[../]
[./fis_gas_produced1]
type = ElementIntegralFisGasGeneratedSifgrs
block = 3
[../]
[./fis_gas_released1]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 13 #capsule_inner
[../]
[./gas_volume1] # gas volume
type = InternalVolume
boundary = 12 #rodlet_inner
[../]
[]
[Outputs]
perf_graph = true
exodus = true
sync_times = '0 8.64E+04 3.46E+05 4.32E+05 777600 864000 2332800 3801600 5097600 5184000 8985600 9072000 10627200 12182400 13564800 13651200 18057600 18144000 19699200 21254400 22636800 22723200 25920000 26006400 27388800 28771200'
[]
assessment/LWR/validation/IFA_431/analysis/rod1/IFA_431_rod1.i
[GlobalParams]
density = 10431 # initial fuel density 95% of theoretical (10980 kg/m3)
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa_431_rod1_fine.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 513.3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4 5'
initial_condition = 3.5e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = bol_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factor]
type = PiecewiseBilinear
data_file = bol_axial.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.029395 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factor'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[Modules/TensorMechanics/Master]
[./fuel]
block = '3 4 5'
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = '3 4 5'
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
factor = 1.6e12 #(n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4 5'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hydrostatic_stress]
block = '3'
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = hydrostatic
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = '3 4 5'
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
num_radial = 81
num_axial = 21
a_lower = 0.01494
a_upper = 0.58644
fuel_inner_radius = 0.00
fuel_outer_radius = 0.005339
fuel_volume_ratio = 0.992245
i_enrich = '0.1 .9 0 0 0 0' # 10% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_fuel = 2.16e-6
roughness_clad = 6.35e-7
roughness_coef = 3.2
quadrature = true
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = PresetBC
boundary = '1 2 3'
variable = temp
value = 513.3
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0135e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = '3 4 5'
thermal_conductivity_model = NFIR
initial_porosity = 0.05
temp = temp
burnup_function = burnup
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4 5'
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = '3 4 5'
temperature = temp
[../]
[./fuel_elasticity_and_creep]
type = ComputeThermalExpansionEigenstrain
block = '3 4 5'
temperature = temp
stress_free_temperature = 297
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4 5'
burnup_function = burnup
diameter = 1.0678e-2
gap = 230.0e-6
linear_heat_rate_function = q
burnup_relocation_stop = 0.00821
relocation_activation1 = 5000
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_inelastic_stressUpdate] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type =stress_relief_annealed
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
temperature = temp
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
[../]
[./clad_inelastic_stress] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = clad_inelastic_stressUpdate
[../]
[./clad_thermal_eigenstrain] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ComputeThermalExpansionEigenstrain
block = 1
temperature = temp
stress_free_temperature = 297
eigenstrain_name = 'clad_thermal_eigenstrain'
thermal_expansion_coeff = 5.0e-6
[../]
[./clad_irradiation_eigenstrain] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '3 4 5'
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4 5'
burnup = burnup
temperature = temp
initial_fuel_density = 10431
total_densification = .0043
#incremental_form = true
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4 5'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 80
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# Time steps set up to match halden data
n_startup_steps = 1
start_time = 0
end_time = 50400
[./TimeStepper]
type = ConstantDT
dt = 900
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3 4 5'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4 5'
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3 4 5'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
block = '3 4 5'
burnup_function = burnup
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4 5'
outputs = exodus
[../]
[./power_lower_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.075265 0'
[../]
[./power_upper_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.50389 0'
[../]
[./upper_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 9080 # paraview global node id 9081
[../]
[./lower_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 2750 # paraviw global node id 2751
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = TENSOR
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'fission_gas_released rod_total_power upper_TC_temp lower_TC_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'temp disp_x disp_y'
show_var_residual_norms = true
[]
assessment/MOX/JOYO/MK-I/analysis/MK-I_50MW_master_new_bubble_gb_lim.i
[GlobalParams]
density = 10836.8
initial_porosity = 0.065
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.6
pellet_outer_radius = 0.0027
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000100
clad_thickness = 0.00035
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 0.599
elem_type = QUAD8
nx_c = 4
ny_c = 200
nx_p = 20
ny_p = 200
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
[../]
[]
[AuxVariables]
[./pore]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fission_rate]
block = pellet
[../]
[./burnup]
block = pellet
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
[../]
[]
[Functions]
[./power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = '0 70000 17153028'
y = '0 25577 25577'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 70000 17153028'
y = '0 1.2e+19 1.2e+19'
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
x = '0 0.071 0.146 0.221 0.296 0.37 0.443 0.566'
y = '0 17153028'
z = '0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672 0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672'
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./average_power_history]
type = PiecewiseLinear
x = '0 70000 17153028'
y = '0 21000 21000'
[../]
[./clad_surface_temp]
type = PiecewiseBilinear
x = '0 0.075 0.15 0.225 0.3 0.375 0.45 0.525 0.6'
y = '0 17153028'
z = '295 295 295 295 295 295 295 295 295 499.9 509.1 517.8 525.42 532.71 540.29 547.7 552.3 554.81'
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.065
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
execute_on = timestep_end
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
execute_on = timestep_end
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
execute_on = timestep_end
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
execute_on = timestep_end
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
execute_on = timestep_end
[../]
[./nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vcn_bdr_2
execute_on = timestep_end
[../]
[./atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atm_bbl_bdr
execute_on = timestep_end
[../]
[./vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vcn_bbl_bdr
execute_on = timestep_end
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
execute_on = timestep_end
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
execute_on = timestep_end
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = timestep_end
[../]
[./volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = vol_bbl_bdr
execute_on = timestep_end
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = fast_neutron_flux_function
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = '12'
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp_clad_out]
type = FunctionPresetBC
variable = temp
boundary = '2'
function = clad_surface_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 101325
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 300000
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10836.8
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = Thermal316
block = clad
temp = temp
[../]
[./clad_density]
type = Density
block = clad
density = 8000
[../]
[./clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
diff_coeff_option = 4
fission_rate = fission_rate
grain_radius_const = 8.01e-6 #I'm keeping the grain radius const because the grain growth in MOX is probably different due to high Temp
bubble_gb_limit = 1.0e+11
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
picard_abs_tol = 1e-5
picard_rel_tol = 1e-5
picard_max_its = 1
l_max_its = 70
l_tol = 8e-3
nl_max_its = 70
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = 0
n_startup_steps = 1
end_time = 17153028
dtmax = 1e6
dtmin = 0.25
[./TimeStepper]
type = IterationAdaptiveDT
dt = 5000
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.6 # rod height
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./ave_pore]
type = ElementAverageValue
variable = pore
[../]
[./max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[../]
[./min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[../]
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = MK-I_50MW_sub_new_bubble_gb_lim.i
[../]
[]
[Transfers]
[./temp_to_sub]
type = MultiAppProjectionTransfer
direction = to_multiapp
multi_app = sub
source_variable = temp
variable = temp
[../]
[./pore_from_sub]
type = MultiAppInterpolationTransfer
direction = from_multiapp
multi_app = sub
source_variable = pore
variable = pore
[../]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temp disp_x disp_y'
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM034/TM/BFM034_tm.i
################################################################################
#
# Description: Calvert Cliffs BFM034
#
#
#
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFM034_power.csv
# axial peaking factor file BFM034_axial_peaking.csv
# flux boundary condition file BFM034_fast_flux.csv
################################################################################
[GlobalParams]
density = 10386.93 #94.662 %TD Assume TD = 10972.65 kg/cm3
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.31392
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 3.85e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFM034_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFM034_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 179410295 179410655'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 179410295 179410655'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFM034_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155 # m
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0095631 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 190.5e-6 #diametral gap in m
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10386.93
total_densification = 0.01
initial_porosity = 0.05
eigenstrain_name = fuel_volumetric_strain
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 179410655
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
examples/tensor_mechanics/accident_tolerant_fuel/uo2_coated_zircaloy.i
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temperature'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
dim = 2
clad_top_gap_height = 0.026
pellet_height = 0.1186
pellet_quantity = 1
clad_bot_gap_height = 0
pellet_outer_radius = 4.1e-3
clad_gap_width = 80e-6
clad_thickness = 0.57e-3
coating_thickness = 40e-6
clad_mesh_density = customize
pellet_mesh_density = customize
nx_c = 3
ny_c = 40
nx_p = 11
ny_p = 40
nx_coating = 2
elem_type = QUAD8
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temperature]
initial_condition = 293.0
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
clad_inner_wall = 5
clad_outer_wall = 2
clad_top = 3
clad_bottom = 1
pellet_exteriors = 8
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet
initial_condition = 10e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-200 0 1e8'
y = '6.537e-3 1 1'
scale_factor = 15.5e6
[../]
[./mass_flux_func]
type = PiecewiseLinear
x = '-200 0 1e8'
y = '3800. 3800. 3800.'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./coating]
block = coating
add_variables = true
strain = FINITE
eigenstrain_names = 'coating_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
save_in = saved_y
[../]
[./heat]
type = HeatConduction
variable = temperature
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
block = pellet
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = pellet
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
fuel_pin_geometry = pin_geometry
fuel_volume_ratio = 1.0
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temp = temperature
execute_on = linear
[../]
[./hoop_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hoop_stress
scalar_type = HoopStress
execute_on = timestep_end
[../]
[./total_hoop_strain]
type = RankTwoScalarAux
rank_two_tensor = total_strain
variable = total_hoop_strain
scalar_type = HoopStress
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = RankTwoScalarAux
rank_two_tensor = creep_strain
variable = creep_strain_hoop
scalar_type = HoopStress
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = constraint
normal_smoothing_distance = 0.1
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temperature
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temperature
inlet_temperature = 580
inlet_pressure = pressure_ramp
inlet_massflux = mass_flux_func
rod_diameter = 9.54e-3
rod_pitch = 1.26e-2
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
# Fuel
[./fuel_thermal]
type = ThermalFuel
block = pellet
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./elastic_stress]
type = ComputeSmearedCrackingStress
block = pellet
cracking_stress = 1.68e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = pellet
burnup_function = burnup
temperature = temperature
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet
burnup_function = burnup
linear_heat_rate_function = q
fuel_pin_geometry = 'pin_geometry'
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_thermal_expansion]
type = UO2ThermalExpansionMATPROEigenstrain
block = pellet
temperature = temperature
stress_free_temperature = 295.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temperature
burnup_function = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temperature
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./fuel_density]
type = Density
block = pellet
[../]
# Clad
[./clad_thermal]
type = ThermalZry
temp = temperature
block = clad
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 7.5e10
poissons_ratio = 0.3
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep clad_plasticity'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
max_inelastic_increment = 1e-4
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temperature
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_plasticity]
type = ZryPlasticityUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
plasticity_model_type = MATPRO
zircaloy_alloy_type = 4
[../]
[./clad_density]
type = Density
block = clad
density = 6511.0
[../]
# Coating
[./coat_thermal]
type = ThermalChromium
block = coating
temperature = temperature
[../]
[./coating_elasticity_tensor]
type = ChromiumElasticityTensor
temperature = temperature
block = coating
[../]
[./coat_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'coat_creep coat_plasticity'
block = coating
[../]
[./coat_creep]
type = ChromiumCreepUpdate
temperature = temperature
block = coating
[../]
[./coat_plasticity]
type = ChromiumPlasticityUpdate
temperature = temperature
block = coating
fast_neutron_fluence = 0.0
hardening_constant = 2e9
[../]
[./coat_thermal_expansion]
type = ChromiumThermalExpansionEigenstrain
block = coating
temperature = temperature
stress_free_temperature = 293.0
eigenstrain_name = coating_thermal_eigenstrain
[../]
[./density_coat]
type = Density
block = coating
density = 7190.0
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
max_value = 3200.0
min_value = 293.0
variable = temperature
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 5e7
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2.0e2
force_step_every_function_point = true
timestep_limiting_function = power_history
max_function_change = 5e5
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2.0
timestep_limiting_postprocessor = material_timestep
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temperature
execute_on = 'initial linear'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temperature
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./_dt]
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = pellet
[../]
[./alhr_input]
type = FunctionValuePostprocessor
function = power_history
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[../]
[./oxide_thickness]
type = ElementExtremeValue
block = clad
variable = oxide_thickness
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
[../]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = clad
[../]
[]
[Outputs]
perf_graph = true
interval = 1
exodus = true
csv = true
print_linear_residuals = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[]
examples/tensor_mechanics/2D-RZ_rodlet_10pellets/Smeared_sm_smallStrain.i
# Model is of a 10 pellet stack of smeared fuel (pellet_type_2).
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
initial_porosity = 0.05
disp_x = disp_x
disp_y = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
# Import mesh file
file = smeared.e
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
# Define dependent variables and initial conditions
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors12.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
# Specify that we need solid mechanics (divergence of stress)
[./solid]
disp_r = disp_x
disp_z = disp_y
save_in_disp_r = saved_x
save_in_disp_z = saved_y
temp = temp
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 0.00324 # mesh dependent
a_upper = 0.12184 # mesh dependent
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 1.0 # for use with dished pellets (ratio of actual volume to cylinder volume)
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain
block = clad
execute_on = timestep_end
[../]
[./creep_strain_rate]
type = MaterialRealAux
property = creep_rate
variable = creep_strain_rate
block = clad
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
quadrature = true
contact_pressure = contact_pressure
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = pellet_type_1
temp = temp
burnup_function = burnup
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (BISON kernel)
type = Elastic
block = pellet_type_1
disp_r = disp_x
disp_z = disp_y
temp = temp
dep_matl_props = deltav_v0_bd
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
formulation = AxisymmetricRZ
stress_free_temperature = 295.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = 0.0082
q = q
gap = 160e-6 # diametral gap
burnup_relocation_stop = 0.024
relocation_activation1 = 5000
[../]
[./clad_thermal] # general thermal property input
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr4 (BISON kernel)
type = MechZry
block = clad
disp_r = disp_x
disp_z = disp_y
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
stress_free_temperature = 295.0
formulation = AxisymmetricRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
# PETSC options:
# petsc_options
# petsc_options_iname
# petsc_options_value
#
# controls for linear iterations
# l_max_its
# l_tol
#
# controls for nonlinear iterations
# nl_max_its
# nl_rel_tol
# nl_abs_tol
#
# time control
# start_time
# dt
# optimal_iterations
# iteration_window
# linear_iteration_ratio
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./centerline_temp]
type = SideAverageValue
boundary = 12
variable = temp
execute_on = linear
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
# outputs = exodus
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
# outputs = exodus
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fisson_gas_release]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = linear
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./_dt] # time step
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[../]
[./mid_penetration]
type = NodalVariableValue
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
variable = penetration
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temp
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
[../]
[./center_vonMises_fuel]
type = ElementalVariableValue
elementid = 165 # mesh dependent
variable = vonmises
[../]
[./center_hoop_clad]
type = ElementalVariableValue
elementid = 425 # mesh dependent
variable = stress_zz
[../]
[./center_effective_creep_strain_inner]
type = ElementalVariableValue
elementid = 425 # mesh dependent
variable = creep_strain
[../]
[./center_effective_creep_strain_outer]
type = ElementalVariableValue
elementid = 422 # mesh dependent
variable = creep_strain
[../]
[./effective_creep_strain]
type = ElementAverageValue
variable = creep_strain
[../]
[./center_effective_creep_rate_inner]
type = ElementalVariableValue
elementid = 425 # mesh dependent
variable = creep_strain_rate
[../]
[./center_effective_creep_rate_outer]
type = ElementalVariableValue
elementid = 422 # mesh dependent
variable = creep_strain_rate
[../]
[./effective_creep_strain_rate]
type = ElementAverageValue
variable = creep_strain_rate
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'sm_clad_radial_displacement'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'sm_fuel_radial_displacement'
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./sm_clad_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./sm_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/RefinementStudy/TSQ002_1pt5_hundredslice.i
# Model is of a 10 slice pellet stack in 1.5D
# Top plenum height of 295.07 mm + bot_gap_height = 1.e-3 in 2D mesh
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
displacements = disp_x
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = Layered1DMesh
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
pellet_inner_radius = 0.0
pellet_outer_radius = 0.0041275
clad_gap_width = 8.89e-5
clad_thickness = 6.35e-4
fuel_height = 3.81381
plenum_height = 0.29607
slices_per_block = 100
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 300.0 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./grain_radius]
block = fuel
initial_condition = 8.7945e-6 # ((11.6+11.2+11.2+11.1)/4)/2*1.56
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_zz]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear # reads an input file containing rod average linear power vs time
data_file = TSQ002_alhr.csv
format = columns
[../]
[./axial_peaking_factors]
# reads an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = TSQ002_alhr_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
# reads an input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
x = '-100 0 141798626 141802226' # -100 @ 101326 Pa, 0 to 141798626 @ 15.517 MPa, 141802226 @ 101326 Pa
y = '.00653 1 1 .00653'
[../]
[./flux]
type = PiecewiseLinear
data_file = TSQ002_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = TSQ002_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
# reads an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = TSQ002_clad_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[./clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 15.517e6
fuel_pin_geometry = pin_geometry
[../]
[./fuel_axial_pressure]
type = ParsedFunction
value = plenum_pressure
vars = plenum_pressure
vals = plenum_pressure
[../]
[]
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = fuel # fission rate applied to the fuel only
fission_rate = fission_rate # coupling to the fission_rate aux variable
[../]
[]
[Modules]
[./TensorMechanics]
[./Layered1DMaster]
[./fuel]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = fuel
out_of_plane_pressure = fuel_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_strain fuel_volumetric_strain'
[../]
[./clad]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = clad
out_of_plane_pressure = clad_axial_pressure
strain = finite
use_displaced_mesh = true
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
[../]
[../]
[../]
[]
[Burnup]
[./burnup]
block = fuel
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
fuel_pin_geometry = pin_geometry
i_enrich = '0.0348 0.9652 0 0 0 0' # 3.48% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = fuel
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises_stress
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = VonMisesStress
execute_on = timestep_end
block = fuel
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xx
index_i = 0
index_j = 0
block = clad
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xy
index_i = 0
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
block = clad
execute_on = timestep_end
[../]
[./creep_strain_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_zz
index_i = 2
index_j = 2
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
formulation = kinematic
system = constraint
penalty = 1e7
model = frictionless
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '2'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '2'
factor = 15.517e6
function = pressure_ramp # use the pressure_ramp function defined above
displacements = 'disp_x'
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.62e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup = burnup
linear_heat_rate_function = q
fuel_pin_geometry = pin_geometry
relocation_activation1 = 5000
burnup_relocation_stop = 0.024
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = fuel
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
initial_porosity = 0.05
burnup = burnup
gbs_model = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 7.5e10
poissons_ratio = 0.3
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 20.0
variable = temp
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = ' lu'
line_search = 'none'
# controls for linear iterations
l_max_its = 100
l_tol = 1e-4 #8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 141802226 #141798626+3600
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
execute_on = 'initial linear'
fuel_pin_geometry = pin_geometry
[../]
[./clad_inner_vol]
type = LayeredInternalVolumePostprocessor
boundary = 7
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./pellet_volume]
type = LayeredInternalVolumePostprocessor
boundary = 8
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./avg_clad_temp]
type = LayeredSideAverageValuePostprocessor
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
fuel_pin_geometry = pin_geometry
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./gas_volume]
type = LayeredInternalVolumePostprocessor
boundary = 9
execute_on = 'initial linear'
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[../]
[./flux_from_clad]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 5
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_fuel]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.81 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = fuel
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = fuel
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 231 # Global node id 232, at coordinates (0.0, 1.71774, 0.0)
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[./max_penetration]
type = NodalExtremeValue
block = fuel
value_type = max
variable = penetration
[../]
[./min_penetration]
type = NodalExtremeValue
block = fuel
value_type = min
variable = penetration
[../]
[./max_contact_pressure]
type = NodalExtremeValue
block = fuel
value_type = max
variable = contact_pressure
[../]
[./min_contact_pressure]
type = NodalExtremeValue
block = fuel
value_type = min
variable = contact_pressure
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = fuel
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
## Nodal comparison values
[./top_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 4043 #coords (0.0041275, 3.62274)
[../]
[./top_disp_r_clad]
type = NodalVariableValue
variable = disp_x
nodeid = 847 #coords (0.0042164, 3.62274)
[../]
[./plenum_disp_r_clad]
type = NodalVariableValue
variable = disp_x
nodeid = 892 #coords (0.0042164, 3.96053)
[../]
[./top_radial_strain_fuel]
type = ElementalVariableValue
variable = strain_xx
elementid = 203
[../]
[./top_axial_strain_fuel]
type = ElementalVariableValue
elementid = 203
variable = strain_yy
[../]
[./top_radial_strain_clad]
type = ElementalVariableValue
variable = strain_xx
elementid = 36
[../]
[./top_axial_strain_clad]
type = ElementalVariableValue
variable = strain_yy
elementid = 36
[../]
[./plenum_radial_strain_clad]
type = ElementalVariableValue
variable = strain_xx
elementid = 40
[../]
[./plenum_axial_strain_clad]
type = ElementalVariableValue
variable = strain_yy
elementid = 40
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_1'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_fuel_radial_displacement'
[../]
#Uncomment to print out axial FCT and PST at every timestep
#[./pellet_temp]
# type = NodalValueSampler
# variable = temp
# boundary = 10
# sort_by = y
# outputs = 'outfile_fuel_surface_temp'
#[../]
#[./pellet_center_temp]
# type = NodalValueSampler
# variable = temp
# boundary = 12
# sort_by = y
# outputs = 'outfile_FCT'
#[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./outfile_1]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
#Uncomment to print out axial FCT and PST at every timestep
#[./outfile_fuel_surface_temp]
# type = CSV
# execute_on = linear
#[../]
#[./outfile_FCT]
# type = CSV
# execute_on = linear
#[../]
[./console]
type = Console
max_rows = 25
[../]
[]
assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.9/IFA_650_9_part2.i
[GlobalParams]
density = 10430.0
initial_porosity = 0.048
order = SECOND
family = LAGRANGE
displacements = disp_x
temperature = temp
energy_per_fission = 3.2e-11 #J/fission
[]
[Problem]
coord_type = RZ
restart_file_base = 'IFA_650_9_part1_checkpoint_cp/LATEST'
[]
[Mesh]
type = Layered1DMesh
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
slices_per_block = 30
pellet_outer_radius = 4.565e-3
clad_gap_width = 0.085e-3
clad_thickness = 0.725e-3
fuel_height = 0.480
plenum_height = 0.262416
pellet_mesh_density = customize
clad_mesh_density = customize
nx_p = 11
nx_c = 5
[]
[Variables]
[./disp_x]
[../]
[./temp]
initial_condition = 295.0
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = power_history.csv
scale_factor = 1.0
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = axial_peaking_factors.csv
axis = 1
scale_factor = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
data_file = coolant_pressure.csv
scale_factor = 1
format = columns
[../]
[./average_htc]
type = PiecewiseBilinear
data_file = average_coolant_htc.csv
axis = 1
scale_factor = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./forced_times]
type = PiecewiseLinear
data_file = timestep_limiting.csv
scale_factor = 1
format = columns
[../]
[./heat_sink_temperature]
type = PiecewiseBilinear
data_file = heater_temp.csv
scale_factor = 1
axis = 1
[../]
[./clad_outer_temperature]
type = PiecewiseBilinear
data_file = clad_surface_temp.csv
scale_factor = 1
axis = 1
[../]
[./heat_transfer_mode]
type = PiecewiseConstant
x = '-200 200412461 200413048'
y = '9 9 8 '
direction = 'right'
[../]
[./clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 1.0
fuel_pin_geometry = fuel_pin_geometry
[../]
[./fuel_axial_pressure]
type = ParsedFunction
value = plenum_pressure
vars = plenum_pressure
vals = plenum_pressure
[../]
[]
[AuxVariables]
[./disp_y]
[../]
[./disp_z]
[../]
[./saved_x]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = fuel
initial_condition = 5.0e-6
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./bursted]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./layered_maximum_clad_radius]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = fuel
burnup_function = burnup
axial_relocation_object = axial_relocation
[../]
[]
[Modules]
[./TensorMechanics]
[./Layered1DMaster]
[./fuel]
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = fuel_pin_geometry
out_of_plane_pressure = fuel_axial_pressure
strain = finite
block = fuel
save_in = saved_x
eigenstrain_names = 'fuel_thermal_strain fuel_swelling_strain fuel_relocation_strain axial_relocation_eigenstrain'
decomposition_method = EigenSolution
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
use_displaced_mesh = true
[../]
[./clad]
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = fuel_pin_geometry
strain = finite
out_of_plane_pressure = clad_axial_pressure
block = clad
save_in = saved_x
eigenstrain_names = 'clad_thermal_strain clad_irradiation_strain'
use_displaced_mesh = true
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress strain_zz creep_strain_zz'
decomposition_method = EigenSolution
[../]
[../]
[../]
[]
[Burnup]
[./burnup]
block = fuel
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
fuel_pin_geometry = fuel_pin_geometry
fuel_volume_ratio = 1.0
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.035 0.965 0 0 0 0'
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
block = clad
variable = fast_neutron_flux
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hoop_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hoop_stress
scalar_type = HoopStress
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
block = clad
variable = effective_creep_strain
property = effective_creep_strain
execute_on = 'timestep_end'
[../]
[./fract_bphase]
type = MaterialRealAux
block = clad
variable = fract_beta_phase
property = fract_beta_phase
execute_on = 'initial linear'
[../]
[./oxide_thickness]
type = MaterialRealAux
boundary = 2
variable = oxide_thickness
property = oxide_scale_thickness
execute_on = 'initial linear'
[../]
[./hasbursted]
type = MaterialRealAux
boundary = 2
variable = bursted
property = failed
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
boundary = 10
property = gap_conductance
variable = gap_conductance
execute_on = 'initial linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = 2
execute_on = 'initial linear'
[../]
[./creep_rate]
type = MaterialRealAux
block = clad
variable = creep_rate
property = creep_rate
execute_on = timestep_end
[../]
[./gas_th_cond]
type = MaterialRealAux
variable = gap_thermal_conductivity
property = gap_conductivity
boundary = 10
execute_on = 'initial linear'
[../]
[]
[AxialRelocation]
linear_heat_rate_function = power_history
axial_direction = y
fuel_blocks = fuel
clad_blocks = clad
contact_pressure_variable = contact_pressure
out_of_plane_strain_variable = strain_yy
penetration_variable = penetration
num_layers = 30
clad_inner_volume_addition = 2.27007e-6
burnup_variable = burnup
temperature_variable = temp
axial_relocation_output_options = MASS_FRACTION
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = 2
variable = temp
heat_transfer_mode = heat_transfer_mode
heat_transfer_coefficient = average_htc # Calculated from an initial simulation of the base irradiation using the inlet_pressure, inlet_massflux, and inlet_temperature commented out below.
inlet_temperature = heat_sink_temperature # K
effective_emissivity = 0.75
# inlet_temperature = 580
# inlet_pressure = 15.3e6 # Pa
# inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.01075 # m
rod_pitch = 1.26e-2 # m
compute_enthalpy = false
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
output_properties = 'coolant_channel_htype coolant_channel_hmode'
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e7
system = Constraint
formulation = kinematic
model = frictionless
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_gas_fractions = '1. 0. 0. 0. 0. 0. 0. 0. 0. 0.'
initial_moles = initial_moles
gas_released = fis_gas_released
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
roughness_coef = 3.2
refab_gas_fractions = '0.05 0.95 0. 0. 0. 0. 0. 0. 0. 0.'
refab_time = 199159200
refab_type = 0
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = 2
function = pressure_ramp
factor = 1.0
[../]
[../]
[./clad_outer_temp]
type = FunctionDirichletBC
boundary = 2
variable = temp
function = clad_outer_temperature
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = 'clad_volume pellet_volume'
material_input = fis_gas_released
output = plenum_pressure
refab_time = 199159200
refab_pressure = 4.0e6
refab_temperature = 295.0
refab_volume = 1.9e-05
[../]
[../]
[]
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[Controls]
[./period1]
type = TimePeriod
disable_objects = 'BCs/clad_outer_temp'
start_time = 200412431
end_time = 200413048
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'bursted > 0'
execute_on = timestep_end
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
axial_relocation_object = axial_relocation
gap_thermal_conductivity = layered_average_gap_conductivity
[../]
[./relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup_function = burnup
linear_heat_rate_function = q
fuel_pin_geometry = fuel_pin_geometry
burnup_relocation_stop = 0.024
relocation_activation1 = 5000.0
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 295.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = fuel
burnup_function = burnup
initial_fuel_density = 10430.0
eigenstrain_name = fuel_swelling_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
burnup_function = burnup
grain_radius = grain_radius
transient_option = 1
diff_coeff_option = 3
gbs_model = true
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = fuel
axial_relocation_object = axial_relocation
crumbling_scale_factor = 0.0001
[../]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'zrycreep'
block = clad
[../]
[./zrycreep]
type = ZryCreepLOCAErbacherLimbackHoppeUpdate
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
block = clad
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_strain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_phase]
type = ZrPhase
block = clad
temperature = temp
numerical_method = 2
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temp
clad_inner_radius = 4.65e-03
clad_outer_radius = 5.375e-03
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = cathcart
use_coolant_channel = true
[../]
[./clad_failure_criterion]
type = ZryCladdingFailure
boundary = 2
failure_criterion = plastic_instability
hoop_stress = hoop_stress
effective_strain_rate_creep = creep_rate
temperature = temp
fraction_beta_phase = fract_beta_phase
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
execute_on = 'initial linear'
fuel_pin_geometry = fuel_pin_geometry
[../]
[./pellet_volume_2]
type = LayeredInternalVolumePostprocessor
boundary = 8
component = 0
fuel_pin_geometry = fuel_pin_geometry
out_of_plane_strain = strain_yy
execute_on = 'initial linear'
[../]
[./avg_clad_temp]
type = LayeredSideAverageValuePostprocessor
boundary = 7
variable = temp
fuel_pin_geometry = fuel_pin_geometry
execute_on = 'initial linear'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = fuel_pin_geometry
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = fuel_pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = fuel_pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = fuel_pin_geometry
[../]
[./fisson_gas_release]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
[../]
[./average_coolant_htc]
type = LayeredSideAverageValuePostprocessor
boundary = 2
variable = coolant_htc
execute_on = 'initial linear'
fuel_pin_geometry = fuel_pin_geometry
[../]
[./average_burnup]
type = ElementAverageValue
block = fuel
variable = burnup
[../]
[./temp_clad_max]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./betaph_fract_max]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
block = clad
execute_on = 'initial timestep_end'
[../]
[./bursted]
type = ElementExtremeValue
value_type = max
variable = bursted
block = clad
execute_on = 'initial timestep_end'
[../]
[./timestep_material]
type = MaterialTimeStepPostprocessor
block = clad
execute_on = 'initial timestep_end'
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200.0
min_value = 0.0
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -mat_superlu_dist_fact'
petsc_options_value = 'lu superlu_dist SamePattern'
line_search = 'none'
l_max_its = 50
l_tol = 1e-4
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
dtmax = 5e5
dtmin = 1e-5
# end_time = 199159200 # End base irradiation
# end_time = 200412431 # Begin Blowdown
end_time = 200413048 # End
[./TimeStepper]
type = IterationAdaptiveDT
dt = 200
timestep_limiting_postprocessor = timestep_material
optimal_iterations = 20
iteration_window = 4
linear_iteration_ratio = 100
timestep_limiting_function = forced_times
force_step_every_function_point = true
max_function_change = 2000
time_t = '199159200 200312431 200411431 200412431 200412461 200413048'
time_dt = '1.0e04 1.0e04 10.0 5.0 0.5 5.0'
[../]
[]
[VectorPostprocessors]
[./clad_radial_disp]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_2'
[../]
[./clad_out_temp]
type = NodalValueSampler
variable = temp
boundary = 2
sort_by = y
outputs = 'outfile_temp_2'
[../]
[./mass_fraction]
type = LineValueSampler
start_point = '0 0.01124 0'
end_point = '0 0.47524 0'
num_points = 30
sort_by = y
variable = layered_mass_fraction
outputs = 'outfile_mass_2'
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
csv = true
color = false
exodus = true
execute_on = 'initial timestep_end'
perf_graph = true
[./console]
type = Console
output_linear = true
max_rows = 25
[../]
[./outfile_2]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_temp_2]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_mass_2]
type = CSV
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/Super_Ramp/analysis/PK24/PK24.i
[GlobalParams]
density = 10340.0
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = false
initial_porosity = 0.057
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temperature'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 10
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 28
pellet_height = 0.011143
pellet_outer_radius = 4.57e-3
pellet_mesh_density = customize
nx_p = 11
ny_p = 84
clad_mesh_density = customize
nx_c = 4
ny_c = 84
clad_gap_width = 70.0e-6
clad_thickness = 0.735e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 15.5e-3
clad_top_gap_height = 32.6e-3
ny_cu = 3
ny_cl = 3
elem_type = QUAD8
[]
[Variables]
[./temperature]
initial_condition = 293.15
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = alhr_history.csv
format = columns
[../]
[./axial_power_factors]
type = PiecewiseBilinear
data_file = axial_lhr_factors.csv
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_power_factors'
[../]
[./clad_out_temp]
type = PiecewiseLinear
data_file = temp_outer_clad_history.csv
format = columns
[../]
[./axial_temp_factors]
type = PiecewiseBilinear
data_file = axial_temp_factors.csv
axis = 1
[../]
[./clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = pressure_coolant.csv
format = columns
[../]
[./fast_flux]
type = PiecewiseLinear
data_file = fast_neutron_flux.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = 3
initial_condition = 4.29e-6
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
block = 3
initial_condition = 0.057
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain
fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy
stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz
creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx
strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temperature
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temperature
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temperature
execute_on = linear
[../]
[./porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
a_lower = 0.0165
a_upper = 0.328504
number_pellets = 28
execute_on = initial
[../]
[./oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[../]
[./fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./layered_average_contact_pressure]
type = SpatialUserObjectAux
block = 3
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = 3
execute_on = nonlinear
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 80
num_axial = 20
i_enrich = '0.0321 0.9679 0.0 0.0 0.0 0.0'
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1.0e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
formulation = KINEMATIC
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temperature
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = 5
outer_surfaces = 10
temp = temperature
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temperature
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.25e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temperature
burnup_function = burnup
initial_fuel_density = 10340
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = 3
temperature = temperature
burnup_function = burnup
grain_radius = 4.29e-6
[../]
[./fuel_stress]
type = ComputeSmearedCrackingStress
block = 3
cracking_stress = 3.0e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
linear_heat_rate_function = power_history
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = true
max_relocation_recovery_fraction = 0.5
relocation_scaling_factor = 1
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
output_properties = 'relocation_strain recovered_relocation_strain'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = fuel_thermal_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
diff_coeff_option = 3
transient_option = 2
res_param_option = 0
temp = temperature
fission_rate = fission_rate
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temperature
stress_free_temperature = 293.15
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6550.0
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temperature
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
fuel_pin_geometry = pin_geometry
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 1e-4
nl_max_its = 30
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
start_time = 0.0
n_startup_steps = 1
end_time = 101316780.0
dtmax = 1.0e6
dtmin = 1.0
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 15
iteration_window = 3
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./avg_gap_conductance]
type = SideAverageValue
boundary = 10
variable = gap_cond
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temperature
nodeid = 3110 #Mesh dependent!
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = strain_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = stress_zz
execute_on = 'initial timestep_end'
[../]
[./midplane_contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 3141 # Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./total_rod_integral_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = 3
[../]
[./total_rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.376004 # rod height
[../]
[./vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = TENSOR
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage central_fuel_temp midplane_contact_pressure'
execute_on = 'FINAL'
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temperature
fuel_pin_geometry = pin_geometry
number_pellets = 28
execute_on = 'initial linear'
[../]
[./layered_average_contact_pressure]
type = LayeredSideAverage
variable = contact_pressure
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[../]
[]
assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_new_GrainGrowth.i
[GlobalParams]
density = 10431.0
initial_porosity = 0.2
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.9144
pellet_outer_radius = 2.794e-3
pellet_inner_radius = 6.985e-4
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 101.6e-6
clad_thickness = 0.5334e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 1.057
elem_type = QUAD8
nx_c = 4
ny_c = 1000
nx_p = 10
ny_p = 500
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
scaling = 1
[../]
[]
[AuxVariables]
[./fission_rate]
block = pellet
[../]
[./burnup]
block = pellet
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = pellet
initial_condition = 10e-6
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./fraction_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 0.854004932 0.854004932'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 2.99513e+19 2.99513e+19'
[../]
[./axial_power_profile]
type = PiecewiseBilinear
x = '0.0334152 0.09468 0.1559448 0.2162952 0.27756 0.3388248 0.3991752 0.46044 0.5217048 0.5820552 0.64332 0.7045848 0.7649352 0.8262 0.8874648'
y = '0 31858942.74'
z = '5493.43832 7183.727034 29157.48031 34228.34646 37608.92388 40144.35696 41412.07349 42257.21785 41834.64567 39721.78478 37608.92388 33805.77428 28312.33596 4225.721785 2535.433071 5041.338583 6592.519685 26757.87402 31411.41732 34513.77953 36840.55118 38003.93701 38779.52756 38391.73228 36452.75591 34513.77953 31023.62205 25982.28346 3877.952756 2326.771654'
scale_factor = 1
axis = 1
[../]
[./average_power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24264.05646 24264.05646'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.2
axial_power_profile = axial_power_profile
rod_ave_lin_pow = fraction_history
pellet_diameter = 0.005588
execute_on = timestep_begin
pellet_inner_diameter = 0.001397
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
execute_on = timestep_end
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
execute_on = timestep_end
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
execute_on = timestep_end
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
execute_on = timestep_end
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
execute_on = timestep_end
[../]
[./nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vcn_bdr_2
execute_on = timestep_end
[../]
[./atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atm_bbl_bdr
execute_on = timestep_end
[../]
[./vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vcn_bbl_bdr
execute_on = timestep_end
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
execute_on = timestep_end
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
execute_on = timestep_end
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = timestep_end
[../]
[./volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = vol_bbl_bdr
execute_on = timestep_end
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 0.151e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580
inlet_pressure = 0.151e6
inlet_massflux = 1687.43
rod_diameter = 6.858e-3
rod_pitch = 1.7e-2
linear_heat_rate = fraction_history
axial_power_profile = axial_power_profile
coolant_material = sodium
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = 0.2
output_properties = 'thermal_conductivity'
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
outputs = exodus
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = ThermalHT9
block = clad
temp = temp
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.88e11
poissons_ratio = 0.236
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_ht9creep'
block = clad
[../]
[./clad_ht9creep]
type = HT9CreepUpdate
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 1.2e-5
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
bubble_gb_limit = 1.0e+11
[../]
[./clad_density]
type = Density
block = clad
density = 7874.0
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[./fast_neutron_flux]
type = GenericFunctionMaterial
block = clad
prop_names = fast_neutron_flux
prop_values = fast_neutron_flux_function
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = fraction_history
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.9144 # rod height
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
assessment/LWR/validation/IFA_431/analysis/rod2/IFA_431_rod2.i
[GlobalParams]
density = 10431 # initial fuel density 95% of theoretical (10980 kg/m3)
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa_431_rod2_fine.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 513.3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4 5'
initial_condition = 3.5e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = bol_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factor]
type = PiecewiseBilinear
data_file = bol_axial.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.029395 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factor'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[Modules/TensorMechanics/Master]
[./fuel]
block = '3 4 5'
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = '3 4 5'
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
factor = 1.6e12 #(n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4 5'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hydrostatic_stress]
block = '3'
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = hydrostatic
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = '3 4 5'
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
num_radial = 81
num_axial = 21
a_lower = 0.01494
a_upper = 0.57374
fuel_inner_radius = 0.00
fuel_outer_radius = 0.005264
fuel_volume_ratio = 0.992464
i_enrich = '0.1 .9 0 0 0 0' # 10% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_fuel = 2.16e-6
roughness_clad = 6.35e-7
roughness_coef = 3.2
quadrature = true
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = PresetBC
boundary = '1 2 3'
variable = temp
value = 513.3
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0135e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = '3 4 5'
thermal_conductivity_model = NFIR
initial_porosity = 0.05
temp = temp
burnup_function = burnup
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4 5'
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = '3 4 5'
temperature = temp
[../]
[./fuel_elasticity_and_creep]
type = ComputeThermalExpansionEigenstrain
block = '3 4 5'
temperature = temp
stress_free_temperature = 297
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4 5'
burnup_function = burnup
diameter = 1.0528e-2
gap = 381.0e-6
linear_heat_rate_function = q
burnup_relocation_stop = 0.00821
relocation_activation1 = 5000
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_inelastic_stressUpdate] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type =stress_relief_annealed
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
temperature = temp
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
[../]
[./clad_inelastic_stress] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = clad_inelastic_stressUpdate
[../]
[./clad_thermal_eigenstrain] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ComputeThermalExpansionEigenstrain
block = 1
temperature = temp
stress_free_temperature = 297
eigenstrain_name = 'clad_thermal_eigenstrain'
thermal_expansion_coeff = 5.0e-6
[../]
[./clad_irradiation_eigenstrain] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '3 4 5'
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4 5'
burnup = burnup
temperature = temp
initial_fuel_density = 10431
total_densification = .0043
#incremental_form = true
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4 5'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 80
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# Time steps set up to match halden data
n_startup_steps = 1
start_time = 0
end_time = 50400
[./TimeStepper]
type = ConstantDT
dt = 900
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3 4 5'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4 5'
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3 4 5'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
block = '3 4 5'
burnup_function = burnup
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4 5'
outputs = exodus
[../]
[./power_lower_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.075265 0'
[../]
[./power_upper_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.50389 0'
[../]
[./upper_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 8896 # paraview global node id 8897
[../]
[./lower_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 2694 # paraviw global node id 2695
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = TENSOR
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'fission_gas_released rod_total_power upper_TC_temp lower_TC_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'temp disp_x disp_y'
show_var_residual_norms = true
[]
test/tests/meso_thcond_test/test2.i
# This test is for the fuel swelling and porosity computation in the Sifgrs fission gas behavior model for UO2.
# As complementary to the fission gas release process, the fission gas swelling is related to gas retention in the fuel in the form of bubbles. Through a direct description of the gas bubble development, the fission gas swelling and release are modeled as inherently coupled processes, on a physical basis. Only the fission gas swelling due to grain-face bubbles is considered.
# In a comprehensive treatment of fission gas release and fuel swelling, Sifgrs also incorporates empirical models for the swelling due to solid fission products and the fuel densification.
# Moreover, the different contributions to fuel porosity, namely, those due to fabrication pores, gas bubbles (thus associated with fission gas swelling) , and sintering (densification), are computed consistently with the swelling calculations. Then, the fuel total porosity in each mesh location can be tracked (auxkernel PorosityAuxUO2), and considered in the computation of other relevant material properties like the fuel thermal conductivity (material model ThermalFuel).
# This test aims at demonstrating the above model capabilities. The considered case involves a single-element cubic domain, constant temperature (1400 K) and fission rate (1e19 f/(m**3s)), and a irradiation time of 1e8 s. The Sifgrs model is adopted for calculating the fission gas release and fuel swelling. Starting from a typical as-fabricated value of 5%, the fuel porosity evolves consistently with the swelling. The fuel thermal conductivity is calculated as coupled with porosity, which allows taking into account the conductivity degradation due to progressive increase of gaseous porosity (see also the attached file regression_tests_sifgrs.xlsx).
[Mesh]
type = FileMesh
file = cube_111.e
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = 1400.
[../]
[./Fiss_func]
type = ParsedFunction
value = 1.e19
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 1400.
[../]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./burnup]
order = FIRST
family = LAGRANGE
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.05
[../]
[./density]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_sl]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_dn]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
[../]
[./intra_porosity]
order = CONSTANT
family = MONOMIAL
[../]
[./gas_atom_conc]
order = CONSTANT
family = MONOMIAL
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
[../]
[./GBresistance]
order = CONSTANT
family = MONOMIAL
[../]
[./grain_radius]
order = CONSTANT
family = MONOMIAL
initial_condition = 5e-6
[../]
[]
[SolidMechanics]
[./solid]
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
temp = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./frate]
type = FissionRateAux
variable = fission_rate
block = 1
function = Fiss_func
execute_on = timestep_begin
[../]
[./brnp]
type = BurnupAux
variable = burnup
block = 1
fission_rate = fission_rate
density = 10417.
execute_on = timestep_begin
[../]
[./por]
type = PorosityAuxUO2
block = 1
variable = porosity
execute_on = linear
[../]
[./rho]
type = MaterialRealAux
variable = density
property = density
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = deltav_v0_swe
[../]
[./thcond]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./GBCoverage]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./intra_porosity]
type = MaterialRealAux
variable = intra_porosity
property = intra_porosity
[../]
[./gas_atom_conc]
type = MaterialRealAux
variable = gas_atom_conc
property = gas_atom_conc
[../]
[./deltav_v0_dn]
type = MaterialRealAux
variable = deltav_v0_dn
property = deltav_v0_dn
[../]
[./deltav_v0_sl]
type = MaterialRealAux
variable = deltav_v0_sl
property = deltav_v0_sl
[../]
[./rad_bbl_bdr]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./GBresistance]
type = MaterialRealAux
variable = GBresistance
property = GBresistance
[../]
[./grain_radius]
type = GrainRadiusAux
variable = grain_radius
temp = temp
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[../]
[./x_disp]
type = DirichletBC
variable = disp_x
value = 0
boundary = 1
[../]
[./y_disp]
type = DirichletBC
variable = disp_y
value = 0
boundary = 2
[../]
[./z_disp]
type = DirichletBC
variable = disp_z
value = 0
boundary = 3
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 1
temp = temp
burnup = burnup
initial_porosity = 0.05
porosity = porosity
thermal_conductivity_model = NFIR
[../]
[./solid]
type = Elastic
block = 1
temp = temp
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
youngs_modulus = 2.e+11
poissons_ratio = 0.3
thermal_expansion = 1.e-05
[../]
[./density]
type = Density
block = 1
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
density = 10417.
[../]
[./fission_gas_release_and_swelling]
type = Sifgrs
block = 1
temp = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.05
porosity = porosity
[../]
[./fuel_thermal_meso]
type = ThermalUO2FissionGas
block = 1
temp = temp
burnup = burnup
grain_radius = grain_radius
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-05
nl_rel_tol = 1.e-05
start_time = 0.
num_steps = 100
dt = 1.e+06
end_time = 1.e+08
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[./GBCov]
type = ElementalVariableValue
variable = GBCoverage
elementid = 0
[../]
[./gas_atom_conc]
type = ElementalVariableValue
variable = gas_atom_conc
elementid = 0
[../]
[./thcond]
type = ElementalVariableValue
variable = thermal_conductivity
elementid = 0
[../]
[./intra_porosity]
type = ElementalVariableValue
variable = intra_porosity
elementid = 0
[../]
[./rad_bbl_bdr]
type = ElementalVariableValue
variable = rad_bbl_bdr
elementid = 0
[../]
[./GBresistance]
type = ElementalVariableValue
variable = GBresistance
elementid = 0
[../]
[]
[Outputs]
file_base = jf_grgr
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[]
examples/Discrete_3D_3pellets/quarter_symm/3d_3pellets.i
[GlobalParams]
density = 10431.0 #95% TD (TD = 10980)
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
displacements = 'disp_x disp_y disp_z'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
[]
[Problem]
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y disp_z temp'
reference_residual_variables = 'saved_x saved_y saved_z saved_t'
[]
[Mesh]
file = DiscreteThreePellets3D_90deg.e
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
patch_update_strategy = auto
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 298
[../]
[]
[AuxVariables]
[./fission_rate]
block = '3'
[../]
[./burnup]
block = '3'
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./grain_radius]
block = '3'
initial_condition = 5e-6 # must be the same as the initial value in Sifgr
[../]
[./gas_swell]
order = CONSTANT
family = MONOMIAL
block = '3'
[../]
[./volumetric_strain]
order = CONSTANT
family = MONOMIAL
block = '3'
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./eff_creep_strain]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./hoop_creep_strain]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./hoop_plastic_strain]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[./pid]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_z]
[../]
[./saved_t]
[../]
[]
[Functions]
[./power_history]
# CoolantChannel requires this to have units while axial_peaking_factors must be normalized.
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 25e3 # 25 kW/m peak power.
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./coolant_pressure_ramp]
type = PiecewiseLinear
x = '0 10000'
y = '0 1'
[../]
[./q] # this is for fuel_relocation
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
save_in_disp_z = saved_z
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3'
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable= fission_rate
block = '3'
#convert W/m from power profile to fission/m**3-s
#calculated as 1/(energy_per_fission*area)
#using energy_per_fission = 3.2e-11, consistent with 200 MeV/fission
#BWR change: use cross-sectional area for BWR fuel
value = 5.3548e+14
function = q
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = '3'
fission_rate = fission_rate
molecular_weight = 0.270
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 2.34e+13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./gas_swell]
type = MaterialRealAux
block = '3'
variable = gas_swell
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
quantity = hoop
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = linear
[../]
[./eff_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = eff_creep_strain
execute_on = timestep_end
[../]
[./hoop_creep_strain]
type = MaterialTensorAux
tensor = creep_strain
variable = hoop_creep_strain
quantity = hoop
execute_on = timestep_end
[../]
[./hoop_plastic_strain]
type = MaterialTensorAux
tensor = plastic_strain
variable = hoop_plastic_strain
quantity = hoop
execute_on = timestep_end
[../]
[./vol_strain]
type = MaterialTensorAux
tensor = total_strain
variable = volumetric_strain
quantity = FirstInvariant
execute_on = timestep_end
[../]
[./pid]
type = ProcessorIDAux
variable = pid
[../]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
penalty = 1e+14 #1e7
model = frictionless
tangential_tolerance = 5e-4
normal_smoothing_distance = 0.1
normalize_penalty = true
[../]
[]
[ThermalContact]
[./pellet_clad_thermal]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
gas_released = fis_gas_released
initial_moles = initial_moles
jump_distance_model = KENNARD
interaction_layer = 1
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
emissivity_fuel = 0.8
emissivity_clad = 0.8
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
# pin entire clad bottom in y
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
# pin fuel bottom in y
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
# wedge bcs
[./no_x_wedge]
type = DirichletBC
variable = disp_x
boundary = 98
value = 0.0
[../]
[./no_z_wedge]
type = DirichletBC
variable = disp_z
boundary = 99
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '2'
factor = 15.5e6
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 0.50e6
startup_time = 0.0
material_input = fis_gas_released
output_initial_moles = initial_moles
R = 8.3143
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
displacements = 'disp_x disp_y disp_z'
save_in = 'saved_x saved_y saved_z'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '2'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # PA
inlet_massflux = 3880 # kg/m^2-sec
rod_diameter = 0.95e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = '3'
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_swelling]
type = VSwellingUO2
block = '3'
temp = temp
burnup = burnup
gas_swelling_type = sifgrs
[../]
[./fuel_solid_mechanics_elastic]
type = Elastic
block = '3'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = 0.345
thermal_expansion = 10.0e-6
dep_matl_props = deltav_v0_bd
[../]
[./fuel_relocation]
type = RelocationUO2
block = '3'
burnup = burnup
diameter = 0.00836 # matches mesh
q = q
gap = 50.0e-6
relocation_activation1 = 5000
#BWR change: this probably needs to be checked to stop on contact.
burnup_relocation_stop = .0006
[../]
[./fission_gas_release]
type = Sifgrs
block = '3'
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
diff_coeff_option = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = SolidModel
block = 1
temp = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
constitutive_model = clad_combined
[../]
[./clad_growth]
type = IrradiationGrowthZr4
block = 1
fast_neutron_fluence = fast_neutron_fluence
growth_direction = 1
[../]
[./clad_combined]
type = CombinedCreepPlasticity
block = 1
temp = temp
submodels = 'clad_creep clad_plasticity'
relative_tolerance = 1e-5
[../]
[./clad_creep]
type = CreepZryModel
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_primary_creep = true
material_type = 1
[../]
[./clad_plasticity]
type = IsotropicPlasticity
block = 1
temp = temp
yield_stress = 550e6
hardening_constant = 2.5e9
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '3'
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 25.0
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_z'
off_diag_column = 'disp_z disp_x'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 25
nl_max_its = 40
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8
dtmax = 2.0e6
dtmin = 1.0
end_time = 3.0e7
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e3
optimal_iterations = 30
iteration_window = 4
time_t = '0 1e4 1e8'
time_dt = '1e4 1e6 1e6'
timestep_limiting_function = power_history
force_step_every_function_point = true
growth_factor = 2.0
cutback_factor = 0.5
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
verbose = true
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
scale_factor = 4.0 # Quarter-Symmetry Model Correction
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
scale_factor = 4.0 # Quarter-Symmetry Model Correction
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
scale_factor = 4.0 # Quarter-Symmetry Model Correction
[../]
[./interior_temp]
type = SideAverageValue
boundary = 7 #bws was 9
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced_model] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = '3'
[../]
[./fis_gas_produced] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = fis_gas_produced_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[../]
[./fis_gas_released_model]
type = ElementIntegralFisGasReleasedSifgrs
block = '3'
[../]
[./fis_gas_released] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = fis_gas_released_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
outputs = exodus
[../]
[./power_history]
type = FunctionValuePostprocessor
function = power_history
[../]
[./flux_from_clad_model]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_clad] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = flux_from_clad_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[../]
[./flux_from_fuel_model]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = flux_from_fuel_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[../]
[./dt]
type = TimestepSize
[../]
[./residual]
type = Residual
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./average_burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[../]
[./average_fissionrate]
type = ElementAverageValue
block = '3'
variable = fission_rate
[../]
[./rod_total_power_model]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3'
[../]
[./rod_total_power] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = rod_total_power_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.03 #Fuel length
[../]
[]
[Outputs]
perf_graph = true
csv = true
interval = 1
exodus = true
[./console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[../]
[]
assessment/LWR/validation/IFA_519/analysis/rod_DK/IFA_519_rod_DK.i
# IFA-519.9 Rod DK
[GlobalParams]
density = 10400.0 # Table 1 HWR 668
temperature = temp
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
file = IFA_519_DK_smeared.e
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
patch_update_strategy = auto
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./grain_radius]
block = 3
initial_condition = 13.26e-6 # 2D grain radius 8.5e-6
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = DK_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
x = '-100 0 548244882 548309902'
y = '0.0298015 1 1 0.0298015'
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = 519_coolant_temp_DK.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = '3'
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
decomposition_method = EigenSolution
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
decomposition_method = EigenSolution
[../]
[]
# Define kernels for the various terms in the PDE system (in all cases here, the axisymmetric (RZ) version is specified)
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.24824
a_lower = 0.00324
fuel_inner_radius = 0
fuel_outer_radius = 0.00457
i_enrich = '0.13 .87 0 0 0 0' # 13% enriched U-235
RPF = RPF
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 1.6e12 #(n/m2-s per W/m) taken from IFA-431
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 226456300
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = 1020 # 20
value = 0.0
[../]
[./temp]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6 # taken from IFA-431
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.59e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get inital fill gas mass
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
refab_time = 226456300
refab_pressure = 2.38e6
refab_temperature = 293
refab_volume = 9.8e-6
displacements = 'disp_x disp_y'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./density_clad]
type = Density
block = '1'
density = 6551.0
[../]
[./density_fuel]
type = Density
block = 3
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.053
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup_function = burnup
initial_fuel_density = 10400.0
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[../]
[./fuel_elasticity_and_creep]
type = ComputeThermalExpansionEigenstrain
block = 3
stress_free_temperature = 293
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.00914 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 3.6e-4 #diametral gap in m
burnup_relocation_stop = 0.031254
relocation_activation1 = 5000 #initial relocation activation power in W/m
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = '1'
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = clad_inelastic_stressUpdate
[../]
[./clad_inelastic_stressUpdate]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type =stress_relief_annealed
[../]
[./clad_thermal_eigenstrain]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_eigenstrain]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 548309902
dtmax = 1e6
dtmin = 1
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 1000
linear_iteration_ratio = 100
growth_factor = 5
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = 3
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 3
[../]
[./ave_burnup]
type = ElementAverageValue
variable = burnup
block = 3
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[]
assessment/LWR/validation/Riso_AN3/analysis/SM/Riso_AN3.i
[GlobalParams]
density = 10303.0 # assumed TD = 10950
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = riso_an3.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4'
initial_condition = 4.68e-6 # 2D grain radius 3.0e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = riso_an3_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = an3_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 103528800 103529000 103529020 103529120 103789797 103789810'
y = '0.00653 1 1 0.00653 0.00653 0.986 0.986 0.00653'
[../]
[./flux]
type = PiecewiseLinear
data_file = riso_an3_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = riso_an3_clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = '3 4'
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.29334
a_lower = 0.00734
fuel_inner_radius = 0
fuel_outer_radius = 0.0045265
fuel_volume_ratio = 0.9889
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.9e17
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = 1
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3 4'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 103529000
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1.552e7 #changes to 1.53e7 for bump tests
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.31e6 #changes to 1e5 for bump tests
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 103529000
refab_pressure = 1.57e6
refab_temperature = 293
refab_volume = 7.0e-6
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = '3 4'
burnup_function = burnup
temp = temp
[../]
[./density_clad]
type = Density
block = 1
density = 6551.0
[../]
[./density_fuel]
type = Density
block = '3 4'
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic #CreepUO2
block = '3 4'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
# burnup_function = burnup
# grain_radius = 3.0e-6
# grain_radius = 5.85e-6 # maximum grain size measured during PIE
# oxy_to_metal_ratio = 2.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = '3 4'
burnup_function = burnup
diameter = 0.009053
q = q
gap = 2.05e-4
burnup_relocation_stop = 0.029
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
model_irradiation_growth = true
model_thermal_expansion = false
formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 103789797
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3 4'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = '3 4'
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4'
[../]
[./TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 9738 #Global node ID 9739
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = '3 4'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
[./chkfile]
type = CSV
show = 'ave_fission_rate average_centerline_fuel_temperature fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_chromia_doped.i
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Temp_func]
type = PiecewiseLinear
x = '0. 2.2e7'
y = '300. 2500.'
scale_factor = 1
[../]
[./Fiss_func]
type = PiecewiseLinear
x = '0 2.2e7'
y = '1.e19 1.e19'
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 300.
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
initial_condition = 1.e19
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = 'initial timestep_end'
[../]
[./eff_diffusion_coefficient]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = 'initial timestep_end'
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[../]
[]
[Materials]
[./UO2]
type = HeatConductionMaterial
block = 1
temp = T
thermal_conductivity = 1.0
specific_heat = 1.0
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 1
temp = T
fission_rate = fission_rate
skip_bdr_model = true
eff_diff_coeff_option = 1
diff_coeff_option = 4
doping_type = 1
#cr_doped_option = 5 # default
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 22
dt = 1e6
[]
[Postprocessors]
[temperature]
type = FunctionValuePostprocessor
function = Temp_func
execute_on = 'initial timestep_end'
[../]
[fission_rate]
type = FunctionValuePostprocessor
function = Fiss_func
execute_on = 'initial timestep_end'
[../]
[./diffusion_coefficient]
type = ElementalVariableValue
elementid = 0
variable = eff_diff_coeff
execute_on = 'initial timestep_end'
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
execute_on = 'initial timestep_end'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
execute_on = 'initial timestep_end'
[../]
[./fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[]
[Outputs]
exodus = true
[./console]
type = Console
output_linear = true
max_rows = 23
[../]
[]
assessment/LWR/validation/RIA_NSRR_FK/analysis/FK6/FK06.i
# This file was created using BIF with the following inputs:
# FK06/FK06.var - md5sum: 5a60c05af67ba840a89caacf70b852e2
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
[GlobalParams]
density = 10310.8809782
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
displacements = 'disp_x disp_y'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
displacements = 'disp_x disp_y'
patch_size = 5
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
top_bot_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.05265
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[AuxVariables]
[./BuTC]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gap]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./fission_rate]
initial_condition = 0
[../]
[./grain_radius]
block = 3
initial_condition = 5.96e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./integral_burnup]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_radial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.0592261881186
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[../]
[./flux]
type = ConstantFunction
value = 0.0
[../]
[./axial_peaking_factors]
type = ConstantFunction
value = 1
[../]
[./coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[../]
[./linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[../]
[./axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[../]
[./burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[../]
[./radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[../]
[./radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[../]
[./initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
i_enrich = '0.045 0.955 0.0 0.0 0.0 0.0'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
save_in = saved_t
block = 3
[../]
[]
[AuxKernels]
[./BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[../]
[./gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[../]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = timestep_begin
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_begin
[../]
[./radial_stress]
type = MaterialTensorAux
tensor = stress
variable = radial_stress
index = 0
execute_on = timestep_begin
[../]
[./axial_stress]
type = MaterialTensorAux
tensor = stress
variable = axial_stress
index = 1
execute_on = timestep_begin
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
index = 2
execute_on = timestep_begin
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./axial_strain]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = stress
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./elastic_radial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = radial_strain
index = 0
execute_on = timestep_begin
[../]
[./elastic_axial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_strain
index = 1
execute_on = timestep_begin
[../]
[./elastic_hoop_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_strain
index = 2
execute_on = timestep_begin
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_begin
[../]
[./creep_strain_radial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 0
execute_on = timestep_begin
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
index = 1
execute_on = timestep_begin
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 2
execute_on = timestep_begin
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
friction_coefficient = 2.5
normal_smoothing_distance = 0.1
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
roughness_coef = 3.2
roughness_fuel = 1.5e-6
roughness_clad = 1.75e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
initial_gas_fractions = '0.25 0.75 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0'
gas_released = fission_gas_released
tangential_tolerance = 1.0e-6
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '10 5'
initial_pressure = 0.1e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
block = 3
temp = temp
burnup = BuTC
initial_porosity = 0.0592261881186
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
temp = temp
burnup = burnup
total_densification = 0.006
gas_swelling_type = SIFGRS
[../]
[./fuel_mech]
type = MechUO2
block = 3
temp = temp
burnup = BuTC
fission_rate = fission_rate
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 5.56e-06
oxy_to_metal_ratio = 2.0
model_thermal_expansion = true
model_swelling = true
name_swelling_model = fuel_swelling
model_relocation = false
name_relocation_model = fuel_relocation
model_creep = false
model_hotpressing = false
has_hotpressing_plasticity = false # used to turn on plasticity models
matpro_youngs_modulus = false
matpro_poissons_ratio = false
dep_matl_props = deltav_v0_bd
# input_yield_stress = 100e6 # used to turn on plasticity models
# input_hardening_modulus = 2e9 # used to turn on plasticity models
# transition_temperature = 1273 # used to change the hot presing temperature
# isotropic_cracking = true # used for isotropic softening model
# rod_ave_lin_pow = linear_heat_rate_profile # used for isotropic softening model
# cracking_stress = 120e6 # used for smeared cracking model
# cracking_release = exponential # used for smeared cracking model
# cracking_residual_stress = 0.1 # used for smeared cracking model
# cracking_beta = 0.01 # used for smeared cracking model
# compute_method = ShearRetention # used for smeared cracking model
# max_cracks = 3 # used for smeared cracking model
# active_crack_planes = '0 1 2' # used for smeared cracking model
stress_free_temperature = 293
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = buavg
q = linear_heat_generation_rate
diameter = 0.01054
gap = 1e-05
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
creeprate_scalef = 1
cold_work_factor = 0.01
material_type = 0
model_irradiation_growth = false
model_thermal_expansion = true
model_elastic_modulus = true
constitutive_model = plasticity
compute_JIntegral = true
formulation = NonlinearRZ
[../]
[./combined]
type = CombinedCreepPlasticity
block = clad
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = clad
temp = temp
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
material_type = 0
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
[../]
[./plasticity]
type = ZryPlasticity
block = 1
temp = temp
initial_fast_fluence = 1.30e26
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
use_matpro = true
output_properties = yield_stress
outputs = all
scale_factor = 1.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = 2
[../]
[./clad_density]
type = Density
block = 1
density = 6551
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[UserObjects]
[./avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[../]
[./integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[./contactslip]
type = ContactSlipDamper
master = 5
slave = 8
min_damping_factor = 0.05
[../]
[]
[Postprocessors]
[./average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[]
[VectorPostprocessors]
[./rad_temp]
type = LineValueSampler
end_point = '0.00527 0.0503 0.0'
start_point = '0.0 0.0503 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
output_linear = true
[../]
[./dummy]
type = CSV
enable = true
[../]
[]
examples/IAEA_CRP-6_type/case_10/case_10.i
[GlobalParams]
density = 10810.0 # kg/m^3
order = SECOND
family = LAGRANGE
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Mesh]
file = case_10.e
[]
[Problem]
coord_type = RZ
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 1346.0
[../]
[]
[AuxVariables]
[./fluence]
[../]
[./fast_neutron_flux]
[../]
[./fission_rate]
block = fuel
[../]
[./burnup]
block = fuel
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./grain_radius]
initial_condition = 5.0e-6
[../]
[]
[Functions]
[./fast_neutron_flux]
type = ParsedFunction
value = 1.708707e18
[../]
[./fission_rate]
type = ParsedFunction
value = 7.75e19 # units of fissions/m**3
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
[../]
[]
[Kernels]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fluence]
type = FastNeutronFluenceAux
variable = fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./fast_neutron_flux]
type = FunctionAux
variable = fast_neutron_flux
function = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fission_rate]
type = FunctionAux
variable= fission_rate
block = fuel
function = fission_rate
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./stress_xy]
type = MaterialTensorAux
tensor = stress
variable = stress_xy
index = 3
execute_on = timestep_end
[../]
[./stress_yz]
type = MaterialTensorAux
tensor = stress
variable = stress_yz
index = 4
execute_on = timestep_end
[../]
[./stress_xz]
type = MaterialTensorAux
tensor = stress
variable = stress_xz
index = 5
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temp = temp
execute_on = linear
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 15
slave = 17
penalty = 1e5
model = frictionless
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 15
slave = 17
initial_moles = initial_moles
gas_released = 'fis_gas_released co_production'
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
[../]
[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
[./no_disp_y]
type = DirichletBC
variable = disp_y
boundary = yzero
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = DirichletBC
variable = temp
boundary = exterior
value = 1346
[../]
# exterior and internal pressures
[./exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
component = 0
factor = 0.1e6
[../]
[./exterior_pressure_y]
type = Pressure
variable = disp_y
boundary = exterior
component = 1
factor = 0.1e6
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 'PyCGapBndry BufferGapBndry'
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = volumeGas
material_input = 'fis_gas_released co_production'
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
temp = temp
thermal_conductivity_model = FINK_LUCUTA
initial_porosity = 0.0
burnup = burnup
[../]
[./fuel_disp]
type = Elastic
block = fuel
temp = temp
youngs_modulus = 2.0e8
poissons_ratio = 0.345
thermal_expansion = 10e-6
[../]
[./fuel_den]
type = Density
block = fuel
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
[../]
[./PyCBuffer]
type = PyCIrradiationStrain
block = buffer
fluence = fluence
pyc_type = buffer
[../]
[./buffer_disp]
type = Elastic
block = buffer
temp = temp
youngs_modulus = 2.0e8
poissons_ratio = 0.345
thermal_expansion = 5.5e-6
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_den]
type = Density
density = 1000.0 #kg/m^3
block = buffer
[../]
[./IPyC_density]
type = PyCIrradiationStrain
block = IPyC
fluence = fluence
pyc_type = dense
[../]
[./IPyC_disp]
type = CreepPyC
block = IPyC
temp = temp
youngs_modulus = 3.96e10
poissons_ratio = 0.33
thermal_expansion = 5.50e-6
flux = fast_neutron_flux
density = 1880.0 # kg/m^3
[../]
[./IPyC_temp]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./IPyC_den]
type = Density
density = 1880.0 # kg/m^3
block = IPyC
[../]
[./SiC_disp]
type = Elastic
block = SiC
temp = temp
youngs_modulus = 3.7e11
poissons_ratio = 0.13
thermal_expansion = 4.9e-6
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_den]
type = Density
density = 3200.0 # kg/m^3
block = SiC
[../]
[./OPyC_density]
type = PyCIrradiationStrain
block = OPyC
fluence = fluence
pyc_type = dense
[../]
[./OPyC_disp]
type = CreepPyC
block = OPyC
temp = temp
youngs_modulus = 3.96e10
poissons_ratio = 0.33
thermal_expansion = 5.50e-6
flux = fast_neutron_flux
density = 1880.0 # kg/m^3
[../]
[./OPyC_temp]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./OPyC_den]
type = Density
density = 1880.0 # kg/m^3
block = OPyC
[../]
[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 20
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-4
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 3.10176e7
dtmax = 2e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 10
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./max_xx_IPyC]
type = ElementExtremeValue
variable = stress_xx
block = IPyC
[../]
[./max_yy_IPyC]
type = ElementExtremeValue
variable = stress_yy
block = IPyC
[../]
[./min_zz_IPyC]
type = ElementExtremeValue
variable = stress_zz
block = IPyC
value_type = min
[../]
[./max_xx_SiC]
type = ElementExtremeValue
variable = stress_xx
block = SiC
[../]
[./max_yy_SiC]
type = ElementExtremeValue
variable = stress_yy
block = SiC
[../]
[./min_zz_SiC]
type = ElementExtremeValue
variable = stress_zz
block = SiC
value_type = min
[../]
[./max_xx_OPyC]
type = ElementExtremeValue
variable = stress_xx
block = OPyC
[../]
[./max_yy_OPyC]
type = ElementExtremeValue
variable = stress_yy
block = OPyC
[../]
[./min_zz_OPyC]
type = ElementExtremeValue
variable = stress_zz
block = OPyC
value_type = min
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = 'initial linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = 'initial linear'
[../]
[./volumeTotal]
type = InternalVolume
component = 0
boundary = exterior
execute_on = 'initial TIMESTEP_END'
[../]
[./volumeFuel]
type = InternalVolume
component = 0
boundary = fuel
execute_on = 'initial TIMESTEP_END'
[../]
[./volumeGas]
type = InternalVolume
component = 0
boundary = BufferGapVol
addition = -5.53e-11
execute_on = 'initial TIMESTEP_END'
[../]
[./volumeBufferShell]
type = InternalVolume
component = 0
boundary = BufferGapVol
execute_on = 'initial TIMESTEP_END'
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = BufferGapVol
variable = temp
execute_on = 'INITIAL TIMESTEP_END'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'INITIAL TIMESTEP_END'
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
execute_on = 'INITIAL TIMESTEP_END'
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
execute_on = 'INITIAL TIMESTEP_END'
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
execute_on = 'INITIAL TIMESTEP_END'
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
execute_on = 'INITIAL TIMESTEP_END'
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./chkfile]
type = CSV
execute_on = Final
show = 'co_production fis_gas_released avg_surface_temp'
[../]
[]
assessment/LWR/validation/IFA_519/analysis/rod_DH/SM/IFA_519_rod_DH_sm.i
# IFA-519.9 Rod DH
[GlobalParams]
density = 10400.0 # Table 1 HWR 668
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (200 MeV per fission)
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
file = IFA_519_DH_smeared.e
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
patch_update_strategy = auto
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./grain_radius]
block = 3
initial_condition = 4.68e-6 # 2D grain radius 3e-6
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = 519_DH_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
x = '-100 0 548232673 548245008'
y = '0.0298015 1 1 0.0298015'
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = 519_coolant_temp.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system (in all cases here, the axisymmetric (RZ) version is specified)
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.24644
a_lower = 0.00324
fuel_inner_radius = 0
fuel_outer_radius = 0.00465
i_enrich = '0.13 .87 0 0 0 0' # 13% enriched U-235
RPF = RPF
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 1.6e12 #(n/m2-s per W/m) taken from IFA-431
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
roughness_clad = 1.0e-6
roughness_fuel = 2.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 226456400
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020 # 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6 # taken from IFA-431
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.59e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get inital fill gas mass
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
refab_time = 226456400
refab_pressure = 2.8e6
refab_temperature = 293
refab_volume = 9.2e-6
displacements = 'disp_x disp_y'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./density_clad]
type = Density
block = '1'
density = 6551.0
[../]
[./density_fuel]
type = Density
block = 3
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.053
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
density = 10400.0
tensor_mechanics_compatibility = true
[../]
[./fuel_creep]
type = Elastic
block = 3
temp = temp
stress_free_temperature = 293
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.0093 #Fuel pellet diameter in m
q = q
gap = 2.0e-4 #diametral gap in m
burnup_relocation_stop = 0.031254
relocation_activation1 = 5000 #initial relocation activation power in W/m
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = '1'
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = '1'
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
stress_free_temperature = 293
material_type = SRA # Zr-4 cladding
youngs_modulus = 7.5e10
poissons_ratio = 0.3
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 548245008
dtmax = 1e6
dtmin = 1
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 1000
linear_iteration_ratio = 100
growth_factor = 5
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = 3
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 3
[../]
[./ave_burnup]
type = ElementAverageValue
variable = burnup
block = 3
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BEN013/TM/BEN013_tm.i
################################################################################
#
# Description: Calvert Cliffs BEN013
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BEN013_power.csv
# axial peaking factor file BEN013_axial_peaking.csv
# flux boundary condition file BEN013_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10411.07 #94.882 %TD Assume TD = 10972.65 kg/cm3
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.28581
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.2e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BEN013_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BEN013_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 177922434 177922794'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 177922434 177922794'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BEN013_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0095631 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 190.5e-6 #diametral gap in m
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10411.07
total_densification = 0.01
initial_porosity = 0.05
eigenstrain_name = fuel_volumetric_strain
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 177922794
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
# execute_on = 'FINAL'
sync_times = '3600 7200 10800 14400 177922434 177922794'
sync_only = true
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM043/SM/BFM043.i
################################################################################
#
# Description: Calvert Cliffs BFM043
#
#
#
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFM043_power.csv
# axial peaking factor file BFM043_axial_peaking.csv
# flux boundary condition file BFM043_fast_flux.csv
################################################################################
[GlobalParams]
density = 10386.93 #94.662 %TD Assume TD = 10972.65 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.31834
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 3.85e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFM043_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFM043_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 179369250 179369610'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 179369250 179369610'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFM043_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155 # m
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elasticity_and_creep]
type = Elastic #CreepUO2
block = 3
temp = temp
# fission_rate = fission_rate
# cracking_stress = 130e6
# max_cracks = 1
# active_crack_planes = 2
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
# grain_radius = 6.0e-6
# grain_radius = 10.0e-6 # set larger than 6 microns (see ForMas) to impove convergence
# oxy_to_metal_ratio = 2.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.0095631 # fuel pellet diamter in meters
gap = 190.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .029 # turn off relocation
relocation_activation1 = 5000
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 179369610
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/IFA_432/analysis/rod1/SM/IFA_432_rod1_sm.i
[GlobalParams]
density = 10431 # initial fuel density 95% of theoretical (10980 kg/m3)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa_432_rod1_fine.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 513.3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4 5'
initial_condition = 3.5e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = bol_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factor]
type = PiecewiseBilinear
data_file = bol_axial.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.029395 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factor'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = '3 4 5'
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
factor = 1.6e12 #(n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4 5'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = '3 4 5'
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
num_radial = 81
num_axial = 21
a_lower = 0.01494
a_upper = 0.58644
fuel_inner_radius = 0.00
fuel_outer_radius = 0.005339
fuel_volume_ratio = 0.992245
i_enrich = '0.1 .9 0 0 0 0' # 10% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_fuel = 2.16e-6
roughness_clad = 6.35e-7
roughness_coef = 3.2
quadrature = true
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 513.3
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0135e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = '3 4 5'
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_density]
type = Density
block = '3 4 5'
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4 5'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = '3 4 5'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
stress_free_temperature = 297
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = '3 4 5'
burnup_function = burnup
q = q
diameter = 1.0678e-2
gap = 230.0e-6
relocation_activation1 = 5000
burnup_relocation_stop = 0.00821
tensor_mechanics_compatibility = true
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
stress_free_temperature = 297
model_irradiation_growth = true
model_thermal_expansion = false
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4 5'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 80
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# Time steps set up to match halden data
# start_time = -100
n_startup_steps = 1
end_time = 29700
dtmin = 1
[./TimeStepper]
type = ConstantDT
dt = 900
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3 4 5'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4 5'
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3 4 5'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
block = '3 4 5'
burnup_function = burnup
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4 5'
outputs = exodus
[../]
[./power_lower_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.075265 0'
[../]
[./power_upper_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.50389 0'
[../]
[./upper_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 9080 # paraview global node id 9081
[../]
[./lower_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 2750 # paraviw global node id 2751
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'fission_gas_released rod_total_power upper_TC_temp lower_TC_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'temp disp_x disp_y'
show_var_residual_norms = true
[]
assessment/LWR/validation/IFA_535/analysis/rod_812/SM/IFA_535_rod_812_sm.i
# IFA 535.6 rod 812 (Table & Figure references are to IFA-535.pdf)
[GlobalParams]
density = 10398.06 #Table 1 (PDF page 14), 94.7% TD #Assuming a TD of 10980.
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
group_variables = 'disp_x disp_y'
[]
[Mesh]
file = ifa535_rod812.e
patch_size = 20 # 50
patch_update_strategy = auto
[]
[UserObjects]
[./fuelPinGeometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 297.0
# If the initial diameter from the mesh
# is compared to the pre & post-ramp diameters, then they should probably
# be compared at the same cladding temperatures.
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = 'clad'
[../]
[./fast_neutron_fluence]
block = 'clad'
[../]
[./grain_radius]
block = 'pellet_type_1' #'pellet'
initial_condition = 9.36e-6 # 2D grain radius 6um #From rod 810
#2.75e-6 #Table 3.2, 5.5/2 microns (Assuming 3D grain size)
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = avgPower_IFA535rod812.csv
format = columns
#direction = left
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = axialPowerPeakingFactor_IFA535rod812.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 212261117 212261147 212264717 212264747 222089867 222090767'
y = '1.4475e-2 1 1 1.4475e-2 1.4475e-2 1 1 1.4475e-2'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./cladTemp]
type = PiecewiseLinear
data_file = avgCladTemp_IFA535rod812.csv
format = columns
#direction = left
scale_factor = 1
[../]
[./cladPeakingFactors]
type = PiecewiseBilinear
data_file = axialCladTempPeakingFactor_IFA535rod811.csv
scale_factor = 1
axis = 1
[../]
[./cT]
type = CompositeFunction
functions = 'cladTemp cladPeakingFactors'
[../]
[./fluxFactor]
type = PiecewiseLinear
data_file = flux_IFA535rod811.csv
format = columns
#direction = left
scale_factor = 1
[../]
[./fluxValue]
type = CompositeFunction
functions = 'fluxFactor power_profile'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = 'pellet_type_1' #'pellet' # fission rate applied to the fuel (block 2) only
#fission_rate = fission_rate # coupling to the fission_rate aux variable
burnup_function = burnup
#fuel_pin_geometry = fuelPinGeometry
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
order = CONSTANT
family = MONOMIAL
block = 'pellet_type_1' #'pellet'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
fuel_pin_geometry = fuelPinGeometry
#a_upper = 337.53e-3 #317.4e-3+20.13e-3 (a_lower+pellet_height),top of fuel stack
#a_lower = 20.13e-3 #From top_bot_clad_height #18.5e-3 #bottom of fuel stack, Figure 3.1
#fuel_inner_radius = 0
#fuel_outer_radius = 4.569e-3 #Table 3.2, from diameter
i_enrich = '0.0988 0.9012 0 0 0 0' #Table 3.2
#fuel_volume_ratio = 0.9756625712887741 #(dimple fraction) from calculations in fuel_volume_ratio.ipynb
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 'clad'
axial_power_profile = axial_peaking_factors
#rod_ave_lin_pow = power_profile
#factor = 3.71098e13 #from fluxCalc.xlsx #8.025e17 #Table 3.7, avg. of cycles 8-11, converted to n/(m^2-s)
function = fluxValue
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 'pellet_type_1' #'pellet'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
# include hydrostatic stress for possible use in ForMas
block = 'pellet_type_1' #'pellet'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at
# the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = clad
index = 0
execute_on = timestep_end # for efficiency, only compute at
# the end of a timestep
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = clad
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = clad
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = clad
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
# Define mechanical contact between the
# fuel (sideset=10) and the clad (sideset=5)
master = 5
slave = 10
#penalty = 1e7 #for kinematic (default method is kinematic)
formulation = penalty #used by rod 810
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
# Define thermal contact between the
# fuel (sideset=10) and the clad (sideset=5)
type = GapHeatTransferLWR
variable = temp
master = 5 #'4 5 6' #5
slave = 10 #8 #10
initial_moles = initial_moles # coupling to a postprocessor
# which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor
# which supplies the fission gas addition
roughness_clad = 1e-6 #default
roughness_fuel = 2e-6 #use 2e-6 instead of default
roughness_coef = 3.2 #use 3.2 unless know better
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 212261147
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
# pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
# pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
# pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 7e6 #pp. 8 of "535.pdf"
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 0.1e6 #from pp.6 of "535.pdf" for IFA-409
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get
# inital fill gas mass
temperature = plenum_temperature # coupling to post processor to get
# gas temperature approximation
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get
# fission gas added
output = plenum_pressure # coupling to post processor to
# output plenum/gap pressure
refab_time = 212261147 #212264717 #217722744
refab_pressure = 3.21e6
refab_temperature = 298.15 #449.05
refab_volume = 9.6e-6
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
[../]
[../]
[./claddingSurfTemp]
type = FunctionDirichletBC
function = cT
boundary = '1 2 3' #2 # cladding boundary
variable = temp
[../]
[]
[Materials]
[./density_clad]
type = Density
block = 'clad'
density = 6551.0 #Check this value; cladding is Zr-2
[../]
[./density_fuel]
type = Density
block = 'pellet_type_1' #'pellet'
[../]
[./fuel_thermal]
# temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
block = 'pellet_type_1' #'pellet'
temp = temp
burnup_function =burnup
initial_porosity = .053 #(1-density/theoreticalDensity)
thermal_conductivity_model = NFIR # thermal conductivity model (independent of reactor type)
[../]
[./fuel_creep]
# thermal and irradiation creep for UO2 (bison kernel)
type = Elastic #CreepUO2
block = 'pellet_type_1' #'pellet'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
#stress_free_temperature = 297
#volumetric_strain = deltav_v0_swe
dep_matl_props = deltav_v0_bd # default value is detav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = 'pellet_type_1' #'pellet'
burnup_function =burnup
fuel_pin_geometry = fuelPinGeometry
#diameter = 9.138e-3 #Fuel pellet diameter in m, Table 3.2
q = q
#gap = .145e-3 #diametral gap in m, clad ID-pellet OD, Tables 3.2 & 3.4
burnup_relocation_stop = 0.2 #0.02 #set higher because contact occurs many times throughout the simulation
relocation_activation1 = 5000 #initial relocation activation power in W/m
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
# general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 'clad'
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
# thermoelasticity and thermal and irradiation creep for Zr4 (& Zr2) (bison kernel)
type = MechZry
block = 'clad'
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
#stress_free_temperature = 297
model_irradiation_growth = true
model_thermal_expansion = true #default
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (bison kernel)
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = 'pellet_type_1' #'pellet'
temp = temp
#burnup = burnup
burnup_function = burnup #for experiment-given/specified burnup
tensor_mechanics_compatibility = true
[../]
[./fission_gas_release]
type = Sifgrs
block = 'pellet_type_1' #'pellet'
temp = temp
#fission_rate = fission_rate # coupling to fission_rate aux variable
#initial_grain_radius = 9.36e-6 # 2D grain radius 6um #From rod 810
#2.75e-6 #Table 3.2, 5.5/2 microns (Assuming 3D grain size)
grain_radius = grain_radius
gbs_model = true
burnup_function =burnup
#total_densification = 0.009 #Leave at default
initial_porosity = .053 #(1-density/theoreticalDensity)
transient_option = 2
#compute_swelling = true
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200.0
min_value = 200
[../]
# [./limitDisp]
# type = MaxIncrement
# max_increment = 1e-5
# variable = disp_x
# [../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-3 #1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 222090767 #last time step from avgPower_IFA535rod812.csv
dtmax = 2e6 #1e6
dtmin = 1
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
force_step_every_function_point = true
timestep_limiting_function = power_profile
max_function_change = 3e20
optimal_iterations = 20 #15
iteration_window = 6
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
# volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./avg_clad_temp]
# average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 'pellet_type_1' #'pellet'
[../]
[./input_rod_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./maxCenterlineTemp]
type = NodalMaxValue
boundary = 12 # pellet_centerline
variable = temp
[../]
[./maxFuelPenetration]
type = NodalMaxValue
boundary = 10 # pellet_centerline
variable = penetration
[../]
[./minFuelPenetration]
type = NodalExtremeValue
boundary = 10 # pellet_centerline
value_type = min
variable = penetration
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = 'pellet_type_1' #'pellet'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_1
temperature = temp
mechanics_system = SOLID
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
#checkpoint = true
#execute_on = 'nonlinear timestep_end'
csv = true
exodus = true
[./console]
type = Console
output_linear = true
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT4/SM/MT4_1-1kW_sm.i
################################################################################
#
# Description: LOCA MT-4 Test with constant power level of 1.1 kW/m
#
#
# External files:
# axial peaking factor file MT4_axial_peaking.csv
#
################################################################################
[GlobalParams]
density = 10431 #95 %TD Assume TD = 10980 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 6.1e-4
pellet_mesh_density = customize
ny_p = 100
nx_c = 4
nx_p = 12
pellet_outer_radius = .00413
ny_cu = 3
ny_c = 100
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.66
ny_cl = 3
clad_top_gap_height = 0.18613
clad_gap_width = 7.5e-5
elem_type = QUAD8
patch_size = 20 # 1000 lowering this and setting the strategy to auto will reduce the amount of memory required to run the job.
patch_update_strategy = auto
partitioner = centroid # this will help with run time
centroid_partitioner_direction = y # this will help with run time
[]
[DefaultElementQuality]
aspect_ratio_upper_bound = 253
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = temp_func
[../]
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 7.8e-6 # 2D grain radius
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase] # Fraction of beta phase in Zry
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate_aux]
order = CONSTANT
family = MONOMIAL
[../]
[./bursted]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./htype]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 110'
y = '1.1e3 1.1e3'
[../]
[./hmode_function]
type = PiecewiseConstant
x = '0 57 110'
y = '9 10 10'
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = MT4_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '0 110'
y = '0.28 0.28'
scale_factor = 1e6
[../]
[./temp_func]
type = ParsedFunction
value = '-24.096*y*y+152.47*y+437.81' #
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3 # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate # coupling to the fission_rate aux variable
save_in = saved_t
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
factor = 0.16e15 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = '1 2 3'
[../]
[./hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = hmode
boundary = '1 2 3'
[../]
[./htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = htype
boundary = '1 2 3'
[../]
[./elastic_strain_yy]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_yy
index = 1
execute_on = timestep_end
[../]
[./elastic_strain_xx]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_xx
index = 0
block = 1
execute_on = timestep_end
[../]
[./elastic_strain_zz]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_zz
index = 2
block = 1
execute_on = timestep_end
[../]
[./plastic_strain_yy]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_yy
index = 1
block = 1
execute_on = timestep_end
[../]
[./plastic_strain_xx]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_xx
index = 0
block = 1
execute_on = timestep_end
[../]
[./plastic_strain_zz]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_zz
index = 2
block = 1
execute_on = timestep_end
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = 1
[../]
[./creep_rate]
type = MaterialRealAux
variable = creep_rate
property = creep_rate
block = 1
execute_on = timestep_end
[../]
[./creep_rate_aux]
type = MaterialRealAux
variable = creep_rate_aux
property = creep_rate
block = 1
execute_on = timestep_end
[../]
[./bursted]
type = MaterialRealAux
variable = bursted
property = failed
boundary = 2
execute_on = timestep_end
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
quantity = hoop
execute_on = timestep_end
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./axial_strain]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./total_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_strain
quantity = hoop
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[]
#TODO: Add option in StandardLWRFuelRodOutputs to compute plenum temperature this way.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.66478
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00413 # m
i_enrich = '0.0293 .9707 0 0 0 0' # 2.93% enriched U-235
RPF = RPF
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e7
normalize_penalty = true
system = Constraint
model = frictionless
# model = coulomb
formulation = penalty
# friction_coefficient = 1.0
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
# Define boundary conditions
[BCs]
# [./clad_inner_surface]
# type = FunctionNeumannBC
# boundary = 5
# function = q
# variable = temp
# [../]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 1.0 # Pa
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9 # clad interior + fuel exterior
initial_pressure = 9.3e6 # Pa
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 311 # K
inlet_pressure = 0.28e6 # Pa
# inlet_massflux = massfluxfunc # kg/m^2-sec
rod_diameter = 0.00963 # m
rod_pitch = 1.275e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
heat_transfer_mode = hmode_function
heat_transfer_coefficient = 0.0000001 #W/m^2-K
# heat_transfer_mode = 10
htc_correlation_type = 1
flooding_time = 57.0
flooding_rate = 0.127 # m/s
initial_temperature = 1140 # K
initial_power = 1.628 # kW/m
blockage_ratio = 0.0 #
fuel_stack_length = 3.66 # m
reflooding_model = 1
compute_enthalpy = false
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
cold_work_factor = 0.5
formulation = NonlinearRZ
model_thermal_expansion = false
model_elastic_modulus = false
model_irradiation_growth = false
constitutive_model = combined
max_inelastic_increment = 1e-4
compute_material_timestep_limit = true
[../]
[./creep]
type = CreepZryModel
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
temp = temp
model_primary_creep = false
model_thermal_creep = false
model_thermal_creep_loca = true
model_irradiation_creep = false
creeprate_scalef = 1.0
temp_standard_creep_end = 700.
temp_loca_creep_begin = 900.
[../]
[./combined]
type = CombinedCreepPlasticity
block = 1
temp = temp
submodels = 'creep'
[../]
[./plasticity]
type = ZryPlasticity
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
Zircaloy_type = 4
[../]
[./phase]
type = ZrPhase
block = 1
temperature = temp
numerical_method = 2
[../]
[./failure_criterion]
type = FailureCladding
boundary = '2'
criterion = 2
hoop_stress = hoop_stress
eff_strain_rate_creep = creep_rate_aux
temperature = temp
fract_beta_phase = fract_beta_phase
outputs=all
output_properties='failed burst_stress'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
# initial_grain_radius = 6.552e-6 # 2D grain radius 4.2e-6
grain_radius = grain_radius
gbs_model = true
burnup = burnup
# compute_swelling = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
# [./contact_slip]
# type = ContactSlipDamper
# master = 5
# slave = 10
# min_damping_factor = 0.05
# [../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = 0.0
end_time = 110
dtmax = 5
dtmin = 0.00001
[./TimeStepper]
type = PostprocessorDT
postprocessor = material_timestep
dt = 0.01
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
execute_on=linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
execute_on=linear
[../]
[./max_betaph_fract]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
execute_on=timestep_end
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
execute_on=timestep_end
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.66 # rod height
execute_on=timestep_end
[../]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = 1
[../]
[./max_creep_rate]
type = ElementExtremeValue
block = 1
value_type = max
variable = creep_rate_aux
[../]
[./bursted]
type = ElementExtremeValue
block = 1
value_type = max
variable = bursted
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'bursted > 0'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[./console]
type = Console
output_linear = true
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_2DRZ_t.i
[GlobalParams]
density = 10964.6
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type= ReferenceResidualProblem
coord_type = RZ
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.4
pellet_outer_radius = 0.002675
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000105
clad_thickness = 0.00047
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 0.685
elem_type = QUAD8
nx_c = 4
ny_c = 100
nx_p = 20
ny_p = 100
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
[../]
[]
[AuxVariables]
[./pore]
[../]
[./fission_rate]
[../]
[./burnup]
[../]
[./saved_t]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_p]
[../]
[./fast_neutron_flux]
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 39814.5 39814.5 44289.3 44289.3 53927.4 53927.4 0'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 251280'
y = '3.3e+15 3.3e+15'
[../]
[./f_temp_out_clad]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 634.94 662.273 676.998 686.217 706.339 727 743.358 758.311 780.069 799.077 815.576 846.374 860.233 875.494 882.809 889.8'
scale_factor = 1
axis = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846 0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846'
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./average_power_history]
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 34700 34700 38600 38600 47000 47000 0'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.143
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.00535
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = fast_neutron_flux_function
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./temp_clad_outside]
type = FunctionPresetBC
variable = temp
function = f_temp_out_clad
boundary = 2
[../]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
temperature = temp
porosity = pore
block = pellet
Am_content = 0.0237
oxy_to_metal_ratio = 1.99
output_properties = 'thermal_conductivity'
[../]
[./fuel_density]
type = Density
block = pellet
density = 10964.6
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10964.6
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = Thermal316
block = clad
temp = temp
[../]
[./clad_density]
type = Density
block = clad
density = 8000
[../]
[./clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
fission_rate = fission_rate
grain_radius_const = 10e-06
bubble_gb_limit = 1.0e+11
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
picard_max_its = 1
picard_abs_tol = 1e-3
picard_rel_tol = 1e-3
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-3
nl_abs_tol = 1e-3
start_time = 0
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
[../]
[./ave_pore]
type = ElementAverageValue
block = pellet
variable = pore
[../]
[./max_pore]
type = NodalExtremeValue
block = pellet
value_type = max
variable = pore
[../]
[./min_pore]
type = NodalExtremeValue
block = pellet
value_type = min
variable = pore
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.4 # rod height
[../]
[]
[VectorPostprocessors]
[./fuel_radial_temperature_Sample1]
type = LineValueSampler
variable = temp
start_point = '0.0 0.283 0.0'
end_point = '0.002675 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_Sample1]
type = LineValueSampler
variable = pore
start_point = '0.0 0.283 0.0'
end_point = '0.002675 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./fuel_radial_temperature_Sample2]
type = LineValueSampler
variable = temp
start_point = '0.0 0.347 0.0'
end_point = '0.002675 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_Sample2]
type = LineValueSampler
variable = pore
start_point = '0.0 0.347 0.0'
end_point = '0.002675 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./fuel_radial_temperature_Sample3]
type = LineValueSampler
variable = temp
start_point = '0.0 0.2 0.0'
end_point = '0.002675 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[./radial_porosity_Sample3]
type = LineValueSampler
variable = pore
start_point = '0.0 0.2 0.0'
end_point = '0.002675 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./line_plot]
type = CSV
execute_on = 'FINAL'
interval = 1
file_base = 1d
create_final_symlink = true
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[../]
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = b14_ptm010_pore.i
[../]
[]
[Transfers]
[./temp_to_sub]
type = MultiAppProjectionTransfer
direction = to_multiapp
multi_app = sub
source_variable = temp
variable = temp
[../]
[./pore_from_sub]
type = MultiAppInterpolationTransfer
direction = from_multiapp
multi_app = sub
source_variable = pore
variable = pore
[../]
[]
[Debug]
show_var_residual_norms = true
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_polypole2.i
# @Requirement F2.40
# This test is for evaluating the PolyPole-2 algorithm (for the intra-granular diffusion calculation)
# in the Sifgrs fission gas behavior model.
#
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = '1700'
[../]
[./Fiss_func]
type = ParsedFunction
value = '2.5e19'
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 1700
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[../]
[]
[Materials]
[./UO2]
type = HeatConductionMaterial
block = 1
temp = T
thermal_conductivity = 1.0
specific_heat = 1.0
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 1
skip_bdr_model = true
temp = T
fission_rate = fission_rate
ig_diff_algorithm = 2 # use PolyPole-2 algorithm
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[./fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
assessment/LWR/validation/IFA_535/analysis/rod_809/SM/IFA_535_rod_809_sm.i
[GlobalParams]
density = 10398.06 #Assuming 10980 as the theoretical density
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
group_variables = 'disp_x disp_y'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
file = ifa535_rod809.e
patch_size = 20 # 50
patch_update_strategy = auto
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./fast_neutron_flux]
block = 'clad'
[../]
[./fast_neutron_fluence]
block = 'clad'
[../]
[./grain_radius]
block = 'pellet_type_1'
initial_condition = 9.36e-6 # 2D grain radius 6um
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_profile]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = ifa535_809_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = ifa535_809_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
x = '-100 0 226494828 226496628 226498428 226516428 233159868 233159888'
y = ' 0.0303 1 1 0.0303 0.0303 1 1 0.0303'
[../]
[./flux] # reads and interpolates input data defining fast neutron flux
type = PiecewiseLinear
data_file = ifa535_809_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = ifa535_809_clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction # reads and interpolates an input file containing rod average linear power vs time
functions = 'power_profile axial_peaking_factors'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system (in all cases here, the axisymmetric (RZ) version is specified)
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 'pellet_type_1' # fission rate applied to the fuel (block 2) only
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
order = CONSTANT
family = MONOMIAL
block = 'pellet_type_1'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.48724
a_lower = 0.01924
fuel_inner_radius = 0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1
RPF = RPF
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 'clad'
axial_power_profile = axial_peaking_factors
function = flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 'clad'
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 'pellet_type_1'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress] # include hydrostatic stress for possible use in ForMas
block = 'pellet_type_1'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx] # computes stress components for output
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = clad
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = clad
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = clad
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = clad
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
roughness_clad = 0.81e-6
roughness_fuel = 1.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 226498428
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 3.2e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 0.1e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get inital fill gas mass
temperature = plenum_temperature # coupling to post processor to get gas temperature approximation
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
refab_time = 226498428
refab_pressure = 0.7e6
refab_temperature = 449.05
refab_volume = 9.6e-6
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./swelling]
type = VSwellingUO2
block = 'pellet_type_1'
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./density_clad]
type = Density
block = 'clad'
density = 6551.0
[../]
[./density_fuel]
type = Density
block = 'pellet_type_1'
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
block = 'pellet_type_1'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (bison kernel)
type = Elastic #CreepUO2
block = 'pellet_type_1'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
# burnup_function = burnup
# grain_radius = 3.0e-6
# grain_radius = 5.85e-6 # maximum grain size measured during PIE
# oxy_to_metal_ratio = 2.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = 'pellet_type_1'
burnup_function = burnup
diameter = 0.01054 #Fuel pellet diameter in m
q = q
gap = 2.44e-4 #diametral gap in m
burnup_relocation_stop = 0.029
relocation_activation1 = 5000 #initial relocation activation power in W/m
tensor_mechanics_compatibility = true
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 'clad'
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr4 (bison kernel)
type = MechZry
block = 'clad'
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
model_irradiation_growth = true
model_thermal_expansion = false
formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = 'pellet_type_1'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
# controls for linear iterations
l_max_its = 60
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
# time control
start_time = -100
end_time = 233159888
dtmax = 5e5
dtmin = 1
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
force_step_every_function_point = true
timestep_limiting_function = power_profile
optimal_iterations = 25
iteration_window = 6
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 'pellet_type_1'
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = 'pellet_type_1'
[../]
[./clad_elong]
type = NodalVariableValue
variable = disp_y
nodeid = 2359 #Global node ID 9739
[../]
[./input_rod_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_1
temperature = temp
mechanics_system = SOLID
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
sync_times = 5556726
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
examples/tensor_mechanics/2D-RZ_rodlet_10pellets/fuelpingeo_tm.i
# Model is of a smeared pellet fuel rod (pellet_type_1), using the user object fuel pin geometry.
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
initial_porosity = 0.05
order = SECOND
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
# Import mesh file
file = smeared.e
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
# Define dependent variables and initial conditions
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors12.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
fuel_pin_geometry = 'pin_geometry'
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
quadrature = true
contact_pressure = contact_pressure
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor] # isotropic elasticity tensor for UO2
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress] # elastic stress for UO2 (used instead of creep)
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./fuel_thermal_expansion] # thermal expansion strain for UO2
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation] # relocation strain measure for UO2
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
linear_heat_rate_function = q
fuel_pin_geometry = 'pin_geometry'
burnup_relocation_stop = 0.024
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_1
temperature = temp
burnup_function = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./clad_thermal] # general thermal property input for clad
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor] # isotropic elasticity tensor for Zry cladding
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress] # stress update class to govern the return mapping algorithm for creep
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep] # creep for zircaloy cladding
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200
min_value = 0
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
execute_on = 'linear'
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on = timestep_end
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on = timestep_end
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
execute_on = timestep_end
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
execute_on = timestep_end
[../]
#Stress Measures
[./center_vonMises_fuel]
type = ElementalVariableValue
elementid = 176 # mesh dependent (contains pt. 0.0041, 0.0546333)
variable = vonmises_stress
execute_on = timestep_end
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet_type_1
execute_on = timestep_end
[../]
[./center_vonMises_clad_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent (contains pt. 0.00418, 0.0556267)
variable = vonmises_stress
execute_on = timestep_end
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
execute_on = timestep_end
[../]
# Radial Strain
[./center_strain_rr_fuel]
type = ElementalVariableValue
elementid = 176 # mesh dependent (contains pt. 0.0041, 0.0546333)
variable = radial_strain
execute_on = timestep_end
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet_type_1
execute_on = timestep_end
[../]
[./center_strain_rr_clad_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent (contains pt. 0.00418, 0.0556267)
variable = radial_strain
execute_on = timestep_end
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
execute_on = timestep_end
[../]
[./center_creep_strain_clad_inner]
type = ElementalVariableValue
elementid = 429 # mesh dependent (contains pt. 0.00418, 0.0556267)
variable = effective_creep_strain
execute_on = timestep_end
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
# Contact quantities
[./center_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
execute_on = timestep_end
[../]
[./center_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
execute_on = timestep_end
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[]
[VectorPostprocessors]
[./clad]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_clad_radial_displacement'
execute_on = timestep_end
[../]
[./pellet]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_fuel_radial_displacement'
execute_on = timestep_end
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./outfile_clad_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/IFA_515_RodA1/analysis/SM/IFA515_sm.i
# Reference document HWR-671
# Block 1 = cladding, Block 3 and 5 = insulators Block 4 = fuel
[GlobalParams]
density = 10628.64 # initial fuel density 96.8% of theoretical (10980 kg/m3)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (200 MeV per fission)
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa515_insulator.e
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./grain_radius]
block = 4
initial_condition = 7.75e-6 # (18.1+13.1+15.3)/(3*2)
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = IFA515_power.csv
format = columns
[../]
[./axial_peaking_factors]
type = ParsedFunction # no axial power profile
value = '1'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = IFA515_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
type = ParsedFunction # no axial clad temp
value = '1'
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 199274402 199274403'
y = '0.0298 1 1 0.0298'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 4 # fission rate applied to the fuel only
fission_rate = fission_rate # coupling to the fission_rate aux variable
[../]
[]
[Burnup]
[./burnup]
block = 4
rod_ave_lin_pow = power_profile # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 20
a_lower = 0.00851 # Checked with Paraview
a_upper = 0.22051 # Checked with Paraview
fuel_inner_radius = 0.0009 # Checked with Paraview
fuel_outer_radius = 0.00278 # Checked with Paraview
i_enrich = '0.115 0.885 0 0 0 0' # 11.5% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
factor = 1.6e12 #(n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 4
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = 1
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel and insulators
system = constraint
formulation = kinematic
penalty = 1e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact_clad]
# thermal conatact between the fuel outer radius and the clad inner wall
type = GapHeatTransferLWR
variable = temp
master = 5 # clad Zr barrier not modeled
slave = 10 # fuel and insulators
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
roughness_clad = 1e-6
roughness_fuel = 2.8e-7 # (2.6e-7+3e-7)/2 = 2.8e-7
roughness_coef = 3.2
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.40e6 # CHECK could not locate a number in hwr-671
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 4
burnup = burnup
temp = temp
tensor_mechanics_compatibility = true
density=10628.64
[../]
[./fuel_thermal]
type = ThermalFuel
block = '4'
temp = temp
thermal_conductivity_model = NFIR
burnup = burnup
initial_porosity = 0.032
[../]
[./insulator_thermal]
type = ThermalFuel
block = '3 5'
temp = temp
thermal_conductivity_model = NFIR
burnup_function = 0
initial_porosity = 0.032
[../]
[./fuel_creep]
type = Elastic
block = 4
dep_matl_props = deltav_v0_bd
temp = temp
stress_free_temperature = 300
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = 4
burnup = burnup
diameter = 0.00556
q = q
gap = 5.0e-5
relocation_activation1 = 5000
burnup_relocation_stop = 0.02524
tensor_mechanics_compatibility = true
[../]
[./insulator_creep]
type = Elastic
block = '3 5'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
increment_calculation = Eigen
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 8.8e10
poissons_ratio = 0.34
model_thermal_expansion = true
model_irradiation_growth = true
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
block = 4
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius = grain_radius
gbs_model = true
burnup = burnup
[../]
[./clad_density]
type = Density
block = '1'
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '4 3 5'
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 50
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 199278002 # 199275500+3600
dtmax = 1e6
dtmin = 1
# control for adaptive time steping
[./TimeStepper]
type = IterationAdaptiveDT
dt = 10000
optimal_iterations = 1000
growth_factor = 10
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 4
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 4
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '4'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./_dt]
type = TimestepSize
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 4
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.212 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 4
variable = fission_rate
[../]
[./average_rod_burnup]
type = ElementAverageValue
block = 4
variable = burnup
[../]
[./FCT_top]
type = NodalVariableValue
nodeid = 4066 # Global node ID 4067
variable = temp
[../]
[./FCT_mid]
type = NodalVariableValue
nodeid = 2073 # Global node ID 2074
variable = temp
[../]
[./FCT_bottom]
type = NodalVariableValue
nodeid = 125 # Global node ID 126
variable = temp
[../]
[./FCT_ave]
type = SideAverageValue
boundary = 13
variable = temp
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 4
cladding_blocks = 1
rod_component = BOTH
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_rod_burnup fission_gas_released FCT_top FCT_mid rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM070/TM/BFM070_tm.i
################################################################################
#
# Description: Calvert Cliffs BFM070
#
#
#
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFM070_power.csv
# axial peaking factor file BFM070_axial_peaking.csv
# flux boundary condition file BFM070_fast_flux.csv
################################################################################
[GlobalParams]
density = 10386.93 #94.662 %TD Assume TD = 10972.65 kg/cm3
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.32168
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 3.85e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFM070_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFM070_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 179225682 179226042'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 179225682 179226042'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFM070_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155 # m
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 5e-6
al_incremental_slip_tolerance = 1e-4
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0095631 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 190.5e-6 #diametral gap in m
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10386.93
total_densification = 0.01
initial_porosity = 0.05
eigenstrain_name = fuel_volumetric_strain
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 179226042
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/benchmark/AREVA_idealized_case/analysis/AREVA_idealized_case.i
[GlobalParams]
density = 10431.0 #95% TD (TD = 10980)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = AREVA_idealized_case_mesh_coarse.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 7.8e-6
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = power_history.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./average_fast_flux]
type = PiecewiseLinear
data_file = average_fast_flux.csv
scale_factor = 1
format = columns
[../]
[./axial_fast_flux_peaking_factors]
type = PiecewiseBilinear
data_file = axial_fast_flux_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./fast_flux]
type = CompositeFunction
functions = 'average_fast_flux axial_fast_flux_peaking_factors'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.0065371 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_upper = 3.65324
a_lower = 0.00324
fuel_inner_radius = 0.0
fuel_outer_radius = 0.0040425
i_enrich = '.045 .955 0 0 0 0' # 4.5% enriched U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = 3
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = fast_flux
block = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
penalty = 1e7
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.6e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 555
inlet_pressure = 15.5e6
inlet_massflux = 3700
rod_diameter = 9.5e-3
rod_pitch = 1.43e-2 # ASSUMED: NOT SPECIFIED
linear_heat_rate = power_profile
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.008085
q = q
gap = 8.25e-5
burnup_relocation_stop = 0.02
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
model_irradiation_growth = true
model_thermal_expansion = false
formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 100.0
[../]
[./limitx]
type = MaxIncrement
variable = disp_x
max_increment = 1e-5
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 1e-3
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
dtmax = 1e6
dtmin = 1
end_time = 185056065
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 20
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
force_step_every_function_point = true
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
outputs = exodus
[../]
[./int_flux_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./int_flux_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./average_fissionrate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = '3'
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = 1
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_mechanistic_igmodel.i
# @Requirement F2.40
# This test is for evaluating the mechanistic model for the intra-granular fission gas behavior and bubble evolution in the Sifgrs fission gas model.
#
[Mesh]
type = GeneratedMesh
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = '1273'
[../]
[./Fiss_func]
type = ParsedFunction
value = '1.e19'
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 1273
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[../]
[./rad_bbl_grn]
order = CONSTANT
family = MONOMIAL
[../]
[./bbl_grn_3]
order = CONSTANT
family = MONOMIAL
[../]
[./gas_bbl_grn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./bbl_cnc]
type = MaterialRealAux
variable = bbl_grn_3
property = bbl_grn_3
execute_on = 'linear'
[../]
[./rad_bbl]
type = MaterialRealAux
variable = rad_bbl_grn
property = rad_bbl_grn
execute_on = 'linear'
[../]
[./gascnc_bbl]
type = MaterialRealAux
variable = gas_bbl_grn
property = gas_bbl_grn_3
execute_on = 'linear'
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = bottom
[../]
[]
[Materials]
[./UO2]
type = HeatConductionMaterial
block = 0
temp = T
thermal_conductivity = 1.0
specific_heat = 1.0
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 0
skip_bdr_model = true
temp = T
fission_rate = fission_rate
grain_radius_const = 5.e-6
ig_bubble_model = 2
initial_porosity = 0.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 10
dt = 19800.
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 0
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 0
[../]
[]
[Outputs]
exodus = true
[]
assessment/LWR/validation/RIA_NSRR_FK/analysis/FK3/FK03.i
# This file was created using BIF with the following inputs:
# FK03/FK03.var - md5sum: 63fb064f9380e246b80d3fb7762c0b71
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
[GlobalParams]
density = 10020.6066633
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
displacements = 'disp_x disp_y'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
displacements = 'disp_x disp_y'
patch_size = 5
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
top_bot_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.05265
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[AuxVariables]
[./BuTC]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gap]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./fission_rate]
initial_condition = 0
[../]
[./grain_radius]
block = 3
initial_condition = 5.96e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./integral_burnup]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_radial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.085711070864
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[../]
[./flux]
type = ConstantFunction
value = 0.0
[../]
[./axial_peaking_factors]
type = ConstantFunction
value = 1
[../]
[./coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[../]
[./linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[../]
[./axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[../]
[./burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[../]
[./radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[../]
[./radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[../]
[./initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
i_enrich = '0.039 0.961 0.0 0.0 0.0 0.0'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
save_in = saved_t
block = 3
[../]
[]
[AuxKernels]
[./BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[../]
[./gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[../]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = timestep_begin
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_begin
[../]
[./radial_stress]
type = MaterialTensorAux
tensor = stress
variable = radial_stress
index = 0
execute_on = timestep_begin
[../]
[./axial_stress]
type = MaterialTensorAux
tensor = stress
variable = axial_stress
index = 1
execute_on = timestep_begin
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
index = 2
execute_on = timestep_begin
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./axial_strain]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = stress
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./elastic_radial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = radial_strain
index = 0
execute_on = timestep_begin
[../]
[./elastic_axial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_strain
index = 1
execute_on = timestep_begin
[../]
[./elastic_hoop_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_strain
index = 2
execute_on = timestep_begin
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_begin
[../]
[./creep_strain_radial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 0
execute_on = timestep_begin
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
index = 1
execute_on = timestep_begin
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 2
execute_on = timestep_begin
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
friction_coefficient = 2.5
normal_smoothing_distance = 0.1
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
roughness_coef = 3.2
roughness_fuel = 1.5e-6
roughness_clad = 1.75e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
initial_gas_fractions = '1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0'
gas_released = fission_gas_released
tangential_tolerance = 1.0e-6
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '10 5'
initial_pressure = 0.3e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
block = 3
temp = temp
burnup = BuTC
initial_porosity = 0.085711070864
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
temp = temp
burnup = burnup
total_densification = 0.006
gas_swelling_type = SIFGRS
[../]
[./fuel_mech]
type = MechUO2
block = 3
temp = temp
burnup = BuTC
fission_rate = fission_rate
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 5.56e-06
oxy_to_metal_ratio = 2.0
model_thermal_expansion = true
model_swelling = true
name_swelling_model = fuel_swelling
model_relocation = false
name_relocation_model = fuel_relocation
model_creep = false
model_hotpressing = false
has_hotpressing_plasticity = false # used to turn on plasticity models
matpro_youngs_modulus = false
matpro_poissons_ratio = false
dep_matl_props = deltav_v0_bd
# input_yield_stress = 100e6 # used to turn on plasticity models
# input_hardening_modulus = 2e9 # used to turn on plasticity models
# transition_temperature = 1273 # used to change the hot presing temperature
# isotropic_cracking = true # used for isotropic softening model
# rod_ave_lin_pow = linear_heat_rate_profile # used for isotropic softening model
# cracking_stress = 120e6 # used for smeared cracking model
# cracking_release = exponential # used for smeared cracking model
# cracking_residual_stress = 0.1 # used for smeared cracking model
# cracking_beta = 0.01 # used for smeared cracking model
# compute_method = ShearRetention # used for smeared cracking model
# max_cracks = 3 # used for smeared cracking model
# active_crack_planes = '0 1 2' # used for smeared cracking model
stress_free_temperature = 293
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = buavg
q = linear_heat_generation_rate
diameter = 0.01054
gap = 1e-05
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
creeprate_scalef = 1
cold_work_factor = 0.01
material_type = 0
model_irradiation_growth = false
model_thermal_expansion = true
model_elastic_modulus = true
constitutive_model = plasticity
compute_JIntegral = true
formulation = NonlinearRZ
[../]
[./combined]
type = CombinedCreepPlasticity
block = clad
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = clad
temp = temp
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
material_type = 0
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
[../]
[./plasticity]
type = ZryPlasticity
block = 1
temp = temp
initial_fast_fluence = 8.40e25
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
use_matpro = true
output_properties = yield_stress
outputs = all
scale_factor = 1.0
relative_tolerance = 1e-3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = 2
[../]
[./clad_density]
type = Density
block = 1
density = 6551
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[UserObjects]
[./avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[../]
[./integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 550000
force_step_every_function_point = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Postprocessors]
[./average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[]
[VectorPostprocessors]
[./rad_temp]
type = LineValueSampler
end_point = '0.00527 0.0503 0.0'
start_point = '0.0 0.0503 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
output_linear = true
[../]
[./dummy]
type = CSV
enable = true
[../]
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_polypole1.i
# @Requirement F2.40
# This test is for evaluating the PolyPole-1 algorithm (for the intra-granular diffusion calculation)
# in the Sifgrs fission gas behavior model.
#
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = '1700'
[../]
[./Fiss_func]
type = ParsedFunction
value = '2.5e19'
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 1700
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./FRA]
type = MaterialRealAux
variable = fract_FGR_analytical
property = fract_FGR_analytical
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[../]
[]
[Materials]
[./UO2]
type = HeatConductionMaterial
block = 1
temp = T
thermal_conductivity = 1.0
specific_heat = 1.0
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 1
skip_bdr_model = true
temp = T
fission_rate = fission_rate
testing_output = true
ig_diff_algorithm = 1 # use PolyPole algorithm
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
assessment/LWR/validation/OSIRIS_J12/analysis/SM/OSIRIS_J12_sm.i
[GlobalParams]
density = 10431 # initial fuel density 95% of theoretical (10980 kg/m3)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = osiris_j12_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5e-6
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = j12_5_power.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = j12_5_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./CoolantPressureFunction]
type = PiecewiseLinear
x = '-100 0 50389344 50389444 50390704 50480887 50480988'
y = '0.06537 1 1 0.06537 0.948 0.948 0.06537'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = j12_5_clad_bc.csv
format = columns
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 4.8e13 #n/m2-s per W/m
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./elastic_strain_hoop]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 21
a_lower = 0.00324
a_upper = 0.4442
fuel_inner_radius = 0.00
fuel_outer_radius = 0.004096
i_enrich = '0.045 .955 0 0 0 0' # 4.5% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e12
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = CoolantPressureFunction # Changes to 14.7 MPa for Ramp test
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.26e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
stress_free_temperature = 293
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.008192
gap = 168.0e-6
q = q
relocation_activation1 = 5000
burnup_relocation_stop = 0.015
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
stress_free_temperature = 293
thermal_expansion = 5.0e-6
model_irradiation_growth = true
model_thermal_expansion = false #true
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200.0
min_value = 273.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 50480988
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 10
linear_iteration_ratio = 100
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/IFA_432/analysis/rod3/IFA_432_rod3.i
[GlobalParams]
density = 10431 # initial fuel density 95% of theoretical (10980 kg/m3)
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa_432_rod3_fine.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 513.3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4 5'
initial_condition = 3.5e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = bol_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factor]
type = PiecewiseBilinear
data_file = bol_axial.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.029395 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factor'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[Modules/TensorMechanics/Master]
[./fuel]
block = '3 4 5'
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = '3 4 5'
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
factor = 1.6e12 #(n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4 5'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./hydrostatic_stress]
block = '3'
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = hydrostatic
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = '3 4 5'
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
num_radial = 81
num_axial = 21
a_lower = 0.01494
a_upper = 0.57374
fuel_inner_radius = 0.00
fuel_outer_radius = 0.0054165
fuel_volume_ratio = 0.992883
i_enrich = '0.1 .9 0 0 0 0' # 10% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_fuel = 2.16e-6
roughness_clad = 6.35e-7
roughness_coef = 3.2
quadrature = true
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = PresetBC
boundary = '1 2 3'
variable = temp
value = 513.3
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0135e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = '3 4 5'
thermal_conductivity_model = NFIR
initial_porosity = 0.05
temp = temp
burnup_function = burnup
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4 5'
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = '3 4 5'
temperature = temp
[../]
[./fuel_elasticity_and_creep]
type = ComputeThermalExpansionEigenstrain
block = '3 4 5'
temperature = temp
stress_free_temperature = 297
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4 5'
burnup_function = burnup
linear_heat_rate_function = q
diameter = 1.0833e-2
gap = 76.0e-6
relocation_activation1 = 5000
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_inelastic_stressUpdate] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type =stress_relief_annealed
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
temperature = temp
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
[../]
[./clad_inelastic_stress] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = clad_inelastic_stressUpdate
[../]
[./clad_thermal_eigenstrain] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ComputeThermalExpansionEigenstrain
block = 1
temperature = temp
stress_free_temperature = 297
eigenstrain_name = 'clad_thermal_eigenstrain'
thermal_expansion_coeff = 5.0e-6
[../]
[./clad_irradiation_eigenstrain] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '3 4 5'
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4 5'
burnup = burnup
temperature = temp
initial_fuel_density = 10431
total_densification = .0043
#incremental_form = true
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4 5'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 80
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# Time steps set up to match halden data
# start_time = -100
n_startup_steps = 1
end_time = 29700
dtmin = 1
[./TimeStepper]
type = ConstantDT
dt = 900
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3 4 5'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4 5'
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3 4 5'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
block = '3 4 5'
burnup_function = burnup
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4 5'
outputs = exodus
[../]
[./power_lower_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.075265 0'
[../]
[./power_upper_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.50389 0'
[../]
[./upper_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 8896 # paraview global node id 8897
[../]
[./lower_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 2694 # paraviw global node id 2695
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = TENSOR
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[]
assessment/LWR/validation/Riso_GE7_ZX115/analysis/cracking_creep/Riso_GE7_smeared_cracking_creep.i
[GlobalParams]
density = 10431.0
initial_porosity = 0.05
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_x saved_t'
[]
[Mesh]
file = ge7_smeared.e
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./temp]
initial_condition = 293.0
# scaling = 1e3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 9.4e-6 # from Riso GE7 report
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate_aux]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./relocation_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./gas_swell]
order = CONSTANT
family = MONOMIAL
[../]
[./volumetric_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = riso_ge7_zx115_linear_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = riso_ge7_zx115_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 161748936 161756676 161813271 161814651'
y = '.013995 1 1 .994475 .994475 .013995'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = riso_ge7_zx115_clad_temperature.csv
format = columns
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
data_file = riso_ge7_zx115_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_x'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_x'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = pellet_type_1
save_in = saved_t
fission_rate = fission_rate
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
# density = 10431.0
num_radial = 80
num_axial = 11
# a_upper = 0.76446
# a_lower = 0.01494
# fuel_inner_radius = 0
# fuel_outer_radius = 0.005205
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
factor = 1
function = fast_neutron_flux_function
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
# block = clad
execute_on = timestep_end
[../]
[./creep_strain_rate]
type = MaterialRealAux
property = creep_rate
variable = creep_strain_rate
# block = clad
execute_on = timestep_end
[../]
[./creep_rate_aux]
type = MaterialRealAux
variable = creep_rate_aux
property = creep_rate
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./layered_average_contact_pressure]
type = SpatialUserObjectAux
block = pellet_type_1
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[../]
[./reloc_strain]
type = MaterialRealAux
block = pellet_type_1
variable = relocation_strain
property = relocation_strain
execute_on = nonlinear
[../]
[./gas_swell]
type = MaterialRealAux
block = pellet_type_1
variable = gas_swell
property = gas_swelling
execute_on = nonlinear
[../]
[./volumetric_strain]
type = RankTwoScalarAux
block = pellet_type_1
rank_two_tensor = total_strain
variable = volumetric_strain
scalar_type = VolumetricStrain
execute_on = nonlinear
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = pellet_type_1
execute_on = nonlinear
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
penalty = 1e14 ## try 1e10 or 1e11
formulation = penalty
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_wall_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.24e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 0.29e6 ## Double check
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeSmearedCrackingStress
block = pellet_type_1
cracking_stress = 1.5e8
inelastic_models = 'fuel_creep'
softening_models = 'power_law_softening'
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./power_law_softening]
type = PowerLawSoftening
stiffness_reduction = 0.3333
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = pellet_type_1
burnup_function = burnup
grain_radius = 9.4e-6 #12.05e-6 # from RISO-FGP3-GE7-report
oxygen_to_metal_ratio = 2.0
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
linear_heat_rate_function = q
burnup_relocation_stop = 1e12
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = false
max_relocation_recovery_fraction = 0.5
relocation_scaling_factor = 1
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_1
burnup_function = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
# density = 10431.0
block = pellet_type_1
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[./layered_average_contact_pressure]
type = LayeredSideAverage
variable = contact_pressure
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[../]
[]
# [Dampers]
# [./limitT]
# type = BoundingValueNodalDamper
# max_value = 3200
# min_value = 200
# variable = temp
# [../]
# []
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 161814650.9 # Whole power history
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = power_history
timestep_limiting_postprocessor = material_timestep
force_step_every_function_point = true
[../]
[./Quadrature]
side_order = FIFTH
order = SEVENTH
[../]
[]
[Postprocessors]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = clad
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = pellet_type_1
variable = fission_rate
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.74952 # rod height
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = pellet_type_1
fission_rate = fission_rate
variable = temp
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet_type_1
variable = burnup
[../]
[./max_penetration]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = penetration
execute_on = 'initial timestep_end'
[../]
[./min_penetration]
type = NodalExtremeValue
block = pellet_type_1
value_type = min
variable = penetration
execute_on = 'initial timestep_end'
[../]
[./max_contact_pressure]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = contact_pressure
[../]
[./min_contact_pressure]
type = NodalExtremeValue
block = pellet_type_1
value_type = min
variable = contact_pressure
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = pellet_type_1
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises_stress
[../]
[./effective_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./creep_strain_rate_clad]
type = ElementAverageValue
variable = creep_strain_rate
block = clad
[../]
[./effective_creep_strain_fuel]
type = ElementAverageValue
variable = effective_creep_strain
block = pellet_type_1
[../]
[./creep_strain_rate_fuel]
type = ElementAverageValue
variable = creep_strain_rate
block = pellet_type_1
[../]
[./average_contact_pressure]
type = ElementAverageValue
variable = layered_average_contact_pressure
# elementid = 1 Because probably in this mesh the element 1 is not on the surface of the fuel
block = pellet_type_1
execute_on = timestep_end
[../]
#[./recov_strain]
# type = ElementAverageValue
# variable = recovered_relocation_strain
# elementid = 1
# block = pellet_type_1
# execute_on = timestep_end
#[../]
[./reloc_strain]
type = ElementAverageValue
variable = relocation_strain
# elementid = 1
block = pellet_type_1
execute_on = timestep_end
[../]
[./contact_pressure]
type = ElementAverageValue
variable = contact_pressure
block = pellet_type_1
execute_on = nonlinear
[../]
[./vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[../]
# Nodal comparisons
[./contact_pressure_old]
type = NodalVariableValue
variable = contact_pressure
nodeid = 14796 #coords (0.005205, 0.340252)
use_displaced_mesh = true
[../]
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 14796 #coords (0.005205, 0.340252)
use_displaced_mesh = true
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 14825 #coords (0.0, 0.340252)
execute_on = 'initial timestep_end'
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = TENSOR
fuel_pellet_blocks = 'pellet_type_1'
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
sync_times = '161756676 161760846 161765136 161765976 161767595.9 161767655.9 161767716.1 161767775.9 161767839 161767896.1 161768000.3 161770475.9 161770583.9 161771136.1 161771189.8 161772036.1 161772083.5 161772936.1 161772958.2 161773056 161773093.9 161773836.1 161773889.8 161774736.1 161774758.2 161796696.1 161796702.4 161797236.1 161797283.5 161797356 161797523.4 161797716 161797788.6 161797835.9 161797876.9 161797956.1 161798019.3 161812536.1 161812595.9 161812716.1 161812836 161813270.9'
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
[../]
[./checkpoint]
type = Checkpoint
interval = 1
num_files = 3
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
show_material_props = true
[]
examples/tensor_mechanics/1.5D_restart/Smeared_1.5D.i
# Model is of a 10 pellet stack of fuel modeled in 1.5d
[GlobalParams]
density = 10431.0
initial_porosity = 0.05
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
displacements = disp_x
temperature = temp
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
#type = ReferenceResidualProblem
#solution_variables = 'disp_x temp'
#reference_residual_variables = 'saved_x saved_t'
[]
[Mesh]
type = Layered1DMesh
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
slices_per_block = 10
clad_gap_width = 8.0e-5
clad_thickness = 0.00056
fuel_height = 0.1186
plenum_height = 0.027
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_t]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = fuel
initial_condition = 10e-6
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./solid_swell]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./gas_swell]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./densification]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./relocation]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 15.5e6
fuel_pin_geometry = pin_geometry
[../]
[./fuel_axial_pressure]
type = ParsedFunction
value = plenum_pressure
vars = plenum_pressure
vals = plenum_pressure
[../]
[]
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = fuel # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Modules]
[./TensorMechanics]
[./Layered1DMaster]
[./fuel]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = fuel
out_of_plane_pressure = fuel_axial_pressure
use_displaced_mesh = true
save_in = saved_x
strain = finite
eigenstrain_names = 'fuelthermal_strain swell reloc'
[../]
[./clad]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = clad
out_of_plane_pressure = clad_axial_pressure
use_displaced_mesh = true
save_in = saved_x
strain = finite
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
[../]
[../]
[../]
[]
[Burnup]
[./burnup]
block = fuel
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 0.00324 # mesh dependent!
a_upper = 0.12184 # mesh dependent!
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 1.0 #0.987775 # for use with dished pellets (ratio of actual volume to cylinder volume)
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain
block = clad
execute_on = timestep_end
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./creep_strain_rate]
type = MaterialRealAux
property = creep_rate
variable = creep_strain_rate
block = clad
[../]
[./solid_swell]
type = MaterialRealAux
variable = solid_swell
property = solid_swelling
execute_on = timestep_end
block = fuel
[../]
[./gas_swell]
type = MaterialRealAux
variable = gas_swell
property = gas_swelling
execute_on = timestep_end
block = fuel
[../]
[./densification]
type = MaterialRealAux
variable = densification
property = densification
execute_on = timestep_end
block = fuel
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
execute_on = timestep_end
block = fuel
[../]
[./relocation_strain]
type = MaterialRealAux
variable = relocation
property = relocation_strain
execute_on = timestep_end
block = fuel
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = kinematic
model = frictionless
system = Constraint
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
contact_pressure = contact_pressure
[../]
[]
[BCs]
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = 2
function = pressure_ramp # use the pressure_ramp function defined above
factor = 15.5e6
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = 2
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup_function = burnup
diameter = 0.0082
linear_heat_rate_function = q
gap = 160.0e-6 #diametral gap
burnup_relocation_stop = 0.024
relocation_activation1 = 5000.0
#relocation_activation2 = 22965.879
#relocation_activation3 = 16404.199
relocation_model = ESCORE_modified
eigenstrain_name = reloc
[../]
[./fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 295.0
eigenstrain_name = fuelthermal_strain
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = fuel
burnup_function = burnup
# complete_burnup = 5
# total_densification = 0.01
initial_fuel_density = 10431.0
eigenstrain_name = swell
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'zrycreep'
block = clad
[../]
[./zrycreep]
type = ZryCreepLimbackHoppeUpdate
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
#absolute_tolerance = 1.0e-13
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
block = clad
#max_iterations = 50
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
#[Preconditioning]
# [./SMP]
# type = SMP
# full = true
# [../]
#[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package' # -mat_superlu_dist_fact'
petsc_options_value = 'lu superlu_dist' # SamePattern_SameRowPerm'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-5
nl_abs_tol = 1e-7 #1e-8 #1e-10
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
[../]
# [./Quadrature]
# order = THIRD
# side_order = FIFTH
# [../]
# [./Predictor]
# type = SimplePredictor
# scale = 1.0
# [../]
[]
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
execute_on = 'initial linear'
fuel_pin_geometry = pin_geometry
[../]
[./clad_inner_vol] # volume inside of cladding
type = LayeredInternalVolumePostprocessor
boundary = 7
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
execute_on = 'initial linear'
#outputs = exodus
[../]
[./pellet_volume] # fuel pellet total volume
type = LayeredInternalVolumePostprocessor
boundary = 8
# scale_factor = -1
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
execute_on = 'initial linear'
#outputs = exodus
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = LayeredSideAverageValuePostprocessor
boundary = 7
variable = temp
fuel_pin_geometry = pin_geometry
execute_on = 'initial linear'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./fisson_gas_release]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
[../]
[./gas_volume]
type = LayeredInternalVolumePostprocessor
boundary = 9
execute_on = 'initial linear'
component = 0
out_of_plane_strain = strain_yy
# addition = 2.853e-7 # plenum
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 5
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./_dt] # time step
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[../]
[./ave_fuel_temp]
type = ElementAverageValue
block = fuel
variable = temp
[../]
[./central_fuel_temp]
type = NodalVariableValue
nodeid = 262 #Mesh dependent (0.0041, 0.05661)
variable = temp
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temp
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
[../]
### Comparisons for 1.5D work, mesh specific #################### # von Mises Stress
[./top_vonMises_fuel]
type = ElementalVariableValue
elementid = 171 # mesh dependent (contains pt. 0.0041, 0.09219)
variable = vonmises
[../]
[./center_vonMises_fuel]
type = ElementalVariableValue
elementid = 123 # mesh dependent (contains pt. 0.0041, 0.05661)
variable = vonmises
[../]
[./bottom_vonMises_fuel]
type = ElementalVariableValue
elementid = 75 # mesh dependent (contains pt. 0.0041, 0.02103)
variable = vonmises
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises
block = fuel
[../]
[./top_vonMises_clad_inner]
type = ElementalVariableValue
elementid = 28 # mesh dependent (contains pt. 0.00418, 0.09219)
variable = vonmises
[../]
[./top_vonMises_clad_outer]
type = ElementalVariableValue
elementid = 31 # mesh dependent (contains pt. 0.00474, 0.09219)
variable = vonmises
[../]
[./center_vonMises_clad_inner]
type = ElementalVariableValue
elementid = 16 # mesh dependent (contains pt. 0.00418, 0.05661)
variable = vonmises
[../]
[./center_vonMises_clad_outer]
type = ElementalVariableValue
elementid = 19 # mesh dependent (contains pt. 0.00474, 0.05661)
variable = vonmises
[../]
[./bottom_vonMises_clad_inner]
type = ElementalVariableValue
elementid = 4 # mesh dependent (contains pt. 0.00418, 0.02103)
variable = vonmises
[../]
[./bottom_vonMises_clad_outer]
type = ElementalVariableValue
elementid = 7 # mesh dependent (contains pt. 0.00474, 0.02103)
variable = vonmises
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises
block = clad
[../]
# radial stress
[./top_stress_rr_fuel]
type = ElementalVariableValue
elementid = 171 # mesh dependent (contains pt. 0.0041, 0.09219)
variable = stress_xx
[../]
[./center_stress_rr_fuel]
type = ElementalVariableValue
elementid = 123 # mesh dependent (contains pt. 0.0041, 0.05661)
variable = stress_xx
[../]
[./bottom_stress_rr_fuel]
type = ElementalVariableValue
elementid = 75 # mesh dependent (contains pt. 0.0041, 0.02103)
variable = stress_xx
[../]
[./average_stress_rr_fuel]
type = ElementAverageValue
variable = stress_xx
block = fuel
[../]
[./top_stress_rr_clad_inner]
type = ElementalVariableValue
elementid = 28 # mesh dependent (contains pt. 0.00418, 0.09219)
variable = stress_xx
[../]
[./top_stress_rr_clad_outer]
type = ElementalVariableValue
elementid = 31 # mesh dependent (contains pt. 0.00474, 0.09219)
variable = stress_xx
[../]
[./center_stress_rr_clad_inner]
type = ElementalVariableValue
elementid = 16 # mesh dependent (contains pt. 0.00418, 0.05661)
variable = stress_xx
[../]
[./center_stress_rr_clad_outer]
type = ElementalVariableValue
elementid = 19 # mesh dependent (contains pt. 0.00474, 0.05661)
variable = stress_xx
[../]
[./bottom_stress_rr_clad_inner]
type = ElementalVariableValue
elementid = 4 # mesh dependent (contains pt. 0.00418, 0.02103)
variable = stress_xx
[../]
[./bottom_stress_rr_clad_outer]
type = ElementalVariableValue
elementid = 7 # mesh dependent (contains pt. 0.00474, 0.02103)
variable = stress_xx
[../]
[./average_stress_rr_clad]
type = ElementAverageValue
variable = stress_xx
block = clad
[../]
# radial strain
[./top_strain_rr_fuel]
type = ElementalVariableValue
elementid = 171 # mesh dependent (contains pt. 0.0041, 0.09219)
variable = strain_xx
[../]
[./center_strain_rr_fuel]
type = ElementalVariableValue
elementid = 123 # mesh dependent (contains pt. 0.0041, 0.05661)
variable = strain_xx
[../]
[./bottom_strain_rr_fuel]
type = ElementalVariableValue
elementid = 75 # mesh dependent (contains pt. 0.0041, 0.02103)
variable = strain_xx
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = strain_xx
block = fuel
[../]
[./top_strain_rr_clad_inner]
type = ElementalVariableValue
elementid = 28 # mesh dependent (contains pt. 0.00418, 0.09219)
variable = strain_xx
[../]
[./top_strain_rr_clad_outer]
type = ElementalVariableValue
elementid = 31 # mesh dependent (contains pt. 0.00474, 0.09219)
variable = strain_xx
[../]
[./center_strain_rr_clad_inner]
type = ElementalVariableValue
elementid = 16 # mesh dependent (contains pt. 0.00418, 0.05661)
variable = strain_xx
[../]
[./center_strain_rr_clad_outer]
type = ElementalVariableValue
elementid = 19 # mesh dependent (contains pt. 0.00474, 0.05661)
variable = strain_xx
[../]
[./bottom_strain_rr_clad_inner]
type = ElementalVariableValue
elementid = 4 # mesh dependent (contains pt. 0.00418, 0.02103)
variable = strain_xx
[../]
[./bottom_strain_rr_clad_outer]
type = ElementalVariableValue
elementid = 7 # mesh dependent (contains pt. 0.00474, 0.02103)
variable = strain_xx
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = strain_xx
block = clad
[../]
# effective creep strain
[./top_creep_strain_clad_inner]
type = ElementalVariableValue
elementid = 28 # mesh dependent (contains pt. 0.00418, 0.09219)
variable = creep_strain
[../]
[./top_creep_strain_clad_outer]
type = ElementalVariableValue
elementid = 31 # mesh dependent (contains pt. 0.00474, 0.09219)
variable = creep_strain
[../]
[./center_creep_strain_clad_inner]
type = ElementalVariableValue
elementid = 16 # mesh dependent (contains pt. 0.00418, 0.05661)
variable = creep_strain
[../]
[./center_creep_strain_clad_outer]
type = ElementalVariableValue
elementid = 19 # mesh dependent (contains pt. 0.00474, 0.05661)
variable = creep_strain
[../]
[./bottom_creep_strain_clad_inner]
type = ElementalVariableValue
elementid = 4 # mesh dependent (contains pt. 0.00418, 0.02103)
variable = creep_strain
[../]
[./bottom_creep_strain_clad_outer]
type = ElementalVariableValue
elementid = 7 # mesh dependent (contains pt. 0.00474, 0.02103)
variable = creep_strain
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = creep_strain
block = clad
[../]
### Nodal displacements
[./top_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 361 # mesh dependent, at (0.0041, 0.09219)
[../]
[./center_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 262 # mesh dependent, at (0.0041, 0.05661)
[../]
[./bottom_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 163 # mesh dependent, at (0.0041, 0.02103)
[../]
[./top_disp_r_clad_inner]
type = NodalVariableValue
variable = disp_x
nodeid = 63 #mesh dependent, at (0.00418, 0.09219)
[../]
[./top_disp_r_clad_outer]
type = NodalVariableValue
variable = disp_x
nodeid = 68 #mesh dependent, at (0.00474, 0.09219)
[../]
[./center_disp_r_clad_inner]
type = NodalVariableValue
variable = disp_x
nodeid = 36 #mesh dependent, at (0.00418, 0.05661)
[../]
[./center_disp_r_clad_outer]
type = NodalVariableValue
variable = disp_x
nodeid = 43 #mesh dependent, at (0.00474, 0.05661)
[../]
[./bottom_disp_r_clad_inner]
type = NodalVariableValue
variable = disp_x
nodeid = 9 #mesh dependent, at (0.00418, 0.02103)
[../]
[./bottom_disp_r_clad_outer]
type = NodalVariableValue
variable = disp_x
nodeid = 16 #mesh dependent, at (0.00418, 0.02103)
[../]
### Nodal temperatures
[./top_temp_fuel]
type = NodalVariableValue
variable = temp
nodeid = 361 # mesh dependent, at (0.0041, 0.09219)
[../]
[./center_temp_fuel]
type = NodalVariableValue
variable = temp
nodeid = 262 # mesh dependent, at (0.0041, 0.05661)
[../]
[./bottom_temp_fuel]
type = NodalVariableValue
variable = temp
nodeid = 163 # mesh dependent, at (0.0041, 0.02103)
[../]
[./top_temp_clad_inner]
type = NodalVariableValue
variable = temp
nodeid = 63 #mesh dependent, at (0.00418, 0.09219)
[../]
[./top_temp_clad_outer]
type = NodalVariableValue
variable = temp
nodeid = 68 #mesh dependent, at (0.00474, 0.09219)
[../]
[./center_temp_clad_inner]
type = NodalVariableValue
variable = temp
nodeid = 36 #mesh dependent, at (0.00418, 0.05661)
[../]
[./center_temp_clad_outer]
type = NodalVariableValue
variable = temp
nodeid = 43 #mesh dependent, at (0.00474, 0.05661)
[../]
[./bottom_temp_clad_inner]
type = NodalVariableValue
variable = temp
nodeid = 9 #mesh dependent, at (0.00418, 0.02103)
[../]
[./bottom_temp_clad_outer]
type = NodalVariableValue
variable = temp
nodeid = 16 #mesh dependent, at (0.00418, 0.02103)
[../]
### Nodal penetration
[./top_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 361 # mesh dependent, at (0.0041, 0.09219)
[../]
[./center_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 262 # mesh dependent, at (0.0041, 0.05661)
[../]
[./bottom_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 163 # mesh dependent, at (0.0041, 0.02103)
[../]
### Nodal contact pressure
[./top_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 361 # mesh dependent, at (0.0041, 0.09219)
[../]
[./center_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 262 # mesh dependent, at (0.0041, 0.05661)
[../]
[./bottom_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 163 # mesh dependent, at (0.0041, 0.02103)
[../]
### End of 1.5D comparisons
[./center_eff_creep_rate_inner]
type = ElementalVariableValue
elementid = 16 # mesh dependent
variable = creep_strain_rate
[../]
[./center_eff_creep_rate_outer]
type = ElementalVariableValue
elementid = 19 # mesh dependent
variable = creep_strain_rate
[../]
[./effective_creep_strain_rate]
type = ElementAverageValue
variable = creep_strain_rate
[../]
[./solid_swelling]
type = ElementAverageValue
variable = solid_swell
block = fuel
[../]
[./gas_swelling]
type = ElementAverageValue
variable = gas_swell
block = fuel
[../]
[./densification]
type = ElementAverageValue
variable = densification
block = fuel
[../]
[./volumetric_swelling]
type = ElementAverageValue
variable = volumetric_swelling_strain
block = fuel
[../]
[./relocation]
type = ElementAverageValue
variable = relocation
block = fuel
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[]
assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT4/MT4_1-1kW.i
################################################################################
#
# Description: LOCA MT-4 Test with constant power level of 1.1 kW/m
#
#
# External files:
# axial peaking factor file MT4_axial_peaking.csv
#
################################################################################
[GlobalParams]
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
group_variables = 'disp_x disp_y'
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 6.1e-4
pellet_mesh_density = customize
ny_p = 100
nx_c = 4
nx_p = 12
pellet_outer_radius = .00413
ny_cu = 3
ny_c = 100
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.66
ny_cl = 3
clad_top_gap_height = 0.18613
clad_gap_width = 7.5e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[DefaultElementQuality]
aspect_ratio_upper_bound = 253
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
[./InitialCondition]
type = FunctionIC
function = temp_func
[../]
[../]
[]
[AuxVariables]
[./temp_initial]
[./InitialCondition]
type = FunctionIC
function = temp_func
[../]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet
initial_condition = 7.8e-6 # 2D grain radius
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase] # Fraction of beta phase in Zry
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate_aux]
order = CONSTANT
family = MONOMIAL
[../]
[./bursted]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./htype]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 110'
y = '1.1e3 1.1e3'
[../]
[./hmode_function]
type = PiecewiseConstant
x = '0 57 110'
y = '9 10 10'
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = MT4_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '0 110'
y = '0.28 0.28'
scale_factor = 1e6
[../]
[./temp_func]
type = ParsedFunction
value = '-24.096*y*y+152.47*y+437.81'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz elastic_strain_yy strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[../]
[./clad]
block = clad
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz' #plastic_strain_xx plastic_strain_yy plastic_strain_zz
extra_vector_tags = 'ref'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = pellet
fission_rate = fission_rate
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
axial_power_profile = axial_peaking_factors
factor = 0.16e15 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = clad
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = '1 2 3'
[../]
[./hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = hmode
boundary = '1 2 3'
[../]
[./htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = htype
boundary = '1 2 3'
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = clad
[../]
[./creep_rate]
type = MaterialRealAux
variable = creep_rate
property = creep_rate
block = clad
execute_on = timestep_end
[../]
[./creep_rate_aux]
type = MaterialRealAux
variable = creep_rate_aux
property = creep_rate
block = clad
execute_on = timestep_end
[../]
[./bursted]
type = MaterialRealAux
variable = bursted
property = failed
boundary = 2
execute_on = timestep_end
[../]
[]
# TODO: Have StandardLWRFuelRodOutputs create this when the feature in issue #1054 is
# developed.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[Burnup]
[./burnup]
block = pellet
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.66478
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00413 # m
i_enrich = '0.0293 .9707 0 0 0 0' # 2.93% enriched U-235
RPF = RPF
density = 10431 #95 %TD Assume TD = 10980 kg/cm3
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e7
normalize_penalty = true
system = Constraint
model = frictionless
# model = coulomb
formulation = penalty
# friction_coefficient = 1.0
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1.0 # Pa
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9 # clad interior + fuel exterior
initial_pressure = 9.3e6 # Pa
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 311 # K
inlet_pressure = 0.28e6 # Pa
# inlet_massflux = massfluxfunc # kg/m^2-sec
rod_diameter = 0.00963 # m
rod_pitch = 1.275e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
heat_transfer_mode = hmode_function
heat_transfer_coefficient = 0.0000001 #W/m^2-K
# heat_transfer_mode = 10
htc_correlation_type = 1
flooding_time = 57.0
flooding_rate = 0.127 # m/s
initial_temperature = 1140 # K
initial_power = 1.628 # kW/m
blockage_ratio = 0.0 #
fuel_stack_length = 3.66 # m
reflooding_model = 1
compute_enthalpy = false
[../]
[]
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2
type = ThermalFuel
block = pellet
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = temp_initial
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0 #95 %TD Assume TD = 10980 kg/cm3
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
# initial_grain_radius = 6.552e-6 # 2D grain radius 4.2e-6
grain_radius = grain_radius
gbs_model = true
burnup = burnup
# compute_swelling = true
transient_option = 2
[../]
[./fuel_density]
type = Density
block = pellet
density = 10431 #95 %TD Assume TD = 10980 kg/cm3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
temperature = temp
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLOCAErbacherLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = false
model_primary_creep = false
model_thermal_creep = true
temperature_standard_thermal_creep_end = 700.0
temperature_loca_creep_begin = 900.0
max_inelastic_increment = 1e-4
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
temperature = temp
thermal_expansion_coeff = 5.0e-6
stress_free_temperature = temp_initial
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./phase]
type = ZrPhase
block = clad
temperature = temp
numerical_method = 2
[../]
[./failure_criterion]
type = ZryCladdingFailure
boundary = '2'
failure_criterion = combined_overstress_and_plastic_instability
hoop_stress = stress_zz
effective_strain_rate_creep = creep_rate
temperature = temp
fraction_beta_phase = fract_beta_phase
outputs = all
output_properties='failed burst_stress'
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = 0.0
end_time = 110
dtmax = 5
dtmin = 0.00001
[./TimeStepper]
type = PostprocessorDT
postprocessor = material_timestep
dt = 0.01
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
outputs = exodus
execute_on=linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
outputs = exodus
execute_on=linear
[../]
[./max_betaph_fract]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./average_fission_rate]
type = ElementAverageValue
block = pellet
variable = fission_rate
execute_on=timestep_end
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = pellet
fission_rate = fission_rate
variable = temp
execute_on=timestep_end
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.66 # rod height
execute_on=timestep_end
[../]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = clad
[../]
[./max_creep_rate]
type = ElementExtremeValue
block = clad
value_type = max
variable = creep_rate_aux
[../]
[./bursted]
type = ElementExtremeValue
block = clad
value_type = max
variable = bursted
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'bursted > 0'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
perf_graph = true
[./console]
type = Console
output_linear = true
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
doc/workshop/inputQuad8_tm.i
# This model is a higher order, discrete 10 pellet fuel stack (pellet_type_1).
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
initial_porosity = 0.05
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
# Import mesh file
file = quad8Medium10_rz.e
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
# Define dependent variables and initial conditions
[./temp]
initial_condition = 293.0 # set initial temp to fill gas temperature, usually 20C
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 0.00324 # mesh dependent!
a_upper = 0.12184 # mesh dependent!
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 0.987775 # for use with dished pellets (ratio of actual volume to cylinder volume)
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor] # isotropic elasticity tensor for UO2
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress] # elastic stress for UO2 (used instead of creep)
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./fuel_thermal_expansion] # thermal expansion strain for UO2
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 295.0 #Changed to match the value used in Zry
incremental_form = true
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation] # relocation strain measure for UO2
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
linear_heat_rate_function = q
gap = 160.0e-6 #diametral gap
diameter = 0.0082
burnup_relocation_stop = 0.035
relocation_activation1 = 5000
relocation_model = ESCORE_modified
incremental_form = true
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling] # free expansion strains (swelling and densification) for UO2 (bison kernel)
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_1
temperature = temp
burnup_function = burnup
initial_fuel_density = 10431.0
incremental_form = true
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = clad
youngs_modulus = 7.5e10
poissons_ratio = 0.3
[../]
[./clad_stress] # stress update class to govern the return mapping algorithm for creep
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep] # creep for zircaloy cladding
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
incremental_form = true
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
incremental_form = true
eigenstrain_name = clad_irradiation_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -mat_superlu_dist_fact'
petsc_options_value = 'lu superlu_dist SamePattern'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
num_steps = 5000
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
# outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
# outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
execute_on = 'linear'
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./alive_run_time] # runtime of the simulation
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[../]
# Stress Measures
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet_type_1
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
#Strain measures
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet_type_1
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
# Contact variables
[./center_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 2887 # mesh dependent, at (0.0041, 0.0558887), near bottom of pellet 5
[../]
[./center_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 2887 # mesh dependent, at (0.0041, 0.0558887), near bottom of pellet 5
[../]
[]
[VectorPostprocessors]
[./clad]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_clad_radial_displacement'
[../]
[./pellet]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_fuel_radial_displacement'
[../]
[]
[Outputs]
# Define output file(s)
exodus = true
color = false
csv = true
[./console]
type = Console
perf_log = true
max_rows = 25
[../]
[./outfile_clad_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[]
examples/tensor_mechanics/2D-RZ_rodlet_10pellets/Quad8_tm.i
# This model is a higher order, discrete 10 pellet fuel stack (pellet_type_1).
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
initial_porosity = 0.05
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
# Import mesh file
file = quad8Medium10_rz.e
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
# Define dependent variables and initial conditions
[./temp]
initial_condition = 293.0 # set initial temp to fill gas temperature, usually 20C
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 0.00324 # mesh dependent!
a_upper = 0.12184 # mesh dependent!
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 0.987775 # for use with dished pellets (ratio of actual volume to cylinder volume)
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor] # isotropic elasticity tensor for UO2
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress] # elastic stress for UO2 (used instead of creep)
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./fuel_thermal_expansion] # thermal expansion strain for UO2
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 295.0 #Changed to match the value used in Zry
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation] # relocation strain measure for UO2
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
linear_heat_rate_function = q
gap = 160.0e-6 #diametral gap
diameter = 0.0082
burnup_relocation_stop = 0.035
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_1
temperature = temp
burnup_function = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor] # isotropic elasticity tensor for Zry cladding
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress] # stress update class to govern the return mapping algorithm for creep
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep] # creep for zircaloy cladding
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
# outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
# outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
execute_on = 'linear'
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[../]
# Stress Measures
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet_type_1
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
#Strain measures
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet_type_1
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
# Contact variables
[./center_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 2887 # mesh dependent, at (0.0041, 0.0558887), near bottom of pellet 5
[../]
[./center_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 2887 # mesh dependent, at (0.0041, 0.0558887), near bottom of pellet 5
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[]
[VectorPostprocessors]
[./clad]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_clad_radial_displacement'
[../]
[./pellet]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_fuel_radial_displacement'
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./outfile_clad_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM156/SM/BFM156.i
################################################################################
#
# Description: Calvert Cliffs BFM156
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFM156_power.csv
# axial peaking factor file BFM156_axial_peaking.csv
# flux boundary condition file BFM156_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10411.07 #94.882 %TD Assume TD = 10972.65 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.34015
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.2e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFM156_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFM156_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 177406235 177406595' #
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 177406235 177406595' #
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFM156_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elasticity_and_creep]
type = Elastic #CreepUO2
block = 3
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.0095631 # fuel pellet diamter in meters
gap = 190.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .029 # turn off relocation
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 177406595
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_2b/27_2b.i
[GlobalParams]
density = 10431.0 # 95% TD assuming TD=10980
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 9.5e-4
pellet_mesh_density = customize
ny_p = 8
nx_c = 4
nx_p = 12
pellet_outer_radius = 0.005305
ny_cu = 3
ny_c = 8
clad_bot_gap_height = 1e-3
pellet_quantity = 1
pellet_height = 0.0127
ny_cl = 3
plenum_fuel_ratio = 0.45
clad_gap_width = 9.5e-5
elem_type = QUAD8
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 7.5e-6
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
x = '0 43200 5e8'
y = '0 15000 15000'
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
i_enrich = '0.13 0.87 0 0 0 0' # 13% enriched U235
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = 3
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
execute_on = timestep_begin
factor = 1.6e12 # (n/m2-s per W/m) used HALDEN fast flux
block = 1
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = 1
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = 1
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
roughness_coef = 3.2
roughness_fuel = 2.0e-6
roughness_clad = 1.0e-6
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_bc]
type = DirichletBC
variable = temp
boundary = '1 2 3'
value = 516.2 # Clad wall temp = 240+.4162*(LHR)^.75, where temp is C and LHR is kW/m
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6 # Halden coolant pressure
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 5.0e5 # FUMEXII => 500 kPa pressure (He fill)
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
initial_porosity = 0.05
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
stress_free_temperature = 293.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
q = q
burnup_relocation_stop = 0.065
relocation_activation1 = 5000
fuel_pin_geometry = pin_geometry
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
stress_free_temperature = 293.0
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
dtmax = 1e6
dtmin = 1
end_time = 461647800
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 12
iteration_window = 2
linear_iteration_ratio = 100
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
outputs = exodus
[../]
[./intg_flux_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./intg_flux_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./fuel_center_temperature]
type = NodalVariableValue
nodeid = 467 # GlobalNodeID 468
variable = temp
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./average_fissionrate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.0127 # rod height
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
mechanics_system = SOLID
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
assessment/LWR/validation/US_PWR_16_x_16/analysis/TSQ002/SM/TSQ002.i
[GlobalParams]
density = 10431 #95% of TD (TD assumed to be 10980)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = tsq002_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 8.7945e-6 # ((11.6+11.2+11.2+11.1)/4)/2*1.56
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = TSQ002_alhr.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = TSQ002_alhr_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 141798626 141802226' # -100 @ 101326 Pa, 0 to 141798626 @ 15.517 MPa, 141802226 @ 101326 Pa
y = '.00653 1 1 .00653'
[../]
[./flux]
type = PiecewiseLinear
data_file = TSQ002_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = TSQ002_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
type = PiecewiseBilinear
data_file = TSQ002_clad_peaking.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1
fission_rate = fission_rate
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
a_lower = 0.00324
a_upper = 3.81705
fuel_outer_radius = 0.0041275
i_enrich = '0.0348 0.9652 0 0 0 0' # 3.48% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = pellet_type_1
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./hydrostatic_stress]
block = pellet_type_1
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./strain_xx]
type = MaterialTensorAux
tensor = total_strain
variable = strain_xx
index = 0
execute_on = timestep_end
[../]
[./strain_yy]
type = MaterialTensorAux
tensor = total_strain
variable = strain_yy
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
index = 0
execute_on = timestep_end
block = clad
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
index = 1
execute_on = timestep_end
block = clad
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
index = 3
execute_on = timestep_end
block = clad
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
index = 2
execute_on = timestep_end
block = clad
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = clad
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
formulation = penalty
system = constraint
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10
initial_moles = initial_moles
master = 5
gas_released = fission_gas_released
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.517e6
function = pressure_ramp
displacements = 'disp_x disp_y'
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.62e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
type = Elastic
dep_matl_props = deltav_v0_bd
block = pellet_type_1
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
stress_free_temperature = 300.0
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup = burnup
diameter = 0.008255
q = q
gap = 0.0001778 #diameteral gap
relocation_activation1 = 5000
burnup_relocation_stop = 0.024
model = ESCORE_modified
[../]
[./swelling]
type = VSwellingUO2
block = pellet_type_1
burnup = burnup
temp = temp
gas_swelling_type = SIFGRS
density = 10431
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
initial_porosity = 0.05
burnup = burnup
gbs_model = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = clad
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
model_thermal_expansion = true
stress_free_temperature = 300.0
model_irradiation_growth = true
material_type = SRA
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 20.0
variable = temp
[../]
[]
[Preconditioning]
[./smp]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1e-4
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 141802226 #141798626+3600
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Postprocessors]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = clad
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.81381 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = pellet_type_1
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = pellet_type_1
[../]
[./FCT]
type = NodalVariableValue
nodeid = 30330 #coords (0.0, 2.10133)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./FCT_slice4]
type = NodalVariableValue
nodeid = 37085 #coords (0.0, 1.71896)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = pellet_type_1
variable = vonmises
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = clad
variable = vonmises
[../]
## Nodal comparison values
[./gap_slice6]
type = NodalVariableValue
variable = penetration
nodeid = 23579 #coords (0.0041275, 2.48172)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 30299 #coords (0.0041275, 2.10133)
[../]
[./gap_slice4]
type = NodalVariableValue
variable = penetration
nodeid = 37054 #coords (0.0041275, 1.71896)
[../]
[./contact_pressure_slice6]
type = NodalVariableValue
variable = contact_pressure
nodeid = 23579 #coords (0.0041275, 2.48172)
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 30299 #coords (0.0041275, 2.10133)
[../]
[./contact_pressure_slice4]
type = NodalVariableValue
variable = contact_pressure
nodeid = 37054 #coords (0.0041275, 1.71896)
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
temperature = temp
fuel_pellet_blocks = pellet_type_1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
test/tests/ifba_he_production/doc/fill_gas_helium.i
#
# 2-D RZ One Pellet Test - Using Helium as fill gas
#
# This test is of a single pellet with cladding and a specified initial
# pressure of He fill gas.
#
# This model results in a lower limit for the interior_temp due to the type of
# fill gas used.
#
[GlobalParams]
density = 10431.0 #95% TD (TD = 10980)
disp_x = disp_x
disp_y = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
ny_p = 4
nx_p = 6
nx_c = 3
ny_cu = 3
ny_c = 4
ny_cl = 3
clad_thickness = 5.6e-4
pellet_outer_radius = 0.0041
pellet_height = 0.01
pellet_quantity = 1
clad_bot_gap_height = 1e-3
top_bot_clad_height = 2.24e-3
clad_gap_width = 8e-5
plenum_fuel_ratio = 0.150
elem_type = QUAD8
displacements = 'disp_x disp_y'
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 298
[../]
[]
[AuxVariables]
[./fission_rate]
block = '3'
[../]
[./burnup]
block = '3'
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./grain_radius]
block = '3'
initial_condition = 5e-6 # must be the same as the initial value in Sifgr
[../]
[./gas_swell]
order = CONSTANT
family = MONOMIAL
block = '3'
[../]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[./pid]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[]
[Functions]
[./power_history]
# CoolantChannel requires this to have units while axial_peaking_factors must be normalized.
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 20e3 # 20 kW/m peak power.
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./coolant_pressure_ramp]
type = PiecewiseLinear
x = '0 10000'
y = '0 1'
[../]
[./q] # this is for fuel_relocation
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3'
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable= fission_rate
block = '3'
#convert W/m from power profile to fission/m**3-s
#calculated as 1/(energy_per_fission*area)
#using energy_per_fission = 3.2e-11, consistent with 200 MeV/fission
value = 5.3548e+14
function = q
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = '3'
fission_rate = fission_rate
molecular_weight = 0.270
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
# If you divide flux/power, you get this constant factor
factor = 2.34e+13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./gas_swell]
type = MaterialRealAux
block = '3'
variable = gas_swell
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./pid]
type = ProcessorIDAux
variable = pid
[../]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
penalty = 1e+14 #1e7
model = frictionless
tangential_tolerance = 5e-4
normal_smoothing_distance = 0.1
normalize_penalty = true
[../]
[]
[ThermalContact]
[./pellet_clad_thermal]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
gas_released = fis_gas_released
initial_moles = initial_moles
jump_distance_model = KENNARD
interaction_layer = 1
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_fractions = '1.0 0 0 0 0 0 0 0 0 0' # He fill gas
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
emissivity_fuel = 0.8
emissivity_clad = 0.8
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
# pin entire clad bottom in y
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
# pin fuel bottom in y
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
# pin fuel axis in x and z
[./no_x_fuel]
type = DirichletBC
variable = disp_x
boundary = 1005
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '2'
factor = 15.5e6
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 0.50e6
startup_time = 0.0
material_input = fis_gas_released
output_initial_moles = initial_moles
R = 8.3143
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
execute_on = 'initial linear'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '2'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # PA
inlet_massflux = 3880 # kg/m^2-sec
rod_diameter = 0.95e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = '3'
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_swelling]
type = VSwellingUO2
block = '3'
temp = temp
burnup = burnup
gas_swelling_type = sifgrs
[../]
[./fuel_solid_mechanics_elastic]
type = Elastic
block = '3'
disp_r = disp_x
disp_z = disp_y
temp = temp
youngs_modulus = 2.e11
poissons_ratio = 0.345
thermal_expansion = 10.0e-6
dep_matl_props = deltav_v0_bd
[../]
[./fission_gas_release]
type = Sifgrs
block = '3'
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
diff_coeff_option = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = SolidModel
block = 1
disp_r = disp_x
disp_z = disp_y
temp = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
constitutive_model = clad_plasticity
[../]
[./clad_growth]
type = IrradiationGrowthZr4
block = 1
fast_neutron_fluence = fast_neutron_fluence
growth_direction = 1
[../]
[./clad_plasticity]
type = IsotropicPlasticity
block = 1
temp = temp
yield_stress = 550e6
hardening_constant = 2.5e9
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '3'
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 25.0
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x'
off_diag_column = 'disp_x'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 25
nl_max_its = 40
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8
dtmax = 1.0e6
dtmin = 1.0
end_time = 5.3e7 # 1.7 years (~3% burnup)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e3
optimal_iterations = 30
iteration_window = 4
time_t = '0 1e4 1e8'
time_dt = '1e4 1e5 1e6'
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
verbose = true
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial timestep_end'
[../]
[./interior_temp]
type = SideAverageValue
boundary = 9 # cladding interior and pellet exterior
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = '3'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = '3'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
[../]
[./power_history]
type = FunctionValuePostprocessor
function = power_history
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./dt]
type = TimestepSize
[../]
[./residual]
type = Residual
[../]
[./nl_its]
type = NumNonlinearIterations
[../]
[./lin_its]
type = NumLinearIterations
[../]
[./average_burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[../]
[./burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[../]
[./average_fissionrate]
type = ElementAverageValue
block = '3'
variable = fission_rate
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.01 # change: length of fuel stack in meters (1 pellet height)
[../]
[]
[Outputs]
interval = 1
exodus = false
[./console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[../]
[./out]
type = CSV
delimiter = ' '
[../]
[]
examples/tensor_mechanics/2D-RZ_rodlet_10pellets/2Dtm_discrete_finiteStrain.i
# This model is a linear element, 10 discrete fuel pellet stack (pellet_type_1) with a fine mesh.
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
initial_porosity = 0.05
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_x saved_t'
[]
[Mesh]
# Import mesh file
file = fine10_rz.e
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
# Define dependent variables and initial conditions
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./creep_strain_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 0.00324 # mesh dependent!
a_upper = 0.12184 # mesh dependent!
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 0.987775 # for use with dished pellets (ratio of actual volume to cylinder volume)
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./creep_strain_rate]
type = MaterialRealAux
property = creep_rate
variable = creep_strain_rate
block = clad
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
diameter = 0.0082
linear_heat_rate_function = q
gap = 160.0e-6 #diametral gap
burnup_relocation_stop = 0.03
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_1
temperature = temp
burnup_function = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = THIRD
side_order = FIFTH
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
#[./centerline_temp]
# type = SideAverageValue
# boundary = 12
# variable = temp
# execute_on = linear
#[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
#outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
#outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial linear'
[../]
[./ave_fuel_temp]
type = ElementAverageValue
block = pellet_type_1
variable = temp
execute_on = 'initial linear'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
execute_on = 'linear'
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
execute_on = 'linear'
[../]
[./fisson_gas_release]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./_dt] # time step
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[../]
[./mid_penetration]
type = NodalVariableValue
nodeid = 3781 #!!Mesh dependent!!
variable = penetration
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temp
nodeid = 3781 # !! Mesh dependent
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet_type_1
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./effective_creep_strain]
type = ElementAverageValue
block = clad
variable = effective_creep_strain
[../]
[./effective_creep_strain_rate]
type = ElementAverageValue
block = clad
variable = creep_strain_rate
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_clad_radial_displacement'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_fuel_radial_displacement'
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./outfile_clad_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT6A/MT6A_1-2kW.i
################################################################################
#
# Description: LOCA MT-6A Test with constant power level of 1.2 kW/m
#
#
# External files:
# axial peaking factor file MT6A_axial_peaking.csv
#
################################################################################
[GlobalParams]
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
group_variables = 'disp_x disp_y'
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 6.1e-4
pellet_mesh_density = customize
ny_p = 100
nx_c = 4
nx_p = 12
pellet_outer_radius = .00413
ny_cu = 3
ny_c = 100
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.66
ny_cl = 3
clad_top_gap_height = 0.18613
clad_gap_width = 7.5e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[DefaultElementQuality]
aspect_ratio_upper_bound = 253
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
[./InitialCondition]
type = FunctionIC
function = temp_func
[../]
[../]
[]
[AuxVariables]
[./temp_initial]
[./InitialCondition]
type = FunctionIC
function = temp_func
[../]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet
initial_condition = 7.8e-6 # 2D grain radius
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase] # Fraction of beta phase in Zry
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate_aux]
order = CONSTANT
family = MONOMIAL
[../]
[./bursted]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./htype]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 150'
y = '1.2e3 1.2e3'
[../]
[./hmode_function]
type = PiecewiseConstant
x = '0 60 150'
y = '9 10 10'
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = MT6A_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '0 150'
y = '1.72 1.72'
scale_factor = 1e6
[../]
[./temp_func]
type = ParsedFunction
value = '-24.096*y*y+152.47*y+437.81'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz elastic_strain_yy strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[../]
[./clad]
block = clad
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz' #plastic_strain_xx plastic_strain_yy plastic_strain_zz
extra_vector_tags = 'ref'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = pellet
fission_rate = fission_rate
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
axial_power_profile = axial_peaking_factors
factor = 0.16e15 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = clad
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = '1 2 3'
[../]
[./hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = hmode
boundary = '1 2 3'
[../]
[./htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = htype
boundary = '1 2 3'
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = clad
[../]
[./creep_rate]
type = MaterialRealAux
variable = creep_rate
property = creep_rate
block = clad
execute_on = timestep_end
[../]
[./creep_rate_aux]
type = MaterialRealAux
variable = creep_rate_aux
property = creep_rate
block = clad
execute_on = timestep_end
[../]
[./bursted]
type = MaterialRealAux
variable = bursted
property = failed
boundary = 2
execute_on = timestep_end
[../]
[]
# TODO: Have StandardLWRFuelRodOutputs create this when the feature in issue #1054 is
# developed.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[Burnup]
[./burnup]
block = pellet
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.66478
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00413 # m
i_enrich = '0.0293 .9707 0 0 0 0' # 3.67% enriched U-235 #TODO: Looks like it's set for 2.93%!
RPF = RPF
density = 10431 #95 %TD Assume TD = 10980 kg/cm3
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e11
normalize_penalty = true
system = Constraint
model = frictionless
# model = coulomb
formulation = penalty
# friction_coefficient = 1.0
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1.0 # Pa
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9 # clad interior + fuel exterior
initial_pressure = 9.15e6 # Pa
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 310 # K
inlet_pressure = 1.72e6 # Pa
# inlet_massflux = massfluxfunc # kg/m^2-sec
rod_diameter = 0.00963 # m
rod_pitch = 1.275e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
heat_transfer_mode = hmode_function
heat_transfer_coefficient = 0.0000001 #W/m^2-K
# heat_transfer_mode = htc_function
htc_correlation_type = 1
flooding_time = 60.0
flooding_rate = 0.059182 # m/s
initial_temperature = 1175 # K
initial_power = 1.776 # kW/m
blockage_ratio = 0.0 #
fuel_stack_length = 3.66 # m
reflooding_model = 1
compute_enthalpy = false
[../]
[]
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2
type = ThermalFuel
block = pellet
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = temp_initial
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0 #95 %TD Assume TD = 10980 kg/cm3
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
# initial_grain_radius = 6.552e-6 # 2D grain radius 4.2e-6
grain_radius = grain_radius
gbs_model = true
burnup = burnup
# compute_swelling = true
transient_option = 2
[../]
[./fuel_density]
type = Density
block = pellet
density = 10431 #95 %TD Assume TD = 10980 kg/cm3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
temperature = temp
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLOCAErbacherLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = false
model_primary_creep = false
model_thermal_creep = true
temperature_standard_thermal_creep_end = 700.0
temperature_loca_creep_begin = 900.0
max_inelastic_increment = 1e-4
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
temperature = temp
thermal_expansion_coeff = 5.0e-6
stress_free_temperature = temp_initial
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./phase]
type = ZrPhase
block = clad
temperature = temp
numerical_method = 2
[../]
[./failure_criterion]
type = ZryCladdingFailure
boundary = '2'
failure_criterion = combined_overstress_and_plastic_instability
hoop_stress = stress_zz
effective_strain_rate_creep = creep_rate
temperature = temp
fraction_beta_phase = fract_beta_phase
outputs = all
output_properties='failed burst_stress'
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = 0.0
end_time = 63.02
dtmax = 5
dtmin = 0.00001
[./TimeStepper]
type = PostprocessorDT
postprocessor = material_timestep
dt = 0.01
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
outputs = exodus
execute_on=linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
outputs = exodus
execute_on=linear
[../]
[./max_betaph_fract]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./average_fission_rate]
type = ElementAverageValue
block = pellet
variable = fission_rate
execute_on=timestep_end
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = pellet
fission_rate = fission_rate
variable = temp
execute_on=timestep_end
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.66 # rod height
execute_on=timestep_end
[../]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = clad
[../]
[./max_creep_rate]
type = ElementExtremeValue
block = clad
value_type = max
variable = creep_rate_aux
[../]
[./bursted]
type = ElementExtremeValue
block = clad
value_type = max
variable = bursted
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'bursted > 0'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
perf_graph = true
[./console]
type = Console
output_linear = true
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/IFA_597_3/analysis/rod_8/IFA_597_rod8_frictionless.i
[GlobalParams]
density = 10500.0
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 10
acceptable_multiplier = 10
[]
[Mesh]
file = ifa_597r8.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4'
initial_condition = 6.1074e-6
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = 597-R8_linear_power.csv
format = columns
scale_factor = 1.0526316
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = 597-R8_axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 269029548 269030508 269055648 269056588 280124964 280125417'
y = '0 1 1 0.014475 0.014475 0.457 0.457 0.014475'
[../]
[./flux]
type = PiecewiseLinear
data_file = flux.csv
format = columns
[../]
[./clad_average_temp]
type = PiecewiseLinear
data_file = 597-R8_clad_outer_temperature.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = '3 4'
strain = FINITE
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress'
decomposition_method = EigenSolution
[../]
[./clad]
block = 1
strain = FINITE
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
decomposition_method = EigenSolution
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3 4'
fission_rate = fission_rate
fraction = 0.95 # per Glyn Rossiter's suggestion
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00324
a_upper = 0.3571
fuel_inner_radius = 0.000
fuel_outer_radius = 0.0052195
fuel_volume_ratio = .994899
i_enrich = '0.03347 0.96653 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = 1
variable = creep_strain_mag
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.3e-6
roughness_fuel = 1.38e-6
roughness_coef = 3.2
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 269055648
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = clad_average_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 #changes to 3.2e6 after 59 MWd/kgUO2
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0e5 #changes to 5e5 after 59 MWd/kgUO2
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 269055648
refab_pressure = 5e5
refab_temperature = 500
refab_volume = 6e-6
save_in = 'saved_x saved_y'
[../]
[../]
[]
[Materials]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4'
burnup_function = burnup
temperature = temp
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
initial_fuel_density = 10500.0
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4'
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
initial_porosity = 0.04372
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = '3 4'
temperature = temp
stress_free_temperature = 297
thermal_expansion_coeff = 10e-6
eigenstrain_name = fuel_thermal_eigenstrain
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = '3 4'
temperature = temp
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4'
burnup_function = burnup
diameter = 0.010439
linear_heat_rate_function = q
gap = 2.11e-4
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_eigenstrain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='clad_creep_stress'
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = clad_irradiation_growth_eigenstrain
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 297
temperature = temp
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.04372
diff_coeff_option = 3
transient_option = 2
[../]
[./density_clad]
type = Density
block = 1
density = 6551.0
[../]
[./density_fuel]
type = Density
block = '3 4'
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 280125417
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 20
linear_iteration_ratio = 100
dt = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3 4'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = exodus
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = exodus
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3 4'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.3539 # rod height
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = '3 4'
[../]
[./average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_profile
fuel_outer_radius = 0.0052195
fuel_inner_radius = 0.000
outputs = exodus
[../]
[./power_tc_location]
type = FunctionValuePostprocessor
function = q
point = '0 0.33319 0'
[../]
[./TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 7476 # Global NodeID 7477
[../]
[./elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 1887 # Global NodeID 1888
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = '3 4'
[]
[Outputs]
perf_graph = true
csv = 1
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage TC_temp rod_total_power elongation'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM070/SM/BFM070.i
################################################################################
#
# Description: Calvert Cliffs BFM070
#
#
#
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFM070_power.csv
# axial peaking factor file BFM070_axial_peaking.csv
# flux boundary condition file BFM070_fast_flux.csv
################################################################################
[GlobalParams]
density = 10386.93 #94.662 %TD Assume TD = 10972.65 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.32168
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 3.85e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFM070_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFM070_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 179225682 179226042'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 179225682 179226042'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFM070_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155 # m
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 5e-6
al_incremental_slip_tolerance = 1e-4
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elasticity_and_creep]
type = Elastic #CreepUO2
block = 3
temp = temp
# fission_rate = fission_rate
# cracking_stress = 130e6
# max_cracks = 1
# active_crack_planes = 2
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
# grain_radius = 6.0e-6
# grain_radius = 10.0e-6 # set larger than 6 microns (see ForMas) to impove convergence
# oxy_to_metal_ratio = 2.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.0095631 # fuel pellet diamter in meters
gap = 190.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .029 # turn off relocation
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 179226042
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_5/RIA/REP_Na_5_RIA.i
# REP Na 5 Rodlet RIA
[GlobalParams]
density = 10476.35 # assumed TD = 10970
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 30
acceptable_multiplier = 10
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
nx_p = 11
ny_p = 164
ny_cu = 3
ny_c = 170
ny_cl = 3
nx_c = 4
clad_thickness = 0.00057825
pellet_outer_radius = 0.0040959
pellet_quantity = 41
pellet_height = 0.0137414
clad_top_gap_height = 0.04081553
clad_bot_gap_height = 0.003
clad_gap_width = 82.0e-6
top_bot_clad_height = 0.0015
elem_type = QUAD8
patch_size = 40
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.15
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./grain_radius]
block = 3
initial_condition = 5.0e-6 # Assume Grain size 10 microns
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fuel_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./stress_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_htype]
order = CONSTANT
family = MONOMIAL
[../]
[./critical_heat_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./plastic_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./oxywtfract_total]
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase]
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_profile]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = REPNa5_power_history_Full.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = REPNa5_axial_peaking_Full.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # inlet coolant pressure evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 101325
8640 15499970
124675200 15499970
124718400 101325
125193600 101325
125193610 101325
125193650 500008
125193700 500008
125193900 500008
125194000 101325
125194100 101325'
[../]
[./temp_ramp] # inlet coolant temp evolution
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = '0 293.15
8640 560.15
124675200 560.15
124761600 293.15
125193600 293.15
125193610 293.15
125193650 553.15
125193700 553.15
125193900 553.15
125194000 293.15
125194100 293.15'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./Fuel_CTE_function] #Fuel CTE as a function of temp from MATPRO data
type = PiecewiseLinear
format = columns
scale_factor = 1.0
xy_data = ' 0 1.000E-05
300 1.000E-05
350 1.000E-05
400 1.000E-05
450 1.000E-05
500 1.001E-05
550 1.002E-05
600 1.003E-05
650 1.005E-05
700 1.008E-05
750 1.011E-05
800 1.015E-05
850 1.020E-05
900 1.026E-05
950 1.032E-05
1000 1.039E-05
1050 1.046E-05
1100 1.053E-05
1150 1.061E-05
1200 1.069E-05
1250 1.077E-05
1300 1.085E-05
1350 1.094E-05
1400 1.102E-05
1450 1.111E-05
1500 1.119E-05
1550 1.127E-05
1600 1.135E-05
1650 1.143E-05
1700 1.151E-05
1750 1.158E-05
1800 1.166E-05
1850 1.173E-05
1900 1.180E-05
1950 1.187E-05
2000 1.193E-05
2050 1.199E-05
2100 1.205E-05
2150 1.211E-05
2200 1.217E-05
2250 1.222E-05
2300 1.227E-05
2350 1.232E-05
2400 1.237E-05
2450 1.242E-05
2500 1.246E-05
2550 1.250E-05
2600 1.254E-05
2650 1.258E-05
2700 1.262E-05
2750 1.265E-05
2800 1.268E-05
2850 1.271E-05
2900 1.274E-05
2950 1.277E-05
3000 1.280E-05
3050 1.282E-05
3100 1.285E-05'
[../]
[./burnup_GWd]
type = ParsedFunction
value = bu*950
vars = 'bu'
vals = 'average_burnup'
[../]
[]
# Specify that we need solid mechanics (divergence of stress)
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
# Define kernels for the various terms in the PDE system (in all cases here, the axisymmetric (RZ) version is specified)
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 42
a_upper = 0.5678974
a_lower = 0.0045
fuel_inner_radius = 0
fuel_outer_radius = 0.0040959
fuel_volume_ratio = 1
i_enrich = '0.0449 0.9551 0 0 0 0'
RPF = RPF
order = CONSTANT
family = MONOMIAL
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = '1'
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_profile
factor = 3e13 #n/m2-s
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./fuel_conductance]
type = MaterialRealAux
property = thermal_conductivity
variable = fuel_cond
block = 3
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = total_swell
execute_on = timestep_end
block = 3
[../]
[./stress_hoop]
type = MaterialTensorAux
tensor = stress
variable = stress_hoop
quantity = Hoop
execute_on = timestep_end
[../]
[./stress_axial]
type = MaterialTensorAux
tensor = stress
variable = stress_axial
quantity = Axial
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./plastic_strain_hoop]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./plastic_strain_axial]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./total_hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_hoop_strain
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./total_axial_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_axial_strain
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./elastic_strain_hoop]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_hoop
quantity = Hoop
execute_on = timestep_end
block = clad
[../]
[./elastic_strain_axial]
type = MaterialTensorAux
tensor = elastic_strain
variable = elastic_strain_axial
quantity = Axial
execute_on = timestep_end
block = clad
[../]
[./clad_coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = clad_coolant_htc
boundary = 2
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = 2
[../]
[./clad_coolant_flux]
type = MaterialRealAux
property = output_heat_flux
variable = clad_coolant_flux
boundary = 2
[../]
[./coolant_channel_hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = coolant_channel_hmode
boundary = 2
[../]
[./coolant_channel_htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = coolant_channel_htype
boundary = 2
[../]
[./critical_heat_flux]
type = MaterialRealAux
property = critical_heat_flux
variable = critical_heat_flux
boundary = 2
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[./creep_strain_mag]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./plastic_strain_mag]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
[../]
[./ofract_total]
type = MaterialRealAux
variable = oxywtfract_total
property = current_oxygen_weight_frac_total
execute_on = timestep_end
boundary = 2
[../]
[./ofgain_total]
type = MaterialRealAux
variable = oxywtfgain_total
property = oxygen_weight_frac_gained_total
execute_on = timestep_end
boundary = 2
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = 1
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e10
formulation = penalty
normalize_penalty = false
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 0.1e-6 #2.0e-6
roughness_clad = 0.1e-6 #0.5e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
#emissivity_fuel = 0.797698 #Emissivity for fuel
#emissivity_clad = 0.325 #Emissivity for clad
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 125107200
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
emissivity_fuel = 1 #Emissivity for fuel
emissivity_clad = 1 #Emissivity for clad
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_temperature = 293.15
initial_pressure = 2.60e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior #plenumTemp
volume = gas_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
refab_time = 125107200
refab_pressure = 0.302e6
refab_temperature = 293.15
refab_volume = 2.4e-6
[../]
[../]
[]
[CoolantChannel]
# [./convective_clad_surface_water] # apply convective boundary to clad outer surface
# boundary = '1 2 3'
# variable = temp
# inlet_temperature = temp_ramp # K
# inlet_pressure = pressure_ramp # Pa
# inlet_massflux = 3244.044104 # kg/m^2-sec
# rod_diameter = 0.00951 # m
# rod_pitch = 1.26e-2 # m
# #linear_heat_rate = power_profile
# #axial_power_profile = axial_peaking_factors
# coolant_material = 'water'
# compute_enthalpy = true
# oxide_thickness = oxide_thickness # coupled oxide_thickness
# number_axial_zone = 50
# [../]
#
[./convective_clad_surface_sodium] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp # K
inlet_pressure = pressure_ramp # Pa
inlet_massflux = 3533 # kg/m^2-sec Based on flow rate provided and flow area and estimated density of 885.1 kg/m^3
flow_area = 8.74855e-5 #m^2
heated_diameter = 1.172526e-2 #m
hydraulic_diameter = 4.7e-3 #m
heated_perimeter = 2.984513e-2 #m
coolant_material = 'sodium'
compute_enthalpy = true
heat_transfer_mode = 0
#oxide_thickness = oxide_thickness # coupled oxide_thickness
number_axial_zone = 50
rod_pitch = 1.26e-2 # m
rod_diameter = 0.0095 # m
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./density_fuel]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.045
[../]
[./fuel_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2e11
poissons_ratio = 0.345
#thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
thermal_expansion_function = Fuel_CTE_function
stress_free_temperature = 293.15
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.00819179 #Fuel pellet diameter in m
q = q
gap = 164.0e-6 #diametral gap in m
burnup_relocation_stop = 0.0223
relocation_activation1 = 5000 #initial relocation activation power in W/m
[../]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
save_solid_swell = true
save_densification = true
total_densification = 0.00675
initial_porosity = 0.045
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
initial_porosity = 0.045
#grain_radius = grain_radius
grain_radius_const = 5.0e-6
gbs_model = false
transient_option = 1
[../]
[./density_clad]
type = Density
block = '1'
density = 6550
[../]
[./clad_thermal]
type = ThermalZry
block = '1'
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
formulation = NonlinearRZ
large_strain = 1
constitutive_model = combined
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
model_irradiation_growth = 0 #1
model_thermal_expansion = 1
model_elastic_modulus = 1
stress_free_temperature = 293.15
compute_JIntegral = true
oxygen_concentration = 0.00771
max_inelastic_increment = 1.0e-4
compute_material_timestep_limit = true
[../]
[./combined]
type = CombinedCreepPlasticity
block = 1
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = 0 #1
model_primary_creep = 0 #1
model_thermal_creep = 0 #1
model_thermal_creep_loca = 0
[../]
[./plasticity]
type = ZryPlasticity
block = clad
temp = temp
cold_work_factor = 0.5
fast_neutron_fluence = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
use_matpro = true
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0041178
clad_outer_radius = 0.0047549
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./phase]
type = ZrPhase
block = 1
temperature = temp
numerical_method = 2
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
max_value = 3200 # The maximum permissible iterative value for the variable.
min_value = 200 # The minimum permissible iterative value for the variable.
variable = temp # The name of the variable that this damper operates on
[../]
[./contact_slip]
type = ContactSlipDamper
master = 5
slave = 10
min_damping_factor = 0.05
[../]
[]
#Preconditioning seems to help with frictionless contact but with frictional contact has always resulted in BISON to fail
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
#verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 1e-3
# controls for nonlinear iterations
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-8
# time control
start_time = 0
end_time = 125194100
dtmax = 10
dtmin = 1e-9
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1
optimal_iterations = 20
iteration_window = 4
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
max_function_change = 5e5
force_step_every_function_point = true
timestep_limiting_postprocessor = material_timestep_control
time_t = '125193610 125193620 125193630 125193640 125193650 125193660 125193670 125193680'
time_dt = '10 10 10 10 10 10 10 10'
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
# [./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
# type = SideAverageValue
# boundary = '6 8'
# variable = temp
# execute_on = 'initial linear'
# [../]
#Used during RIA to be mainly the cladding temperature at the top of the plenum
[./ave_temp_interior]
type = NodalVariableValue
variable = temp
nodeid = 2497
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./0_dt] # time step
type = TimestepSize
[../]
[./1_rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./burnup_GWd]
type = FunctionValuePostprocessor
function = burnup_GWd
[../]
#######################################
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 5780
use_displaced_mesh = 1
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 5780
use_displaced_mesh = 1
[../]
[./gap_cond]
type = ElementalVariableValue
variable = gap_cond
elementid = 1737
use_displaced_mesh = 1
[../]
[./creep_hoop_strain]
type = ElementalVariableValue
variable = creep_strain_hoop
elementid = 388
use_displaced_mesh = 1
[../]
[./elastic_hoop_strain]
type = ElementalVariableValue
variable = elastic_strain_hoop
elementid = 388
use_displaced_mesh = 1
[../]
[./plastic_hoop_strain]
type = ElementalVariableValue
variable = plastic_strain_hoop
elementid = 388
use_displaced_mesh = 1
[../]
[./total_hoop_strain]
type = ElementalVariableValue
variable = total_hoop_strain
elementid = 388
use_displaced_mesh = 1
[../]
[./clad_hoop_stress]
type = ElementalVariableValue
variable = stress_hoop
elementid = 388
use_displaced_mesh = 1
[../]
[./clad_axial_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 2591
use_displaced_mesh = 1
[../]
[./clad_oxide_thickness]
type = ElementalVariableValue
variable = oxide_thickness
elementid = 388
use_displaced_mesh = 1
[../]
[./clad_coolant_htc]
type = ElementalVariableValue
variable = clad_coolant_htc
elementid = 388
use_displaced_mesh = 1
[../]
[./coolant_temp]
type = ElementalVariableValue
variable = coolant_temp
elementid = 388
use_displaced_mesh = 1
[../]
[./fuel_centerline_temp]
type = NodalVariableValue
variable = temp
nodeid = 5749
[../]
[./fuel_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 5780
[../]
[./clad_inner_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 1349
[../]
[./clad_outer_surface_temp]
type = NodalVariableValue
variable = temp
nodeid = 1359
[../]
[./fuel_axial_elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 8475
[../]
[./clad_radial_elongation]
type = NodalVariableValue
variable = disp_x
nodeid = 1359
[../]
[./fuel_radial_elongation]
type = NodalVariableValue
variable = disp_x
nodeid = 5780
[../]
[./SED_PPN_O]
type = ElementalVariableValue
variable = SED
elementid = 388
use_displaced_mesh = 1
[../]
[./SED_PPN_I]
type = ElementalVariableValue
variable = SED
elementid = 385
use_displaced_mesh = 1
[../]
[./OFract_PPN_O]
type = ElementalVariableValue
variable = oxywtfract_total
elementid = 388
use_displaced_mesh = 1
[../]
[./OGain_PPN_O]
type = ElementalVariableValue
variable = oxywtfgain_total
elementid = 388
use_displaced_mesh = 1
[../]
#######################################
[./max_fuel_temp]
type = NodalMaxValue
block = 3
variable = temp
[../]
[./max_clad_temp]
type = NodalMaxValue
block = clad
variable = temp
[../]
[./max_clad_SED]
type = ElementExtremeValue
block = clad
variable = SED
value_type = max
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[./material_timestep_control]
type = MaterialTimeStepPostprocessor
block = 1
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_1'
[../]
[./ox_thick]
type = SideValueSampler
variable = oxide_thickness
boundary = 2
sort_by = y
outputs = 'outfile_2'
[../]
[./rad_temp]
type = LineValueSampler
end_point = '0.0040959 0.3 0.0'
start_point = '0.0 0.3 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
interval = 1
csv = true
#exodus = true
color = false
[./outfile_1]
type = CSV
#execute_on = 'FINAL'
sync_times = '125193600 125194100'
sync_only = true
[../]
[./outfile_2]
type = CSV
#execute_on = 'FINAL'
sync_times = '125193600 125194100'
sync_only = true
[../]
[./dummy]
type = CSV
enable = false
[../]
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
sync_times = '125193600'
sync_only = true
[../]
[./exodus]
type = Exodus
interval = 5
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
show_material_props = true
[]
examples/tensor_mechanics/2D-RZ_rodlet_10pellets/Smeared_tm_smallStrain.i
# Model is of a 10 pellet stack of smeared fuel (pellet_type_2).
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
initial_porosity = 0.05
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
# Import mesh file
file = smeared.e
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
# Define dependent variables and initial conditions
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./creep_strain_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors12.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
add_variables = true
strain = SMALL
incremental = true
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = SMALL
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 0.00324 # mesh dependent
a_upper = 0.12184 # mesh dependent
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 1.0 # for use with dished pellets (ratio of actual volume to cylinder volume)
order = CONSTANT
family = MONOMIAL
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./creep_strain_rate]
type = MaterialRealAux
property = creep_rate
variable = creep_strain_rate
block = clad
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
quadrature = true
contact_pressure = contact_pressure
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
diameter = 0.0082
linear_heat_rate_function = q
gap = 160.0e-6 #diametral gap
burnup_relocation_stop = 0.024
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_1
temperature = temp
burnup_function = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal] # general thermal property input
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./centerline_temp]
type = SideAverageValue
boundary = 12
variable = temp
execute_on = linear
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
#outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
#outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
execute_on = 'linear'
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
execute_on = 'linear'
[../]
[./fisson_gas_release]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./_dt] # time step
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[../]
[./mid_penetration]
type = NodalVariableValue
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
variable = penetration
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temp
nodeid = 584 # mesh dependent, at (0.0041, 0.0546333)
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
[../]
[./center_vonMises_fuel]
type = ElementalVariableValue
elementid = 165 # mesh dependent
variable = vonmises_stress
[../]
[./center_hoop_clad]
type = ElementalVariableValue
elementid = 425 # mesh dependent
variable = stress_zz
[../]
[./center_effective_creep_strain_inner]
type = ElementalVariableValue
elementid = 425 # mesh dependent
variable = effective_creep_strain
[../]
[./center_effective_creep_strain_outer]
type = ElementalVariableValue
elementid = 422 # mesh dependent
variable = effective_creep_strain
[../]
[./effective_creep_strain]
type = ElementAverageValue
variable = effective_creep_strain
[../]
[./center_effective_creep_rate_inner]
type = ElementalVariableValue
elementid = 425 # mesh dependent
variable = creep_strain_rate
[../]
[./center_effective_creep_rate_outer]
type = ElementalVariableValue
elementid = 422 # mesh dependent
variable = creep_strain_rate
[../]
[./effective_creep_strain_rate]
type = ElementAverageValue
variable = creep_strain_rate
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'tm_clad_radial_displacement'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'tm_fuel_radial_displacement'
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./tm_clad_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./tm_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[]
test/tests/triso_failure/triso_1d_ipyc_failure.i
[GlobalParams]
density = 10810.0 # kg/m^3
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
type = TRISO1DMesh
elem_type = EDGE3
coordinates = '0 2.485e-4 3.425e-4 3.425e-4 3.835e-4 4.195e-4 4.595e-4'
mesh_density = '6 6 0 6 8 6'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[Problem]
coord_type = RSPHERICAL
[]
[Variables]
[./disp_x]
[../]
[./temp]
initial_condition = 1346.0
[../]
[]
[Functions]
[./radial_eigenstrain]
type = ParsedFunction
value = 't*(4.52013e-4/6.0*t*t*t*t*t - 8.36313e-3/5.0*t*t*t*t + 5.67549e-2/4.0*t*t*t - 1.74247e-1/3.0*t*t + 2.62692e-1/2.0*t - 1.43234e-1)'
[../]
[./tangential_eigenstrain]
type = ParsedFunction
value = 't*(1.30457e-4/4.0*t*t*t - 2.10029e-3/3.0*t*t + 9.07826e-3/2.0*t - 3.24737e-2)'
[../]
[./fission_rate]
type = ParsedFunction
value = 7.75e19 # units of fissions/m**3
[../]
[./k_function]
type = ParsedFunction
value = '4.93e-29'
[../]
[./high_fidelity_strength_crackedIPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1000000 1000000'
[../]
[./high_fidelity_strength_crackedOPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1000000 1000000'
[../]
[./stress_correlation_crackedOPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1 1'
[../]
[./stress_correlation_crackedIPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '100 100'
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./burnup]
block = fuel
initial_condition = 0.0
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
initial_condition = 0.0
[../]
[./fission_rate]
block = fuel
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
factor = 1.708707e18 # n/m^2-sec
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./fission_rate]
type = FunctionAux
variable= fission_rate
block = fuel
function = fission_rate
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = IPyC_left_boundary
slave = buffer_right_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = IPyC_left_boundary
slave = buffer_right_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
# contact_pressure_input = 10e6
# quadrature = true
[../]
[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = DirichletBC
variable = temp
boundary = exterior
value = 1346.0
[../]
# exterior and internal pressures
[./exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
component = 0
factor = 0.1e6
[../]
[./PlenumPressure] # apply gas pressure on buffer and IPyC boundaries
[./plenumPressure]
boundary = buffer_IPyC_boundary
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[Materials]
[./fission_gas_release] # Sifgr fission gas release mode
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[../]
[./stress]
type = ComputeLinearElasticStress
block = 'fuel buffer SiC'
[../]
[./strain]
type = ComputeRSphericalSmallStrain
block = 'fuel buffer SiC'
eigenstrain_names = thermal_strain
[../]
[./PyC_stress]
type = PyCCreep
block = 'IPyC OPyC'
k = k_function
nu = 0.4
flux = fast_neutron_flux
temperature = temp
density = 1880.0 # kg/m^3
[../]
[./PyC_strain]
type = ComputeRSphericalIncrementalStrain
block = 'IPyC OPyC'
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
[../]
[./PyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = 'IPyC OPyC'
fluence = fast_neutron_fluence
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[../]
[./fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./PyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[../]
[./fuel_den]
type = Density
block = fuel
disp_r = disp_x
[../]
[./buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_den]
type = Density
density = 1000 #kg/m^3
block = buffer
disp_r = disp_x
[../]
[./PyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[../]
[./PyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./PyC_den]
type = Density
density = 1880.0 # kg/m^3
block = 'IPyC OPyC'
disp_r = disp_x
[../]
[./SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_den]
type = Density
density = 3200.0 # kg/m^3
block = SiC
disp_r = disp_x
[../]
[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
# petsc_options = '-snes_mf_operator -snes_ksp_ew -ksp_monitor'
# petsc_options_iname = '-pc_type -pc_hypre_type'
# petsc_options_value = 'hypre boomeramg'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
num_steps = 10
dtmax = 2e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[./burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[../]
[./volumeTotal]
type = InternalVolume
boundary = exterior
[../]
[./volumeFuel]
type = InternalVolume
boundary = fuel_right_boundary
[../]
[./volumeGas]
type = InternalVolume
boundary = 'fuel_right_boundary IPyC_left_boundary'
addition = -5.53e-11
execute_on = 'initial timestep_end'
[../]
[./volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temp
execute_on = 'initial timestep_end'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
[../]
[./tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[../]
[./strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
characteristic_strength = 9640000
[../]
[./failure_indicator_SiC]
type = WeibullFailureIndicator
block = SiC
weibull_modulus = 6
effective_mean_strength = strength_SiC
[../]
[./strength_IPyC]
type = WeibullEffectiveMeanStrength
block = IPyC
weibull_modulus = 6
characteristic_strength = 10000
[../]
[./failure_indicator_IPyC]
type = WeibullFailureIndicator
block = IPyC
weibull_modulus = 6
effective_mean_strength = strength_IPyC
[../]
[./strength_OPyC]
type = WeibullEffectiveMeanStrength
block = OPyC
weibull_modulus = 6
characteristic_strength = 964000
[../]
[./failure_indicator_OPyC]
type = WeibullFailureIndicator
block = OPyC
weibull_modulus = 6
effective_mean_strength = strength_OPyC
[../]
[./failure_indicator_SiC_crackedIPyC]
type = WeibullFailureIndicator
block = SiC
weibull_modulus = 6
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
[../]
[./failure_indicator_SiC_crackedOPyC]
type = WeibullFailureIndicator
block = SiC
weibull_modulus = 6
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedOPyC'
[../]
[./triso_failure]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
OPyC_failure = failure_indicator_OPyC
SiC_failure = failure_indicator_SiC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure_crackedOPyC = failure_indicator_SiC_crackedOPyC
[../]
[]
[Outputs]
print_linear_residuals = true
interval = 1
csv = true
perf_graph = true
[]
assessment/LWR/validation/RIA_NSRR_FK/analysis/FK3/FK03_ccm.i
# This file was created using BIF with the following inputs:
# FK03/FK03.var - md5sum: 63fb064f9380e246b80d3fb7762c0b71
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
[GlobalParams]
density = 10020.6066633
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
displacements = 'disp_x disp_y'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
displacements = 'disp_x disp_y'
patch_size = 5
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
top_bot_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.05265
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[AuxVariables]
[./BuTC]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gap]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./fission_rate]
initial_condition = 0
[../]
[./grain_radius]
block = 3
initial_condition = 5.96e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./integral_burnup]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_radial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.085711070864
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[../]
[./flux]
type = ConstantFunction
value = 0.0
[../]
[./axial_peaking_factors]
type = ConstantFunction
value = 1
[../]
[./coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[../]
[./linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[../]
[./axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[../]
[./burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[../]
[./radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[../]
[./radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[../]
[./initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
i_enrich = '0.039 0.961 0.0 0.0 0.0 0.0'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
save_in = saved_t
block = 3
[../]
[]
[AuxKernels]
[./BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[../]
[./gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[../]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = timestep_begin
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_begin
[../]
[./radial_stress]
type = MaterialTensorAux
tensor = stress
variable = radial_stress
index = 0
execute_on = timestep_begin
[../]
[./axial_stress]
type = MaterialTensorAux
tensor = stress
variable = axial_stress
index = 1
execute_on = timestep_begin
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
index = 2
execute_on = timestep_begin
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./axial_strain]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = stress
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./elastic_radial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = radial_strain
index = 0
execute_on = timestep_begin
[../]
[./elastic_axial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_strain
index = 1
execute_on = timestep_begin
[../]
[./elastic_hoop_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_strain
index = 2
execute_on = timestep_begin
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_begin
[../]
[./creep_strain_radial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 0
execute_on = timestep_begin
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
index = 1
execute_on = timestep_begin
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 2
execute_on = timestep_begin
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
friction_coefficient = 2.5
normal_smoothing_distance = 0.1
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
roughness_coef = 3.2
roughness_fuel = 1.5e-6
roughness_clad = 1.75e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
initial_gas_fractions = '1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0'
gas_released = fission_gas_released
tangential_tolerance = 1.0e-6
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '10 5'
initial_pressure = 0.3e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[../]
[../]
[]
[CoolantChannel]
[./clad_outer_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 295
inlet_pressure = 0.1E6 # Pa
inlet_massflux = 100.0 # kg/m^2-sec
rod_diameter = 1.10e-2 # m
rod_pitch = 1.26e-2 # m
compute_enthalpy = false
chf_scalef = 5.0
htc_correlation_type = 9
chf_correlation_type = 5
outputs = all
output_properties = 'coolant_channel_htc coolant_channel_hmode coolant_channel_htype critical_heat_flux'
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
block = 3
temp = temp
burnup = BuTC
initial_porosity = 0.085711070864
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
temp = temp
burnup = burnup
total_densification = 0.006
gas_swelling_type = SIFGRS
[../]
[./fuel_mech]
type = MechUO2
block = 3
temp = temp
burnup = BuTC
fission_rate = fission_rate
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 5.56e-06
oxy_to_metal_ratio = 2.0
model_thermal_expansion = true
model_swelling = true
name_swelling_model = fuel_swelling
model_relocation = false
name_relocation_model = fuel_relocation
model_creep = false
model_hotpressing = false
has_hotpressing_plasticity = false # used to turn on plasticity models
matpro_youngs_modulus = false
matpro_poissons_ratio = false
dep_matl_props = deltav_v0_bd
# input_yield_stress = 100e6 # used to turn on plasticity models
# input_hardening_modulus = 2e9 # used to turn on plasticity models
# transition_temperature = 1273 # used to change the hot presing temperature
# isotropic_cracking = true # used for isotropic softening model
# rod_ave_lin_pow = linear_heat_rate_profile # used for isotropic softening model
# cracking_stress = 120e6 # used for smeared cracking model
# cracking_release = exponential # used for smeared cracking model
# cracking_residual_stress = 0.1 # used for smeared cracking model
# cracking_beta = 0.01 # used for smeared cracking model
# compute_method = ShearRetention # used for smeared cracking model
# max_cracks = 3 # used for smeared cracking model
# active_crack_planes = '0 1 2' # used for smeared cracking model
stress_free_temperature = 293
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = buavg
q = linear_heat_generation_rate
diameter = 0.01054
gap = 1e-05
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
creeprate_scalef = 1
cold_work_factor = 0.01
material_type = 0
model_irradiation_growth = false
model_thermal_expansion = true
model_elastic_modulus = true
constitutive_model = plasticity
compute_JIntegral = true
formulation = NonlinearRZ
[../]
[./combined]
type = CombinedCreepPlasticity
block = clad
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = clad
temp = temp
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
material_type = 0
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
[../]
[./plasticity]
type = ZryPlasticity
block = 1
temp = temp
initial_fast_fluence = 8.40e25
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
use_matpro = true
output_properties = yield_stress
outputs = all
scale_factor = 1.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = 2
[../]
[./clad_density]
type = Density
block = 1
density = 6551
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[UserObjects]
[./avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[../]
[./integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 550000
force_step_every_function_point = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Postprocessors]
[./average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[]
[VectorPostprocessors]
[./rad_temp]
type = LineValueSampler
end_point = '0.00527 0.0503 0.0'
start_point = '0.0 0.0503 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
output_linear = true
[../]
[./dummy]
type = CSV
enable = true
[../]
[]
assessment/LWR/validation/IFA_535/analysis/rod_811/IFA_535_rod_811.i
# IFA 535.6 rod 811 (Table & Figure references are to IFA-535.pdf)
[GlobalParams]
density = 10398.06 #Table 1 (PDF page 14), 94.7% TD #Assuming a TD of 10980.
displacements = 'disp_x disp_y'
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
group_variables = 'disp_x disp_y'
[]
[Mesh]
file = ifa535_rod811.e
patch_size = 20 # 50
patch_update_strategy = auto
[]
[UserObjects]
[./fuelPinGeometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 297.0
# If the initial diameter from the mesh
# is compared to the pre & post-ramp diameters, then they should probably
# be compared at the same cladding temperatures.
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = 'clad'
[../]
[./fast_neutron_fluence]
block = 'clad'
[../]
[./grain_radius]
block = 'pellet_type_1' #'pellet'
initial_condition = 9.36e-6 # 2D grain radius 6um #From rod 810
#2.75e-6 #Table 3.2, 5.5/2 microns (Assuming 3D grain size)
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = avgPower_IFA535rod811.csv
format = columns
#direction = left
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = axialPowerPeakingFactor_IFA535rod811.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 226461642 226461742 226465242 226465342 236293846 236294746'
y = '1.4475e-2 1 1 1.4475e-2 1.4475e-2 1 1 1.4475e-2'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./cladTemp]
type = PiecewiseLinear
data_file = avgCladTemp_IFA535rod811.csv
format = columns
#direction = left
scale_factor = 1
[../]
[./cladPeakingFactors]
type = PiecewiseBilinear
data_file = axialCladTempPeakingFactor_IFA535rod811.csv
scale_factor = 1
axis = 1
[../]
[./cT]
type = CompositeFunction
functions = 'cladTemp cladPeakingFactors'
[../]
[./fluxFactor]
type = PiecewiseLinear
data_file = flux_IFA535rod811.csv
format = columns
#direction = left
scale_factor = 1
[../]
[./fluxValue]
type = CompositeFunction
functions = 'fluxFactor power_profile'
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = pellet_type_1
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_eigenstrain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
decomposition_method = EigenSolution
[../]
[./clad]
block = clad
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_strain clad_irradiation_growth'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
decomposition_method = EigenSolution
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = 'pellet_type_1' #'pellet' # fission rate applied to the fuel (block 2) only
#fission_rate = fission_rate # coupling to the fission_rate aux variable
burnup_function = burnup
#fuel_pin_geometry = fuelPinGeometry
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
order = CONSTANT
family = MONOMIAL
block = 'pellet_type_1' #'pellet'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
fuel_pin_geometry = fuelPinGeometry
#a_upper = 337.53e-3 #317.4e-3+20.13e-3 (a_lower+pellet_height),top of fuel stack
#a_lower = 20.13e-3 #From top_bot_clad_height #18.5e-3 #bottom of fuel stack, Figure 3.1
#fuel_inner_radius = 0
#fuel_outer_radius = 4.569e-3 #Table 3.2, from diameter
i_enrich = '0.0988 0.9012 0 0 0 0' #Table 3.2
#fuel_volume_ratio = 0.9756625712887741 #(dimple fraction) from calculations in fuel_volume_ratio.ipynb
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 'clad'
axial_power_profile = axial_peaking_factors
#rod_ave_lin_pow = power_profile
#factor = 3.71098e13 #from fluxCalc.xlsx #8.025e17 #Table 3.7, avg. of cycles 8-11, converted to n/(m^2-s)
function = fluxValue
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 'pellet_type_1' #'pellet'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
# Define mechanical contact between the
# fuel (sideset=10) and the clad (sideset=5)
master = 5
slave = 10
#penalty = 1e7 #for kinematic (default method is kinematic)
formulation = penalty #penalty method - same as rod810
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
# Define thermal contact between the
# fuel (sideset=10) and the clad (sideset=5)
type = GapHeatTransferLWR
variable = temp
master = 5 #'4 5 6' #5
slave = 10 #8 #10
initial_moles = initial_moles # coupling to a postprocessor
# which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor
# which supplies the fission gas addition
roughness_clad = 1e-6 #default
roughness_fuel = 2e-6 #use 2e-6 instead of default
roughness_coef = 3.2 #use 3.2 unless know better
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 226461742
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
# pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
# pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
# pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 7e6 #pp. 8 of "535.pdf"
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 0.1e6 #from pp.6 of "535.pdf" for IFA-409
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get
# inital fill gas mass
temperature = plenum_temperature # coupling to post processor to get
# gas temperature approximation
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get
# fission gas added
output = plenum_pressure # coupling to post processor to
# output plenum/gap pressure
refab_time = 226461742 #226465242 #217722744
refab_pressure = .76e6 #3.2e6
refab_temperature = 298.15 #449.05
refab_volume = 9.6e-6
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
[../]
[../]
[./claddingSurfTemp]
type = FunctionDirichletBC
function = cT
boundary = '1 2 3' #2 # cladding boundary
variable = temp
[../]
[]
[Materials]
[./density_clad]
type = Density
block = 'clad'
density = 6551.0 #Check this value; cladding is Zr-2
[../]
[./density_fuel]
type = Density
block = 'pellet_type_1' #'pellet'
[../]
[./fuel_thermal]
# temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 'pellet_type_1' #'pellet'
temp = temp
burnup_function = burnup
initial_porosity = .053 #(1-density/theoreticalDensity)
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 'pellet_type_1'
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 'pellet_type_1'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 'pellet_type_1'
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 297.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation] # relocation strain measure for UO2
type = UO2RelocationEigenstrain
block = 'pellet_type_1'
burnup_function = burnup
fuel_pin_geometry = fuelPinGeometry
linear_heat_rate_function = q
burnup_relocation_stop = 0.2 #0.02
relocation_activation1 = 5000
eigenstrain_name = fuel_relocation_eigenstrain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 'clad'
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor] # isotropic elasticity tensor for Zry cladding
type = ZryElasticityTensor
block = 'clad'
[../]
[./clad_stress] # stress update class to govern the return mapping algorithm for creep
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_creep'
block = 'clad'
[../]
[./clad_creep] # creep for zircaloy cladding
type = ZryCreepLimbackHoppeUpdate
block = 'clad'
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 'clad'
temperature = temp
stress_free_temperature = 297.0
eigenstrain_name = clad_thermal_strain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = 'clad'
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_growth
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 'pellet_type_1' #'pellet'
temperature = temp
burnup_function = burnup
initial_fuel_density = 10398.06
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 'pellet_type_1' #'pellet'
temp = temp
#fission_rate = fission_rate # coupling to fission_rate aux variable
#initial_grain_radius = 9.36e-6 # 2D grain radius 6um #From rod 810
#2.75e-6 #Table 3.2, 5.5/2 microns (Assuming 3D grain size)
grain_radius = grain_radius
gbs_model = true
#burnup = burnup
burnup_function = burnup
#total_densification = 0.009 #Leave at default
initial_porosity = .053 #(1-density/theoreticalDensity)
transient_option = 2
#compute_swelling = true
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
# [./limitDisp]
# type = MaxIncrement
# max_increment = 1e-5
# variable = disp_x
# [../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-3 #1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 236294746 #last time step from avgPower_IFA535rod811.csv
dtmax = 2e6 #1e6
dtmin = 1
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
force_step_every_function_point = true
timestep_limiting_function = power_profile
max_function_change = 3e20
optimal_iterations = 20 #15
iteration_window = 6
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
# volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./avg_clad_temp]
# average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 'pellet_type_1' #'pellet'
[../]
[./input_rod_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./maxCenterlineTemp]
type = NodalMaxValue
boundary = 12 # pellet_centerline
variable = temp
[../]
[./maxFuelPenetration]
type = NodalMaxValue
boundary = 10 # pellet_centerline
variable = penetration
[../]
[./minFuelPenetration]
type = NodalExtremeValue
boundary = 10 # pellet_centerline
value_type = min
variable = penetration
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = 'pellet_type_1' #'pellet'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_1
temperature = temp
mechanics_system = TENSOR
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
#checkpoint = true
#execute_on = 'nonlinear timestep_end'
csv = true
exodus = true
[./console]
type = Console
output_linear = true
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFL031/SM/BFL031.i
################################################################################
#
# Description: Calvert Cliffs BFL031
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFL031_power.csv
# axial peaking factor file BFL031_axial_peaking.csv
# flux boundary condition file BFL031_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10460.45 #95.332 %TD Assume TD = 10972.65 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
file = BFL031_mesh.e
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 3.85e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFL031_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFL031_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 174660997 174661357'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 174660997 174661357'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFL031_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0013589
fuel_outer_radius = 0.00478155
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '9 13' # clad interior + fuel exterior
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elasticity_and_creep]
type = Elastic #CreepUO2
block = 3
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.0095631 # fuel pellet diamter in meters
gap = 190.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .029 # turn off relocation
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 174661357
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_2984]
type = NodalVariableValue
nodeid = 2983
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/HBEP/analysis/BK365/HBEP_BK365.i
[GlobalParams]
density = 10233 #93.2% of TD (TD assumed to be 10980)
initial_porosity = 0.068
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = HBEP.e
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./grain_radius]
block = 3
initial_condition = 10.60e-6 # must be the same as the initial value in Sifgr
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
# reads and interpolates an input file containing rod average linear power vs time
type = PiecewiseLinear
data_file = BK365_linear_power.csv
format = columns
[../]
[./axial_peaking_factors]
# reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = BK365_power_peaking_factors.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp]
# reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
#Ambient for initial build @ 0.101353 MPa, PWR @ 13.73 MPa and PIE @ 0.101353 MPa
x = '-100 0 137115360'
y = '0.007382 1 0.007382'
[../]
[./flux]
type = PiecewiseLinear
data_file = BK365_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = BK365_clad_temp.csv
format = columns
[../]
[./axial_clad_peaking]
# reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = BK365_clad_temp_peaking_factors.csv
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet_type_1
strain = FINITE
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
decomposition_method = EigenSolution
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
decomposition_method = EigenSolution
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1 # fission rate applied to the fuel only
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
a_lower = 0.00324
a_upper = 1.02024
fuel_outer_radius = 4.095e-3
fuel_inner_radius = 1.24e-3
i_enrich = '0.0707 0.9293 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = pellet_type_1
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = '1'
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = '1'
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./hydrostatic_stress]
block = pellet_type_1
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic_stress
scalar_type = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
# computes stress components for output
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
block = 1
[../]
[./creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
block = 1
[../]
[./creep_strain_xy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xy
index_i = 0
index_j = 1
execute_on = timestep_end
block = 1
[../]
[./creep_strain_hoop]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_hoop
index_i = 2
index_j = 2
execute_on = timestep_end
block = 1
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = 1
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
system = constraint
penalty = 1e7
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
slave = 10 # fuel
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
master = 5 # clad
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
variable = temp
tangential_tolerance = 1e-6
roughness_coef = 3.2
roughness_clad = .955e-6
roughness_fuel = 1.5e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionPresetBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 13.73e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.88e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = plenum_temperature
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = pellet_type_1
burnup_function = burnup
temperature = temp
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
initial_fuel_density = 10233
[../]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
temperature = temp
stress_free_temperature = 300
thermal_expansion_coeff = 10e-6
eigenstrain_name = fuel_thermal_eigenstrain
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = pellet_type_1
temperature = temp
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
diameter = .00819
linear_heat_rate_function = q
gap = 1.7e-4 #diameteral gap
relocation_activation1 = 5000 # intial relocation activation power set to 5kW/m
burnup_relocation_stop = .04
eigenstrain_name = fuel_relocation_eigenstrain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='clad_creep_stress'
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = clad_irradiation_growth_eigenstrain
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 300
temperature = temp
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
diff_coeff_option = 2
transient_option = 2
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 50
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 137115360
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
iteration_window = 2
optimal_iterations = 10
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_history
max_function_change = 2e6
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block =pellet_type_1
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.017 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = pellet_type_1
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = pellet_type_1
[../]
[./FCT]
type = NodalVariableValue
variable = temp
nodeid = 4784
[../]
[./maxFuelPenetration]
type = NodalMaxValue
boundary = 10 # pellet_centerline
variable = penetration
[../]
[./minFuelPenetration]
type = NodalExtremeValue
boundary = 10 # pellet_centerline
value_type = min
variable = penetration
[../]
[./clad_fuel_gap]
type = NodalMaxValue
variable = penetration
boundary = 10
[../]
[./max_cont_press]
type = NodalMaxValue
variable = contact_pressure
boundary = 10
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage FCT rod_total_power'
execute_on = 'FINAL'
[../]
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_grain_growth.i
# This test aims at demonstrating the coupling of the Sifgrs fission gas behavior model with the grain growth model (GrainRadiusAux). As the grains grow, the moving grain boundaries act as filters and contribute to the collection of gas at the grain boundaries (grain boundary sweeping). This effect is taken into account in the Sifgrs model by adding a supplementary fractional release term from within grains to grain boundaries that is equal to the volume fraction of the fuel swept by the moving boundaries. For this purpose, Sifgrs is coupled with the grain growth model and incorporates a specific grain boundary sweeping capability that can be activated by specifying gbs_model = true in the fission_gas_release block (see below).
# For the purpose of this test, fission gas swelling is not calculated. The gas that reaches the grain boundaries is forced to be instantaneously released to the plenum by setting the fractional bubble coverage at grain boundary saturation to zero (saturation_coverage = 0). Starting from an initial value of 5 microns, the grain radius increases due to grain growth following the temperature increase. At the end of the simulation the grain radius reaches the value of 17.464 microns. The results of the test show that gas release due to grain boundary sweeping occurs after grain growth commences (see also the enclosed file regression_tests_sifgrs.xlsx).
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Temp_func]
type = PiecewiseLinear
x = '0. 1.e+08'
y = '1000. 1700. '
[../]
[./Fiss_func]
type = ParsedFunction
value = '1.e19'
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 1000
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./grain_radius]
block = 1
initial_condition = 5.e-06
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
[../]
[./gas_gbs_3]
order = CONSTANT
family = MONOMIAL
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./grain_radius]
type = GrainRadiusAux
block = 1
variable = grain_radius
temp = T
execute_on = 'initial linear'
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
[../]
[./fggbs]
type = MaterialRealAux
variable = gas_gbs_3
property = gas_gbs_3
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[../]
[]
[Materials]
[./UO2]
type = HeatConductionMaterial
block = 1
temp = T
thermal_conductivity = 1.0
specific_heat = 1.0
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 1
temp = T
fission_rate = fission_rate
skip_bdr_model = true
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-08
nl_rel_tol = 1.e-08
start_time = 0.
num_steps = 500
dt = 1.e+06
end_time = 1.e+08
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[./average_grain_radius]
type = ElementAverageValue
block = 1
variable = grain_radius
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
assessment/LWR/validation/Tribulation/analysis/BN1X4/BN1X4_tm.i
[GlobalParams]
density = 10373 # 94.747 % TD assuming TS 10980
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
initial_porosity = 0.05526
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
type = SmearedPelletMesh
dim = 2
pellet_quantity = 1
pellet_height = 0.9976
pellet_outer_radius = 0.00402
pellet_mesh_density = customize
nx_p = 11
ny_p = 243
clad_bot_gap_height = 0.001
clad_gap_width = 100.0e-6
clad_thickness = 0.00063
clad_mesh_density = customize
nx_c = 4
ny_c = 249
top_bot_clad_height = 0.00224
clad_top_gap_height = 0.0934
elem_type = QUAD8
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = 3
initial_condition = 8.58e-6 # 2D grain radius 11e-6/2*1.56
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseBilinear
data_file = BN1X4_power.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 34462368 34548768 34635168 90055584 90141984'
y = '0.0073804 1 1 0.0073804 1 1 0.0073804'
[../]
[./flux]
type = PiecewiseBilinear
data_file = BN1X4_fast_flux.csv
axis = 1
[../]
[./clad_temp_bc]
type = PiecewiseBilinear
data_file = BN1X4_clad_temp.csv
axis = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./timestep_function]
type = PiecewiseLinear
data_file = BN1X4_time_function.csv
format = columns
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
i_enrich = '0.0825 0.9175 0 0 0 0' # 8.25% enriched U-235
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 0.3e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 13.729e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.96133e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup = burnup
linear_heat_rate_function = power_history
relocation_activation1 = 5000
burnup_relocation_stop = 0.025
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10373
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 60
l_tol = 8e-3
nl_max_its = 30
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 90141984
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 20
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = timestep_function
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[./fuel_max_temp]
type = ElementExtremeValue
block = 3
variable = temp
[../]
[./fuel_average_temp]
type = ElementAverageValue
block = 3
variable = temp
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage fuel_average_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.10/SM/IFA_650_10_part2.i
# Halden test IFA-650.10
[GlobalParams]
density = 10447. # 95.32% of 10960
displacements = 'disp_x disp_y'
disp_r = disp_x
disp_z = disp_y
order = FIRST #SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
[]
[Problem]
coord_type = RZ
restart_file_base = 'IFA_650_10_part1_checkpoint_cp/LATEST'
[]
[Mesh]
file = mesh_ifa65010.e
displacements = 'disp_x disp_y'
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.
[../]
[]
[Functions]
[./linear_heat_rate]
type = PiecewiseLinear
data_file = lhr_average.csv
scale_factor = 1.e+03
format = columns
[../]
[./axial_power_peaking_factors]
type = PiecewiseBilinear
data_file = lhr_peaking_factors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./rod_outer_pressure]
type = PiecewiseLinear
data_file = rod_outer_pressure.csv
scale_factor = 1.e+06
format = columns
[../]
[./clad_outer_temperature]
type = PiecewiseBilinear
data_file = temp_outer_clad.csv
scale_factor = 1.
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./q] # same as linear_heat_rate for the base irradiation
type = PiecewiseLinear
data_file = lhr_average.csv
scale_factor = 1.e+03
format = columns
[../]
[./heat_sink_temperature]
type = PiecewiseBilinear
data_file = heat_sink_temperature.csv
scale_factor = 1.
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./average_coolant_htc]
type = PiecewiseLinear
data_file = htc_average.csv
scale_factor = 1.
format = columns
[../]
[./heat_transfer_mode]
type = PiecewiseConstant
x = '0 125690842. 125691189.5'
y = '9 9 8 '
direction = 'right'
[../]
[./forced_times]
type = PiecewiseLinear
data_file = timestep_limiting.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./grain_radius]
initial_condition = 4.65e-06
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase] # Fraction of beta phase in Zry
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness] # ZrO2 scale thickness (m)
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfract_total] # Current oxigen weight fraction (oxide+metal) (/)
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total] # Gained oxigen weight fraction (oxide+metal) (/)
order = CONSTANT
family = MONOMIAL
[../]
[./bursted] # Did cladding burst occur?
order = CONSTANT
family = MONOMIAL
[../]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_hflux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./htype]
order = CONSTANT
family = MONOMIAL
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
block = clad
variable = fast_neutron_flux
rod_ave_lin_pow = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./thcond]
type = MaterialRealAux
property = thermal_conductivity
variable = thermal_conductivity
block = pellet_type_1
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises_stress
quantity = vonmises
execute_on = timestep_end
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
quantity = hoop
execute_on = timestep_end
[../]
[./creep_rate]
type = MaterialRealAux
block = clad
variable = creep_rate
property = creep_rate
execute_on = timestep_end
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = hoop_strain
quantity = hoop
execute_on = timestep_end
[../]
[./fract_bphase]
type = MaterialRealAux
block = clad
variable = fract_beta_phase
property = fract_beta_phase
execute_on = 'initial linear'
[../]
[./oxi_thickness]
type = MaterialRealAux
boundary = 2
variable = oxide_thickness
property = oxide_scale_thickness
execute_on = 'initial linear'
[../]
[./ofract_total]
type = MaterialRealAux
boundary = 2
variable = oxywtfract_total
property = current_oxygen_weight_frac_total
execute_on = 'initial linear'
[../]
[./ofgain_total]
type = MaterialRealAux
boundary = 2
variable = oxywtfgain_total
property = oxygen_weight_frac_gained_total
execute_on = 'initial linear'
[../]
[./hasbursted]
type = MaterialRealAux
boundary = 2
variable = bursted
property = failed
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
boundary = 10
property = gap_conductance
variable = gap_conductance
execute_on = 'initial linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./coolant_hflux]
type = MaterialRealAux
property = output_heat_flux
variable = coolant_hflux
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = hmode
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = htype
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./pelletid]
type = PelletIdAux
block = pellet_type_1
variable = pellet_id
a_lower = 8.5e-03
a_upper = 448.5e-03
number_pellets = 44
execute_on = initial
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
[../]
[]
[Kernels]
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
rod_ave_lin_pow = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
num_radial = 50
bias = 0.95
num_axial = 20
a_lower = 8.5e-03
a_upper = 448.5e-03
fuel_inner_radius = 0.
fuel_outer_radius = 4.105e-03
fuel_volume_ratio = 1.
i_enrich = '0.04487 0.95513 0 0 0 0'
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
disp_x = disp_x
disp_y = disp_y
penalty = 1.e+07
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_gas_fractions = '1. 0. 0. 0. 0. 0. 0. 0. 0. 0.'
initial_moles = initial_moles
gas_released = fission_gas_released
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
quadrature = true
normal_smoothing_distance = 0.1
roughness_clad = 1.8e-07
roughness_fuel = 2.e-06
roughness_coef = 3.2
refab_gas_fractions = '0.05 0.95 0. 0. 0. 0. 0. 0. 0. 0.'
refab_time = 124861061.
refab_type = 0
[../]
[]
#TODO: Add option in StandardLWRFuelRodOutputs to compute plenum temperature this way.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[BCs]
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.
[../]
[./clad_outer_temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_outer_temperature
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
function = rod_outer_pressure
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.6e+06
startup_time = 0.
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 124861061.
refab_pressure = 4.e+06
refab_temperature = 293.15
refab_volume = 1.7e-05
[../]
[../]
[]
[Controls]
#[./period0]
# type = TimePeriod
# disable_objects = 'BCs/clad_outer_temp'
# start_time = 0.
# end_time = 124861061.0
#[../]
[./period1]
type = TimePeriod
disable_objects = 'BCs/clad_outer_temp'
start_time = 125690771.0
end_time = 125691189.5
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # PWR conditions (ignored after base irradiation)
boundary = '1 2 3'
variable = temp
heat_transfer_mode = heat_transfer_mode # prescribe htc until end of blowdown. Then use radiative (+ convective prescribed)
heat_transfer_coefficient = average_coolant_htc # For base irradiation, using averge htc from a previous simulation. Afterwards, use constant values (from jernkvist) plus radiation from end of blowdown
effective_emissivity = 0.6 # 0.75 # cf. Jernkvist
inlet_temperature = heat_sink_temperature # K
#inlet_pressure = 15.5e+06 # Pa
#inlet_massflux = 3800. # kg/m^2-s
rod_diameter = 9.5e-03 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
compute_enthalpy = false #true
#oxide_thickness = oxide_thickness
#heat_transfer_mode = 1 # Natural convection
#htc_correlation_type = 2 # Jens-Lottes (recommended for Halden HBWR)
outputs = all
output_properties = 'coolant_channel_htype coolant_channel_hmode'
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
initial_porosity = 0.0468
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./fuel_swelling]
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = pellet_type_1
temp = temp
burnup_function = burnup
initial_porosity = 0.0468
tensor_mechanics_compatibility = true
[../]
[./fuel_solid_mechanics]
type = CreepUO2
block = pellet_type_1
temp = temp
youngs_modulus = 2.e+11
poissons_ratio = .345
thermal_expansion = 10.e-06
stress_free_temperature = 295.0
dep_matl_props = deltav_v0_bd
fission_rate = fission_rate
#burnup_function = burnup
grain_radius = 4.65e-6
oxy_to_metal_ratio = 2.0
isotropic_cracking = true
rod_ave_lin_pow = linear_heat_rate
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = 8.21e-03
q = q
gap = 150.e-06
burnup_relocation_stop = 1.e+20
tensor_mechanics_compatibility = true
[../]
[./fission_gas]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.0468
diff_coeff_option = 3
transient_option = 1 #0
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
[../]
[./clad_density]
type = Density
block = clad
density = 6550.
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.
specific_heat = 330.
[../]
[./clad_solid_mechanics]
type = MechZry
block = clad
temp = temp
youngs_modulus = 1.e+11
poissons_ratio = 0.3
constitutive_model = clad_creep
formulation = NonlinearRZ
increment_calculation = eigen
model_irradiation_growth = false
[../]
[./clad_creep]
type = CreepZryModel
block = clad
temp = temp
model_irradiation_creep = false
model_primary_creep = false
model_thermal_creep = false
model_thermal_creep_loca = true
#time_loca_begin = 219920.5
compute_material_timestep_limit = true
[../]
[./clad_irrgrowth]
type = IrradiationGrowthZr4
block = clad
fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_phase]
type = ZrPhase
block = clad
temperature = temp
numerical_method = 2
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temp
clad_inner_radius = 4.18e-03
clad_outer_radius = 4.75e-03
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = cathcart
use_coolant_channel = true
[../]
[./clad_failure_criterion]
type = FailureCladding
boundary = 2
criterion = 1 #2 # 1 = Plastic instability
hoop_stress = hoop_stress
eff_strain_rate_creep = creep_rate
#eff_strain_rate_plast =
temperature = temp
fract_beta_phase = fract_beta_phase
fract_oxygen_gain = oxywtfgain_total
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1.e-05
variable = disp_x
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_tol = 1.e-02 # <--- l_tol is ignored when EW is used.
#l_tol = 8.e-03
line_search = 'none'
l_max_its = 200
nl_max_its = 15
nl_rel_tol = 1.e-04
nl_abs_tol = 1.e-10
n_startup_steps = 1
#end_time = 124861061. # End of base irradiation
#end_time = 125690771. # Blowdown. End prescribing clad outer temperature.
#end_time = 125690842. # End of blowdown
end_time = 125691189.5
dtmax = 5.e+05
dtmin = 0.00000001
[./TimeStepper]
type = IterationAdaptiveDT
timestep_limiting_postprocessor = timestep_material
dt = 1.e+02
#growth_factor = 1.1
#optimal_iterations = 4
#iteration_window = 2
timestep_limiting_function = forced_times #linear_heat_rate
max_function_change = 2000.
force_step_every_function_point = true
time_t = '121509219. 124861061. 125680151. 125690151. 125690771. 125691027. 125691033.'
time_dt = '5.e+05 1.e+04 1.e+04 10. 5. 0.5 5. '
[../]
[]
[UserObjects]
[./pbz]
type = PelletBrittleZone
block = pellet_type_1
pellet_id = pellet_id
temp = temp
a_lower = 8.5e-03
a_upper = 448.5e-03
pellet_radius = 4.105e-03
number_pellets = 44
execute_on = 'initial linear'
[../]
[./terminator]
type = Terminator
expression = 'bursted > 0'
execute_on = timestep_end
[../]
[]
[Postprocessors]
[./alhr_input]
type = FunctionValuePostprocessor
function = linear_heat_rate
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet_type_1
variable = burnup
[../]
[./temp_clad_max]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./betaph_fract_max]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
block = clad
execute_on = 'initial timestep_end'
[../]
[./oxygen_fract_max]
type = ElementExtremeValue
block = clad
value_type = max
variable = oxywtfract_total
execute_on = 'initial timestep_end'
[../]
[./oxygen_fgain_max]
type = ElementExtremeValue
block = clad
value_type = max
variable = oxywtfgain_total
execute_on = 'initial timestep_end'
[../]
[./creep_rate_max]
type = ElementExtremeValue
value_type = max
variable = creep_rate
block = clad
[../]
[./timestep_material]
type = MaterialTimeStepPostprocessor
block = clad
[../]
[./strain_clad_hoop_max]
type = ElementExtremeValue
value_type = max
variable = hoop_strain
block = clad
[../]
[./stress_clad_hoop_max]
type = ElementExtremeValue
value_type = max
variable = hoop_stress
block = clad
execute_on = 'initial timestep_end'
[../]
[./bursted]
type = ElementExtremeValue
value_type = max
variable = bursted
block = clad
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_midplane]
type = NodalVariableValue
nodeid = 676 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_tclow]
type = NodalVariableValue
nodeid = 826 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_tchigh]
type = NodalVariableValue
nodeid = 511 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_plenum_mid]
type = NodalVariableValue
nodeid = 241 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_inner_midplane]
type = NodalVariableValue
nodeid = 679 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_max]
type = NodalExtremeValue
boundary = '1 2 3'
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_ave]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_max]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_central]
type = NodalVariableValue
variable = temp
nodeid = 1569 # !! Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_outer_max]
type = NodalExtremeValue
boundary = 10
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./strain_clad_hoop_outer_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = hoop_strain
execute_on = 'initial timestep_end'
[../]
[./stress_clad_hoop_outer_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = hoop_stress
execute_on = 'initial timestep_end'
[../]
[./contact_pressure_midplane]
type = ElementalVariableValue
elementid = 1300 # !! Mesh dependent
variable = contact_pressure
execute_on = 'initial timestep_end'
[../]
[./oxide_thickness_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = oxide_thickness
execute_on = 'initial timestep_end'
[../]
[./gap_conductance_average]
type = SideAverageValue
boundary = 10
variable = gap_conductance
execute_on = 'initial timestep_end'
[../]
[./coolant_htc_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = coolant_htc
execute_on = 'initial timestep_end'
[../]
[./coolant_htc_average]
type = SideAverageValue
boundary = 2
variable = coolant_htc
execute_on = 'initial timestep_end'
[../]
[./coolant_hflux_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = coolant_hflux
execute_on = 'initial timestep_end'
[../]
[./coolant_hflux_average]
type = SideAverageValue
boundary = 2
variable = coolant_hflux
execute_on = 'initial timestep_end'
[../]
[]
[VectorPostprocessors]
[./clad_radial_disp]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_2'
[../]
[./clad_out_temp]
type = NodalValueSampler
variable = temp
boundary = 2
sort_by = y
outputs = 'outfile_temp_2'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_1
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./outfile_2]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_temp_2]
type = CSV
execute_on = 'FINAL'
[../]
[]
test/tests/tensor_mechanics/uo2_eigenstrains/uo2_relocation/relo_recov_fuel_rod_tm.i
#
# Simple fuel rod example for relocation recovery.
#
[GlobalParams]
density = 10431.0
initial_porosity = 0.05
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
ny_p = 1
nx_p = 1
nx_c = 1
ny_cu = 1
ny_c = 1
ny_cl = 1
pellet_quantity = 1
pellet_height = 0.01
pellet_outer_radius = 4.1e-3
clad_gap_width = 160.0e-6
clad_thickness = 0.56e-3
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 1.0e-2
elem_type = QUAD8
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 20
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet
initial_condition = 10e-6
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./gas_swell]
order = CONSTANT
family = MONOMIAL
[../]
[./volumetric_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_rr]
order = CONSTANT
family = MONOMIAL
[../]
[./relocation_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_rr]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_rr]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./creep_strain_zz]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 1.0e4 6.327640e+07 6.33628e7 6.34492e7 1.0e08'
y = '0 2.5e4 2.5e4 0 2.5e4 2.5e4'
scale_factor = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
fuel_pin_geometry = pin_geometry
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[./layered_average_contact_pressure]
type = SpatialUserObjectAux
block = pellet
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[../]
[./gas_swell]
type = MaterialRealAux
block = pellet
variable = gas_swell
property = gas_swelling
execute_on = nonlinear
[../]
[./volumetric_strain]
type = RankTwoScalarAux
block = pellet
rank_two_tensor = total_strain
variable = volumetric_strain
scalar_type = VolumetricStrain
execute_on = nonlinear
[../]
[./reloc_strain]
type = MaterialRealAux
block = pellet
variable = relocation_strain
property = relocation_strain
execute_on = nonlinear
[../]
[./elastic_strain_rr]
type = RankTwoAux
variable = elastic_strain_rr
rank_two_tensor = elastic_strain
index_i = 0
index_j = 0
execute_on = nonlinear
[../]
[./total_strain_rr]
type = RankTwoAux
variable = total_strain_rr
rank_two_tensor = total_strain
index_i = 0
index_j = 0
execute_on = nonlinear
[../]
[./stress_rr]
type = RankTwoAux
variable = stress_rr
rank_two_tensor = stress
index_i = 0
index_j = 0
execute_on = nonlinear
[../]
[./elastic_strain_yy]
type = RankTwoAux
variable = elastic_strain_yy
rank_two_tensor = elastic_strain
index_i = 2
index_j = 2
execute_on = nonlinear
[../]
[./total_strain_yy]
type = RankTwoAux
variable = total_strain_yy
rank_two_tensor = total_strain
index_i = 2
index_j = 2
execute_on = nonlinear
[../]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_i = 2
index_j = 2
execute_on = nonlinear
[../]
[./elastic_strain_zz]
type = RankTwoAux
variable = elastic_strain_zz
rank_two_tensor = elastic_strain
index_i = 1
index_j = 1
execute_on = nonlinear
[../]
[./total_strain_zz]
type = RankTwoAux
variable = total_strain_zz
rank_two_tensor = total_strain
index_i = 1
index_j = 1
execute_on = nonlinear
[../]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_i = 1
index_j = 1
execute_on = nonlinear
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = pellet
execute_on = nonlinear
[../]
[./creep_strain_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xx
index_i = 0
index_j = 0
block = clad
execute_on = nonlinear
[../]
[./creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
block = clad
execute_on = nonlinear
[../]
[./creep_strain_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_zz
index_i = 2
index_j = 2
block = clad
execute_on = nonlinear
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 0.5e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580
inlet_pressure = 15.5e6
inlet_massflux = 3800
rod_diameter = 0.948e-2
rod_pitch = 1.26e-2
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./elastic_stress]
type = ComputeSmearedCrackingStress
block = pellet
cracking_stress = 1.68e8
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
output_properties = crack_damage
outputs = exodus
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = pellet
temperature = temp
fission_rate = fission_rate
grain_radius = 7.5e-6
oxygen_to_metal_ratio = 2.0
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet
burnup_function = burnup
linear_heat_rate_function = q
burnup_relocation_stop = 1e12
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = true
max_relocation_recovery_fraction = 0.5
relocation_scaling_factor = 1
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
output_properties = 'relocation_strain recovered_relocation_strain'
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup_function = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[UserObjects]
[./layered_average_contact_pressure]
type = LayeredSideAverage
variable = contact_pressure
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[../]
# [./avg_gap]
# type = LayeredAverage
# block = pellet
# variable= penetration
# direction = y
# num_layers = 1
# execute_on = timestep_end
# [../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
verbose = false
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 1.0e8
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
time_t = '0 1.0e4 6.327640e+07 6.33628e7 6.34492e7 1.0e08'
time_dt = '2e2 1e3 1e3 1e3 1e3 1e3'
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
outputs = exodus
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
outputs = exodus
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./reloc_strain]
type = ElementAverageValue
variable = relocation_strain
block = pellet
execute_on = timestep_end
[../]
[./contact_pressure]
type = ElementAverageValue
variable = contact_pressure
block = pellet
execute_on = nonlinear
[../]
[./average_contact_pressure]
type = ElementAverageValue
variable = layered_average_contact_pressure
block = pellet
execute_on = timestep_end
[../]
[./clad_crp_zz]
type = SideAverageValue
boundary = 5
variable = creep_strain_zz
execute_on = timestep_end
[../]
[./clad_crp_xx]
type = SideAverageValue
boundary = 5
variable = creep_strain_xx
execute_on = timestep_end
[../]
[./clad_creep_increment]
type = SideAverageIncrementTensorComponent
boundary = 5
variable = creep_strain_zz
execute_on = timestep_end
[../]
[./ave_burnup]
type = ElementAverageValue
variable = burnup
block = pellet
execute_on = timestep_end
[../]
[./gas_swelling]
type = ElementAverageValue
variable = gas_swell
block = pellet
execute_on = timestep_end
[../]
[./volumetric_strain]
type = ElementAverageValue
variable = volumetric_strain
block = pellet
execute_on = timestep_end
[../]
[./elastic_strain_rr]
type = ElementAverageValue
variable = elastic_strain_rr
block = pellet
execute_on = nonlinear
[../]
[./total_strain_rr]
type = ElementAverageValue
variable = total_strain_rr
block = pellet
execute_on = nonlinear
[../]
[./stress_rr]
type = ElementAverageValue
variable = stress_rr
block = pellet
execute_on = timestep_end
[../]
[./elastic_strain_yy]
type = ElementAverageValue
variable = elastic_strain_yy
block = pellet
execute_on = nonlinear
[../]
[./total_strain_yy]
type = ElementAverageValue
variable = total_strain_yy
block = pellet
execute_on = nonlinear
[../]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
block = pellet
execute_on = timestep_end
[../]
[./elastic_strain_zz]
type = ElementAverageValue
variable = elastic_strain_zz
block = pellet
execute_on = nonlinear
[../]
[./total_strain_zz]
type = ElementAverageValue
variable = total_strain_zz
block = pellet
execute_on = timestep_end
[../]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = pellet
execute_on = timestep_end
[../]
[./thermal_strain_rr]
type = DifferencePostprocessor
value1 = total_strain_rr
value2 = elastic_strain_rr
execute_on = timestep_end
[../]
[./thermal_strain_yy]
type = DifferencePostprocessor
value1 = total_strain_yy
value2 = elastic_strain_yy
execute_on = timestep_end
[../]
[./thermal_strain_zz]
type = DifferencePostprocessor
value1 = total_strain_zz
value2 = elastic_strain_zz
execute_on = timestep_end
[../]
[./vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[../]
[./recov_strain]
type = ElementAverageValue
variable = recovered_relocation_strain
block = pellet
execute_on = timestep_end
[../]
[]
# [VectorPostprocessors]
# [./clad]
# type = NodalValueSampler
# variable = disp_x
# boundary = 2
# sort_by = y
# outputs = 'outfile_clad_radial_displacement'
# [../]
# [./pellet]
# type = NodalValueSampler
# variable = disp_x
# boundary = 10
# sort_by = y
# outputs = 'outfile_fuel_radial_displacement'
# [../]
# []
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'reloc_strain recov_strain'
execute_on = 'FINAL'
[../]
# [./outfile_clad_radial_displacement]
# type = CSV
# execute_on = 'FINAL'
# [../]
# [./outfile_fuel_radial_displacement]
# type = CSV
# execute_on = 'FINAL'
# [../]
[]
examples/experimental_design/3D_asbuiltCCM/simulation/APMT/final.i
[GlobalParams]
density = 10431.0
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
displacements = 'disp_x disp_y disp_z'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
[./file_mesh]
type = FileMeshGenerator
file = geAPMT.e
[../]
[./scale] # Convert CUBIT geometry (built in 100x inches) into meters.
type = TransformGenerator
transform = SCALE
vector_value = '2.54e-4 2.54e-4 2.54e-4'
input = file_mesh
[../]
dim = 3
patch_size = 1000 # For contact algorithm
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./T]
initial_condition = 300
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 8.64E+04 3.46E+05 4.32E+05 777600 864000 2332800 3801600 5097600 5184000 8985600 9072000 10627200 12182400 13564800 13651200 18057600 18144000 19699200 21254400 22636800 22723200 25920000 26006400 27388800 28771200'
y = '0 29100.13691 2.91E+04 0 0 28765.65338 27821.9286 27415.44121 27415.44121 0 0 27494.58176 26612.85703 26149.9983 26149.9983 0 0 33820.63602 32566.74267 31819.53594 31819.53594 0 0 33065.95692 31851.27402 31230.11945'
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = '1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./initial_power_ramp]
type = PiecewiseLinear
x = '0 8.64e4'
y = '0 1'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-400 0'
y = '0 1'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = T
block = 3
fission_rate = fission_rate
[../]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = T
[../]
[./heat_source_clad]
type = NeutronHeatSource
variable = T
block = 2
fission_rate = gamma_heating_clad
[../]
[./heat_source_cap]
type = NeutronHeatSource
variable = T
block = 1
fission_rate = gamma_heating_cap
[../]
[]
[BCs]
[./convective_capsule_surface]
type = ConvectiveFluxBC
boundary = 1
variable = T
rate = 45800.0 # convection coefficient (h)
initial = 325 # initial coolant temp
final = 325 # coolant temperature following initial power ramp
duration = 0.0 # duration of initial power ramp
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = 1
factor = 2.4e6
function = pressure_ramp
[../]
[../]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = '102 105 108 100 101 103 104 106 107 20 21'
value = 0.0
[../]
[./no_y_all]
type = DirichletBC
variable = disp_y
boundary = '100 101 103 104 106 107 20 21'
value = 0.0
[../]
[./no_z_all]
type = DirichletBC
variable = disp_z
boundary = '100 103 106'
value = 0.0
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 13
initial_pressure = 1e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
output = capsule_pressure
displacements = 'disp_x disp_y disp_z'
[../]
[./plenumPressure1]
boundary = 12
initial_pressure = 1e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles1
temperature = ave_temp_interior1
volume = gas_volume1
material_input = fis_gas_released1
output = plenum_pressure1
displacements = 'disp_x disp_y disp_z'
[../]
[../]
[]
[SolidMechanics]
[./solid]
temp = T
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 50
a_lower = 5.17269685344284e-05
a_upper = 0.0949369541451446
fuel_inner_radius = 0
fuel_outer_radius = 0.00410464
[../]
[]
[AuxKernels]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./stress_xy]
type = MaterialTensorAux
tensor = stress
variable = stress_xy
index = 3
execute_on = timestep_end
[../]
[./stress_yz]
type = MaterialTensorAux
tensor = stress
variable = stress_yz
index = 4
execute_on = timestep_end
[../]
[./stress_xz]
type = MaterialTensorAux
tensor = stress
variable = stress_xz
index = 5
execute_on = timestep_end
[../]
[./conductance_fuel]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 5
[../]
[./conductance_gap]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 3
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = T
execute_on = linear
[../]
[./gamma_heating_clad]
type = FissionRateAux
variable = gamma_heating_clad
block = 2
value = 2e18
function = initial_power_ramp
[../]
[./gamma_heating_cap]
type = FissionRateAux
variable = gamma_heating_cap
block = 1
value = 2e18
function = initial_power_ramp
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
factor = 9.7e17 # n/m^2-sec from ATR user guide for other flux traps
[../]
[]
[AuxVariables]
[./fission_rate]
block = 3
[../]
[./grain_radius]
block = 3
initial_condition = 10e-6
[../]
[./gamma_heating_clad]
block = 2
[../]
[./gamma_heating_cap]
block = 1
[../]
[./burnup]
block = 3
[../]
[./fast_neutron_flux]
order = FIRST
family = LAGRANGE
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
# [./coolant_htc]
# order = CONSTANT
# family = MONOMIAL
# [../]
[]
[ThermalContact]
[./thermal_contact_fuel]
type = GapHeatTransferLWR
variable = T
master = 4 # clad inner
slave = 5 # fuel outer
jump_distance_model=KENNARD
plenum_pressure=plenum_pressure1 #required for KENNARD
emissivity_fuel=0.85
emissivity_clad=0.85
roughness_fuel=8e-7
roughness_clad=8e-7
roughness_coef=3.2
contact_pressure = contact_pressure
initial_gas_fractions= '1 0 0 0 0 0 0 0 0 0'
quadrature = true
[../]
[./thermal_contact_capsule]
type = GapHeatTransferLWR
variable = T
master = 2 # capsule inner
slave = 3 # clad outer
jump_distance_model=KENNARD
plenum_pressure=capsule_pressure #required for KENNARD
emissivity_fuel=0.85
emissivity_clad=0.85
roughness_fuel=4e-7
roughness_clad=8e-7
roughness_coef=3.2
contact_pressure = contact_pressure
quadrature = true
[../]
[./fuel_clad_bottom_contact]
type = GapHeatTransferLWR
variable = T
master = 31 # capsule inner
slave = 30 # clad outer
jump_distance_model=KENNARD
plenum_pressure=capsule_pressure #required for KENNARD
emissivity_fuel=0.85
emissivity_clad=0.85
roughness_fuel=8e-7
roughness_clad=8e-7
roughness_coef=3.2
contact_pressure = contact_pressure
initial_gas_fractions= '1 0 0 0 0 0 0 0 0 0'
quadrature = true
[../]
[]
[Contact]
[./fuel_clad_mechanical]
master = 4
slave = 5
formulation = penalty
penalty = 1e7
tangential_tolerance = 1e-2
normal_smoothing_distance = 0.1
[../]
[./cap_clad_mechanical]
master = 2
slave = 3
formulation = penalty
penalty = 1e7
tangential_tolerance = 1e-2
normal_smoothing_distance = 0.1
[../]
[./fuel_clad_bottom_mechanical]
master = 31
slave = 30
formulation = penalty
penalty = 1e7
tangential_tolerance = 1e-2
normal_smoothing_distance = 0.1
[../]
[]
[Materials]
# --- CLADDING ----
[./clad]
type = ThermalFeCrAl
block = 2
temp = T
[../]
[./clad_density]
type = Density
block = 2
density = 7874
[../]
[./clad_disp]
type = MechFeCrAl
block = 2
temp = T
youngs_modulus = 190295293200
poissons_ratio = 0.3
[../]
# --- FUEL ----
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 3
temp = T
burnup = burnup
thermal_conductivity_model = FINK_LUCUTA
initial_porosity = 0.05
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_disp]
type = Elastic
block = 3
temp = T
youngs_modulus = 2.e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = MATPRO
block = 3
temp = T
burnup = burnup
[../]
[./fission_gas_release] # Forsberg-Massih fission gas release mode
type = Sifgrs
block = 3
temp = T
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius = grain_radius
gbs_model = true
[../]
# --- CAPSULE ----
[./capsule]
type = Thermal316
block = 1
temp = T
[../]
[./capsule_density]
type = Density
block = 1
density = 7980
[../]
[./cap_disp]
type = MechSS316
block = 1
youngs_modulus = 1.93e11
poissons_ratio = 0.31
temp = T
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 10
variable = T
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-ksp_gmres_modifiedgramschmidt'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_composite_pcs -sub_0_pc_hypre_type -sub_0_pc_hypre_boomeramg_max_iter -sub_0_pc_hypre_boomeramg_grid_sweeps_all -sub_1_sub_pc_type -pc_composite_type -ksp_type -mat_mffd_type -pc_hypre_boomeramg_strong_threshold'
petsc_options_value = '201 composite hypre,asm boomeramg 2 2 lu multiplicative fgmres ds 0.7'
# petsc_options = '-snes_linesearch_monitor'
# petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter -pc_hypre_boomeramg_strong_threshold'
# petsc_options_value = '201 hypre boomeramg 4 0.7'
scheme = bdf2
l_max_its = 100
l_tol = 1e-3
nl_max_its = 15
nl_rel_tol = 1e-3
nl_abs_tol = 1e-8
start_time = -400
end_time = 864000
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 400
optimal_iterations = 8
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 13
variable = T
[../]
[./ave_temp_interior1]
type = SideAverageValue
boundary = 12
variable = T
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 15
outputs = exodus
[../]
[./pellet_volume]
type = InternalVolume
boundary = 14
outputs = exodus
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 15
variable = T
[../]
[./_dt]
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = T
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.0
[../]
[./average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_history
[../]
[./peak_clad_temp]
type = NodalMaxValue
variable = T
block = 2
[../]
[./PostProcessorBurnup]
type = ElementAverageValue
variable = burnup
block = 3
[../]
[./fis_gas_produced1]
type = ElementIntegralFisGasGeneratedSifgrs
block = 3
[../]
[./fis_gas_released1]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 13 #capsule_inner
[../]
[./gas_volume1] # gas volume
type = InternalVolume
boundary = 12 #rodlet_inner
[../]
[]
[Outputs]
perf_graph = true
exodus = true
sync_times = '0 8.64E+04 3.46E+05 4.32E+05 777600 864000 2332800 3801600 5097600 5184000 8985600 9072000 10627200 12182400 13564800 13651200 18057600 18144000 19699200 21254400 22636800 22723200 25920000 26006400 27388800 28771200'
[]
assessment/LWR/validation/IFA_535/analysis/rod_811/SM/IFA_535_rod_811_sm.i
# IFA 535.6 rod 811 (Table & Figure references are to IFA-535.pdf)
[GlobalParams]
density = 10398.06 #Table 1 (PDF page 14), 94.7% TD #Assuming a TD of 10980.
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
group_variables = 'disp_x disp_y'
[]
[Mesh]
file = ifa535_rod811.e
patch_size = 20 # 50
patch_update_strategy = auto
[]
[UserObjects]
[./fuelPinGeometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 297.0
# If the initial diameter from the mesh
# is compared to the pre & post-ramp diameters, then they should probably
# be compared at the same cladding temperatures.
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = 'clad'
[../]
[./fast_neutron_fluence]
block = 'clad'
[../]
[./grain_radius]
block = 'pellet_type_1' #'pellet'
initial_condition = 9.36e-6 # 2D grain radius 6um #From rod 810
#2.75e-6 #Table 3.2, 5.5/2 microns (Assuming 3D grain size)
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = avgPower_IFA535rod811.csv
format = columns
#direction = left
scale_factor = 1
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = axialPowerPeakingFactor_IFA535rod811.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 226461642 226461742 226465242 226465342 236293846 236294746'
y = '1.4475e-2 1 1 1.4475e-2 1.4475e-2 1 1 1.4475e-2'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./cladTemp]
type = PiecewiseLinear
data_file = avgCladTemp_IFA535rod811.csv
format = columns
#direction = left
scale_factor = 1
[../]
[./cladPeakingFactors]
type = PiecewiseBilinear
data_file = axialCladTempPeakingFactor_IFA535rod811.csv
scale_factor = 1
axis = 1
[../]
[./cT]
type = CompositeFunction
functions = 'cladTemp cladPeakingFactors'
[../]
[./fluxFactor]
type = PiecewiseLinear
data_file = flux_IFA535rod811.csv
format = columns
#direction = left
scale_factor = 1
[../]
[./fluxValue]
type = CompositeFunction
functions = 'fluxFactor power_profile'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = 'pellet_type_1' #'pellet' # fission rate applied to the fuel (block 2) only
#fission_rate = fission_rate # coupling to the fission_rate aux variable
burnup_function = burnup
#fuel_pin_geometry = fuelPinGeometry
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
order = CONSTANT
family = MONOMIAL
block = 'pellet_type_1' #'pellet'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
fuel_pin_geometry = fuelPinGeometry
#a_upper = 337.53e-3 #317.4e-3+20.13e-3 (a_lower+pellet_height),top of fuel stack
#a_lower = 20.13e-3 #From top_bot_clad_height #18.5e-3 #bottom of fuel stack, Figure 3.1
#fuel_inner_radius = 0
#fuel_outer_radius = 4.569e-3 #Table 3.2, from diameter
i_enrich = '0.0988 0.9012 0 0 0 0' #Table 3.2
#fuel_volume_ratio = 0.9756625712887741 #(dimple fraction) from calculations in fuel_volume_ratio.ipynb
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 'clad'
axial_power_profile = axial_peaking_factors
#rod_ave_lin_pow = power_profile
#factor = 3.71098e13 #from fluxCalc.xlsx #8.025e17 #Table 3.7, avg. of cycles 8-11, converted to n/(m^2-s)
function = fluxValue
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 'pellet_type_1' #'pellet'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
# include hydrostatic stress for possible use in ForMas
block = 'pellet_type_1' #'pellet'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at
# the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = clad
index = 0
execute_on = timestep_end # for efficiency, only compute at
# the end of a timestep
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = clad
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = clad
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = clad
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
# Define mechanical contact between the
# fuel (sideset=10) and the clad (sideset=5)
master = 5
slave = 10
#penalty = 1e7 #for kinematic (default method is kinematic)
formulation = penalty #penalty method - same as rod810
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
# Define thermal contact between the
# fuel (sideset=10) and the clad (sideset=5)
type = GapHeatTransferLWR
variable = temp
master = 5 #'4 5 6' #5
slave = 10 #8 #10
initial_moles = initial_moles # coupling to a postprocessor
# which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor
# which supplies the fission gas addition
roughness_clad = 1e-6 #default
roughness_fuel = 2e-6 #use 2e-6 instead of default
roughness_coef = 3.2 #use 3.2 unless know better
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 226461742
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
# pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
# pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
# pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 7e6 #pp. 8 of "535.pdf"
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 0.1e6 #from pp.6 of "535.pdf" for IFA-409
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get
# inital fill gas mass
temperature = plenum_temperature # coupling to post processor to get
# gas temperature approximation
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get
# fission gas added
output = plenum_pressure # coupling to post processor to
# output plenum/gap pressure
refab_time = 226461742 #226465242 #217722744
refab_pressure = .76e6 #3.2e6
refab_temperature = 298.15 #449.05
refab_volume = 9.6e-6
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
[../]
[../]
[./claddingSurfTemp]
type = FunctionDirichletBC
function = cT
boundary = '1 2 3' #2 # cladding boundary
variable = temp
[../]
[]
[Materials]
[./density_clad]
type = Density
block = 'clad'
density = 6551.0 #Check this value; cladding is Zr-2
[../]
[./density_fuel]
type = Density
block = 'pellet_type_1' #'pellet'
[../]
[./fuel_thermal]
# temperature and burnup dependent thermal properties of UO2 (bison kernel)
type = ThermalFuel
block = 'pellet_type_1' #'pellet'
temp = temp
burnup_function = burnup
initial_porosity = .053 #(1-density/theoreticalDensity)
thermal_conductivity_model = NFIR
[../]
[./fuel_creep]
# thermal and irradiation creep for UO2 (bison kernel)
type = Elastic #CreepUO2
block = 'pellet_type_1' #'pellet'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
#stress_free_temperature = 297
#volumetric_strain = deltav_v0_swe
dep_matl_props = deltav_v0_bd # default value is detav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = 'pellet_type_1' #'pellet'
burnup_function = burnup
fuel_pin_geometry = fuelPinGeometry
#diameter = 9.138e-3 #Fuel pellet diameter in m, Table 3.2
q = q
#gap = .145e-3 #diametral gap in m, clad ID-pellet OD, Tables 3.2 & 3.4
burnup_relocation_stop = 0.2 #0.02
relocation_activation1 = 5000 #initial relocation activation power in W/m
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
# general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 'clad'
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
# thermoelasticity and thermal and irradiation creep for Zr4 (& Zr2) (bison kernel)
type = MechZry
block = 'clad'
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
#stress_free_temperature = 297
model_irradiation_growth = true
model_thermal_expansion = true #default
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (bison kernel)
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = 'pellet_type_1' #'pellet'
temp = temp
burnup_function = burnup
#burnup_function = burnup #for experiment-given/specified burnup
tensor_mechanics_compatibility = true
[../]
[./fission_gas_release]
type = Sifgrs
block = 'pellet_type_1' #'pellet'
temp = temp
#fission_rate = fission_rate # coupling to fission_rate aux variable
#initial_grain_radius = 9.36e-6 # 2D grain radius 6um #From rod 810
#2.75e-6 #Table 3.2, 5.5/2 microns (Assuming 3D grain size)
grain_radius = grain_radius
gbs_model = true
#burnup = burnup
burnup_function = burnup
#total_densification = 0.009 #Leave at default
initial_porosity = .053 #(1-density/theoreticalDensity)
transient_option = 2
#compute_swelling = true
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
# [./limitDisp]
# type = MaxIncrement
# max_increment = 1e-5
# variable = disp_x
# [../]
[]
[Executioner]
type = Transient
line_search = 'none'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-3 #1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 236294746 #last time step from avgPower_IFA535rod811.csv
dtmax = 2e6 #1e6
dtmin = 1
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
force_step_every_function_point = true
timestep_limiting_function = power_profile
max_function_change = 3e20
optimal_iterations = 20 #15
iteration_window = 6
linear_iteration_ratio = 100
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
# volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./avg_clad_temp]
# average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 'pellet_type_1' #'pellet'
[../]
[./input_rod_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[./maxCenterlineTemp]
type = NodalMaxValue
boundary = 12 # pellet_centerline
variable = temp
[../]
[./maxFuelPenetration]
type = NodalMaxValue
boundary = 10 # pellet_centerline
variable = penetration
[../]
[./minFuelPenetration]
type = NodalExtremeValue
boundary = 10 # pellet_centerline
value_type = min
variable = penetration
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = 'pellet_type_1' #'pellet'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_1
temperature = temp
mechanics_system = SOLID
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
#checkpoint = true
#execute_on = 'nonlinear timestep_end'
csv = true
exodus = true
[./console]
type = Console
output_linear = true
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
test/tests/meso_thcond_test/test3.i
# This test is for the fuel swelling and porosity computation in the Sifgrs fission gas behavior model for UO2.
# As complementary to the fission gas release process, the fission gas swelling is related to gas retention in the fuel in the form of bubbles. Through a direct description of the gas bubble development, the fission gas swelling and release are modeled as inherently coupled processes, on a physical basis. Only the fission gas swelling due to grain-face bubbles is considered.
# In a comprehensive treatment of fission gas release and fuel swelling, Sifgrs also incorporates empirical models for the swelling due to solid fission products and the fuel densification.
# Moreover, the different contributions to fuel porosity, namely, those due to fabrication pores, gas bubbles (thus associated with fission gas swelling) , and sintering (densification), are computed consistently with the swelling calculations. Then, the fuel total porosity in each mesh location can be tracked (auxkernel PorosityAuxUO2), and considered in the computation of other relevant material properties like the fuel thermal conductivity (material model ThermalFuel).
# This test aims at demonstrating the above model capabilities. The considered case involves a single-element cubic domain, constant temperature (1400 K) and fission rate (1e19 f/(m**3s)), and a irradiation time of 1e8 s. The Sifgrs model is adopted for calculating the fission gas release and fuel swelling. Starting from a typical as-fabricated value of 5%, the fuel porosity evolves consistently with the swelling. The fuel thermal conductivity is calculated as coupled with porosity, which allows taking into account the conductivity degradation due to progressive increase of gaseous porosity (see also the attached file regression_tests_sifgrs.xlsx).
[Mesh]
type = FileMesh
file = cube_111.e
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = 1400.
[../]
[./Fiss_func]
type = ParsedFunction
value = 1.e19
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 1400.
[../]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./burnup]
order = FIRST
family = LAGRANGE
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.05
[../]
[./density]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_sl]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_dn]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
[../]
[./intra_porosity]
order = CONSTANT
family = MONOMIAL
[../]
[./gas_atom_conc]
order = CONSTANT
family = MONOMIAL
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
[../]
[./GBresistance]
order = CONSTANT
family = MONOMIAL
[../]
[./grain_radius]
order = CONSTANT
family = MONOMIAL
initial_condition = 5e-6
[../]
[]
[SolidMechanics]
[./solid]
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
temp = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./frate]
type = FissionRateAux
variable = fission_rate
block = 1
function = Fiss_func
execute_on = timestep_begin
[../]
[./brnp]
type = BurnupAux
variable = burnup
block = 1
fission_rate = fission_rate
density = 10417.
execute_on = timestep_begin
[../]
[./por]
type = PorosityAuxUO2
block = 1
variable = porosity
execute_on = linear
[../]
[./rho]
type = MaterialRealAux
variable = density
property = density
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[./dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = deltav_v0_swe
[../]
[./thcond]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[../]
[./GBCoverage]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[../]
[./intra_porosity]
type = MaterialRealAux
variable = intra_porosity
property = intra_porosity
[../]
[./gas_atom_conc]
type = MaterialRealAux
variable = gas_atom_conc
property = gas_atom_conc
[../]
[./deltav_v0_dn]
type = MaterialRealAux
variable = deltav_v0_dn
property = deltav_v0_dn
[../]
[./deltav_v0_sl]
type = MaterialRealAux
variable = deltav_v0_sl
property = deltav_v0_sl
[../]
[./rad_bbl_bdr]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./GBresistance]
type = MaterialRealAux
variable = GBresistance
property = GBresistance
[../]
[./grain_radius]
type = GrainRadiusAux
variable = grain_radius
temp = temp
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[../]
[./x_disp]
type = DirichletBC
variable = disp_x
value = 0
boundary = 1
[../]
[./y_disp]
type = DirichletBC
variable = disp_y
value = 0
boundary = 2
[../]
[./z_disp]
type = DirichletBC
variable = disp_z
value = 0
boundary = 3
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 1
temp = temp
burnup = burnup
initial_porosity = 0.05
porosity = porosity
thermal_conductivity_model = NFIR
[../]
[./solid]
type = Elastic
block = 1
temp = temp
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
youngs_modulus = 2.e+11
poissons_ratio = 0.3
thermal_expansion = 1.e-05
[../]
[./density]
type = Density
block = 1
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
density = 10417.
[../]
[./fission_gas_release_and_swelling]
type = Sifgrs
block = 1
temp = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.05
porosity = porosity
[../]
[./fuel_thermal_meso]
type = ThermalUO2FissionGas
block = 1
temp = temp
burnup = burnup
grain_radius = grain_radius
only_fission_gas = false
d_GB = 10e-09 # From 3D data
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-05
nl_rel_tol = 1.e-05
start_time = 0.
num_steps = 100
dt = 1.e+06
end_time = 1.e+08
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[./GBCov]
type = ElementalVariableValue
variable = GBCoverage
elementid = 0
[../]
[./gas_atom_conc]
type = ElementalVariableValue
variable = gas_atom_conc
elementid = 0
[../]
[./thcond]
type = ElementalVariableValue
variable = thermal_conductivity
elementid = 0
[../]
[./intra_porosity]
type = ElementalVariableValue
variable = intra_porosity
elementid = 0
[../]
[./rad_bbl_bdr]
type = ElementalVariableValue
variable = rad_bbl_bdr
elementid = 0
[../]
[./GBresistance]
type = ElementalVariableValue
variable = GBresistance
elementid = 0
[../]
[]
[Outputs]
file_base = jf_luc_grgr3D
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_fast_mox.i
# This test is for the application of Sifgrs to FBR MOX fuel.
# A lower limit for the grain-boundary bubble number density of 1.0e+11 bubbles/m2 is applied, which is recommended for FBR MOX simulations.
[Mesh]
type = GeneratedMesh
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = '2000'
[../]
[./Fiss_func]
type = ParsedFunction
value = '1.e20'
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 2000
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
execute_on = timestep_end
[../]
[./gbswe]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
execute_on = timestep_end
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = bottom
[../]
[]
[Materials]
[./MOX]
type = HeatConductionMaterial
block = 0
temp = T
thermal_conductivity = 2.5
specific_heat = 1.0
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 0
temp = T
fission_rate = fission_rate
initial_porosity = 0.0
grain_radius_const = 8.0e-6
diff_coeff_option = 4
bubble_gb_limit = 1.0e+11 #recommended value for fast MOX fuels
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 100
dt = 19800.
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 0
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 0
[../]
[./fgr_percent]
type = FGRPercent
value1 = fis_gas_released
value2 = fis_gas_generated
execute_on = linear
[../]
[./bubble_num_grain_boundary]
type = ElementalVariableValue
variable = bbl_bdr_2
elementid = 0
[../]
[./swelling_grain_boundary]
type = ElementalVariableValue
variable = deltav_v0_bd
elementid = 0
[../]
[]
[Outputs]
exodus = false
csv = true
[]
assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.10/TM/IFA_650_10_part1_tm.i
# Halden test IFA-650.10
[GlobalParams]
density = 10447. # 95.32% of 10960
displacements = 'disp_x disp_y'
temperature = temp
order = FIRST
family = LAGRANGE
energy_per_fission = 3.28451e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = mesh_ifa65010.e
patch_size = 5 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.
[../]
[]
[Functions]
[./linear_heat_rate]
type = PiecewiseLinear
data_file = lhr_average.csv
scale_factor = 1.e+03
format = columns
[../]
[./axial_power_peaking_factors]
type = PiecewiseBilinear
data_file = lhr_peaking_factors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./rod_outer_pressure]
type = PiecewiseLinear
data_file = rod_outer_pressure.csv
scale_factor = 1.e+06
format = columns
[../]
[./clad_outer_temperature]
type = PiecewiseBilinear
data_file = temp_outer_clad.csv
scale_factor = 1.
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./q] # same as linear_heat_rate for the base irradiation
type = PiecewiseLinear
data_file = lhr_average.csv
scale_factor = 1.e+03
format = columns
[../]
[./heat_sink_temperature]
type = PiecewiseBilinear
data_file = heat_sink_temperature.csv
scale_factor = 1.
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./average_coolant_htc]
type = PiecewiseLinear
data_file = htc_average.csv
scale_factor = 1.
format = columns
[../]
[./heat_transfer_mode]
type = PiecewiseConstant
x = '0 125690842. 125691189.5'
y = '9 9 8 '
direction = 'right'
[../]
[./forced_times]
type = PiecewiseLinear
data_file = timestep_limiting.csv
format = columns
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./grain_radius]
initial_condition = 4.65e-06
[../]
[./thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase] # Fraction of beta phase in Zry
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness] # ZrO2 scale thickness (m)
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfract_total] # Current oxigen weight fraction (oxide+metal) (/)
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total] # Gained oxigen weight fraction (oxide+metal) (/)
order = CONSTANT
family = MONOMIAL
[../]
[./bursted] # Did cladding burst occur?
order = CONSTANT
family = MONOMIAL
[../]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_hflux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./htype]
order = CONSTANT
family = MONOMIAL
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
block = clad
variable = fast_neutron_flux
rod_ave_lin_pow = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./thcond]
type = MaterialRealAux
property = thermal_conductivity
variable = thermal_conductivity
block = pellet_type_1
[../]
[./hoop_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hoop_stress
scalar_type = HoopStress
execute_on = timestep_end
[../]
[./creep_rate]
type = MaterialRealAux
block = clad
variable = creep_rate
property = creep_rate
execute_on = timestep_end
[../]
[./hoop_strain]
type = RankTwoScalarAux
rank_two_tensor = total_strain
variable = hoop_strain
scalar_type = HoopStress
execute_on = timestep_end
[../]
[./fract_bphase]
type = MaterialRealAux
block = clad
variable = fract_beta_phase
property = fract_beta_phase
execute_on = 'initial linear'
[../]
[./oxi_thickness]
type = MaterialRealAux
boundary = 2
variable = oxide_thickness
property = oxide_scale_thickness
execute_on = 'initial linear'
[../]
[./ofract_total]
type = MaterialRealAux
boundary = 2
variable = oxywtfract_total
property = current_oxygen_weight_frac_total
execute_on = 'initial linear'
[../]
[./ofgain_total]
type = MaterialRealAux
boundary = 2
variable = oxywtfgain_total
property = oxygen_weight_frac_gained_total
execute_on = 'initial linear'
[../]
[./hasbursted]
type = MaterialRealAux
boundary = 2
variable = bursted
property = failed
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
boundary = 10
property = gap_conductance
variable = gap_conductance
execute_on = 'initial linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./coolant_hflux]
type = MaterialRealAux
property = output_heat_flux
variable = coolant_hflux
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = hmode
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = htype
boundary = '1 2 3'
execute_on = 'initial linear'
[../]
[./pelletid]
type = PelletIdAux
block = pellet_type_1
variable = pellet_id
a_lower = 8.5e-03
a_upper = 448.5e-03
number_pellets = 44
execute_on = initial
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = pellet_type_1
add_variables = true
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_eigenstrain fuel_volumetric_swelling_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_strain clad_irradiation_growth'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
add_variables = true
decomposition_method = EigenSolution
[../]
[]
[Kernels]
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
order = CONSTANT
family = MONOMIAL
block = pellet_type_1
rod_ave_lin_pow = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
num_radial = 50
bias = 0.95
num_axial = 20
a_lower = 8.5e-03
a_upper = 448.5e-03
fuel_inner_radius = 0.
fuel_outer_radius = 4.105e-03
fuel_volume_ratio = 1.
i_enrich = '0.04487 0.95513 0 0 0 0'
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
disp_x = disp_x
disp_y = disp_y
penalty = 1.e+07
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_gas_fractions = '1. 0. 0. 0. 0. 0. 0. 0. 0. 0.'
initial_moles = initial_moles
gas_released = fission_gas_released
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
quadrature = true
normal_smoothing_distance = 0.1
roughness_clad = 1.8e-07
roughness_fuel = 2.e-06
roughness_coef = 3.2
refab_gas_fractions = '0.05 0.95 0. 0. 0. 0. 0. 0. 0. 0.'
refab_time = 124861061.
refab_type = 0
[../]
[]
#TODO: Add option in StandardLWRFuelRodOutputs to compute plenum temperature this way.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[BCs]
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = PresetBC
variable = disp_x
boundary = 12
value = 0.
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.
[../]
[./clad_outer_temp]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = clad_outer_temperature
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
function = rod_outer_pressure
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.6e+06
startup_time = 0.
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 124861061.
refab_pressure = 4.e+06
refab_temperature = 293.15
refab_volume = 1.7e-05
[../]
[../]
[]
[Controls]
[./period0]
type = TimePeriod
disable_objects = 'BCs/clad_outer_temp'
start_time = 0.
end_time = 124861061.0
[../]
#[./period1]
# type = TimePeriod
# disable_objects = 'BCs/clad_outer_temp'
# start_time = 125690771.0
# end_time = 125691189.5
#[../]
[]
[CoolantChannel]
[./convective_clad_surface] # PWR conditions (ignored after base irradiation)
boundary = '1 2 3'
variable = temp
heat_transfer_mode = heat_transfer_mode # prescribe htc until end of blowdown. Then use radiative (+ convective prescribed)
heat_transfer_coefficient = average_coolant_htc # For base irradiation, using averge htc from a previous simulation. Afterwards, use constant values (from jernkvist) plus radiation from end of blowdown
effective_emissivity = 0.6 # 0.75 # cf. Jernkvist
inlet_temperature = heat_sink_temperature # K
#inlet_pressure = 15.5e+06 # Pa
#inlet_massflux = 3800. # kg/m^2-s
rod_diameter = 9.5e-03 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
compute_enthalpy = false #true
#oxide_thickness = oxide_thickness
#heat_transfer_mode = 1 # Natural convection
#htc_correlation_type = 2 # Jens-Lottes (recommended for Halden HBWR)
outputs = all
output_properties = 'coolant_channel_htype coolant_channel_hmode'
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
initial_porosity = 0.0468
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_elasticity_tensor]
type = UO2IsotropicDamageElasticityTensor
block = pellet_type_1
rod_ave_lin_pow = linear_heat_rate
[../]
[./fuel_stress]
type = ComputeMultipleInelasticStress
block = pellet_type_1
inelastic_models = 'fuel_creep'
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet_type_1
temperature = temp
burnup_function = burnup
initial_porosity = 0.0468
initial_fuel_density = 10447.
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
[../]
[./fuel_creep]
type = UO2CreepUpdate
block = pellet_type_1
temperature = temp
fission_rate = fission_rate
#burnup_function = burnup #TODO For consistency, we should specify burnup_function rather than fission_rate,
#but keeping it this way to match the SM model
grain_radius = 4.65e-6
oxygen_to_metal_ratio = 2.0
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
diameter = 8.21e-03
linear_heat_rate_function = q
gap = 150.e-06
burnup_relocation_stop = 1.e+20
eigenstrain_name = fuel_relocation_eigenstrain
relocation_activation1 = 19685.039
[../]
[./fission_gas]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.0468
diff_coeff_option = 3
transient_option = 1 #0
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = linear_heat_rate
axial_power_profile = axial_power_peaking_factors
[../]
[./clad_density]
type = Density
block = clad
density = 6550.
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.
specific_heat = 330.
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 300.0 #TODO: It is odd to have different values for fuel and clad, but keeping this way to match SM
eigenstrain_name = clad_thermal_strain
[../]
[./clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = clad
youngs_modulus = 1.e+11
poissons_ratio = 0.3
[../]
[./zry_thermal_creep]
type = ZryCreepLOCAErbacherLimbackHoppeUpdate
block = clad
temperature = temp
model_irradiation_creep = false
model_primary_creep = false
model_thermal_creep = true
#TODO: The parameters below really should be provided, but they weren't specified in the SM model.
# They may have not been included because irradiation creep wasn't modeled. However, they are used in the thermal
# creep model as well.
# fast_neutron_flux = fast_neutron_flux
# fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'zry_thermal_creep'
block = clad
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = ESCORE_IrradiationGrowthZr4
eigenstrain_name = clad_irradiation_growth
[../]
[./clad_phase]
type = ZrPhase
block = clad
temperature = temp
numerical_method = 2
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temp
clad_inner_radius = 4.18e-03
clad_outer_radius = 4.75e-03
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = cathcart
use_coolant_channel = true
[../]
[./clad_failure_criterion]
type = ZryCladdingFailure
boundary = 2
failure_criterion = plastic_instability
hoop_stress = hoop_stress
effective_strain_rate_creep = creep_rate
#eff_strain_rate_plast =
fraction_beta_phase = fract_beta_phase
fraction_oxygen_gain = oxywtfract_total
temperature = temp
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1.e-05
variable = disp_x
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_tol = 1.e-02 # <--- l_tol is ignored when EW is used.
#l_tol = 8.e-03
line_search = 'none'
l_max_its = 200
nl_max_its = 15
nl_rel_tol = 1.e-04
nl_abs_tol = 1.e-10
start_time = 0.
n_startup_steps = 1
#end_time = 124861061. # End of base irradiation
end_time = 125690771. # Blowdown. End prescribing clad outer temperature.
#end_time = 125690842. # End of blowdown
#end_time = 125691189.5
dtmax = 5.e+05
dtmin = 0.00000001
[./TimeStepper]
type = IterationAdaptiveDT
timestep_limiting_postprocessor = timestep_material
dt = 1.e+02
#growth_factor = 1.1
#optimal_iterations = 4
#iteration_window = 2
timestep_limiting_function = forced_times #linear_heat_rate
max_function_change = 2000.
force_step_every_function_point = true
time_t = '121509219. 124861061. 125680151. 125690151. 125690771. 125691027. 125691033.'
time_dt = '5.e+05 1.e+04 1.e+04 10. 5. 0.5 5. '
[../]
[]
[UserObjects]
[./pbz]
type = PelletBrittleZone
block = pellet_type_1
pellet_id = pellet_id
temp = temp
a_lower = 8.5e-03
a_upper = 448.5e-03
pellet_radius = 4.105e-03
number_pellets = 44
execute_on = 'initial linear'
[../]
[./terminator]
type = Terminator
expression = 'bursted > 0'
execute_on = timestep_end
[../]
[]
[Postprocessors]
[./alhr_input]
type = FunctionValuePostprocessor
function = linear_heat_rate
execute_on = 'initial timestep_end'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet_type_1
variable = burnup
[../]
[./temp_clad_max]
type = NodalExtremeValue
block = clad
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./betaph_fract_max]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
block = clad
execute_on = 'initial timestep_end'
[../]
[./oxygen_fract_max]
type = ElementExtremeValue
block = clad
value_type = max
variable = oxywtfract_total
execute_on = 'initial timestep_end'
[../]
[./oxygen_fgain_max]
type = ElementExtremeValue
block = clad
value_type = max
variable = oxywtfgain_total
execute_on = 'initial timestep_end'
[../]
[./creep_rate_max]
type = ElementExtremeValue
value_type = max
variable = creep_rate
block = clad
[../]
[./timestep_material]
type = MaterialTimeStepPostprocessor
block = clad
[../]
[./strain_clad_hoop_max]
type = ElementExtremeValue
value_type = max
variable = hoop_strain
block = clad
[../]
[./stress_clad_hoop_max]
type = ElementExtremeValue
value_type = max
variable = hoop_stress
block = clad
execute_on = 'initial timestep_end'
[../]
[./bursted]
type = ElementExtremeValue
value_type = max
variable = bursted
block = clad
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_midplane]
type = NodalVariableValue
nodeid = 676 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_tclow]
type = NodalVariableValue
nodeid = 826 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_tchigh]
type = NodalVariableValue
nodeid = 511 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_plenum_mid]
type = NodalVariableValue
nodeid = 241 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_inner_midplane]
type = NodalVariableValue
nodeid = 679 # !! Mesh dependent
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_max]
type = NodalExtremeValue
boundary = '1 2 3'
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_clad_outer_ave]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_max]
type = NodalExtremeValue
block = pellet_type_1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_central]
type = NodalVariableValue
variable = temp
nodeid = 1569 # !! Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./temp_fuel_outer_max]
type = NodalExtremeValue
boundary = 10
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./strain_clad_hoop_outer_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = hoop_strain
execute_on = 'initial timestep_end'
[../]
[./stress_clad_hoop_outer_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = hoop_stress
execute_on = 'initial timestep_end'
[../]
[./contact_pressure_midplane]
type = ElementalVariableValue
elementid = 1300 # !! Mesh dependent
variable = contact_pressure
execute_on = 'initial timestep_end'
[../]
[./oxide_thickness_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = oxide_thickness
execute_on = 'initial timestep_end'
[../]
[./gap_conductance_average]
type = SideAverageValue
boundary = 10
variable = gap_conductance
execute_on = 'initial timestep_end'
[../]
[./coolant_htc_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = coolant_htc
execute_on = 'initial timestep_end'
[../]
[./coolant_htc_average]
type = SideAverageValue
boundary = 2
variable = coolant_htc
execute_on = 'initial timestep_end'
[../]
[./coolant_hflux_midplane]
type = ElementalVariableValue
elementid = 536 # !! Mesh dependent
variable = coolant_hflux
execute_on = 'initial timestep_end'
[../]
[./coolant_hflux_average]
type = SideAverageValue
boundary = 2
variable = coolant_hflux
execute_on = 'initial timestep_end'
[../]
[]
[VectorPostprocessors]
[./clad_radial_disp]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_1'
[../]
[./clad_out_temp]
type = NodalValueSampler
variable = temp
boundary = 2
sort_by = y
outputs = 'outfile_temp_1'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_1
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
interval = 1
num_files = 1
[../]
[./outfile_1]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_temp_1]
type = CSV
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/RIA_NSRR_FK/analysis/FK2/FK02.i
# This file was created using BIF with the following inputs:
# FK02.var - md5sum: 123016ae8f3283a45bae816a366f93b1
# ../pulse_rev1.tpl - md5sum: 8d6b8b4bce1dd830dea2d8522009e514
[GlobalParams]
density = 10020.6066633
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
displacements = 'disp_x disp_y'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
displacements = 'disp_x disp_y'
patch_size = 5
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
top_bot_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.03481
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[AuxVariables]
[./BuTC]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gap]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./fission_rate]
initial_condition = 0
[../]
[./grain_radius]
block = 3
initial_condition = 5.96e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./integral_burnup]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_radial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.085711070864
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[../]
[./flux]
type = ConstantFunction
value = 0.0
[../]
[./axial_peaking_factors]
type = ConstantFunction
value = 1
[../]
[./coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[../]
[./linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[../]
[./axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[../]
[./burnup_thermal_conductivity]
type = ConstantFunction
value = 0.0473684210526 # should be burnup / 950
[../]
[./radial_power_profile]
type = PiecewiseBilinear
data_file = RadialPowerProfile.csv
axis = 0
[../]
[./radial_burnup_profile]
type = PiecewiseBilinear
data_file = RadialBurnupProfile.csv
axis = 0
[../]
[./initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
i_enrich = '0.039 0.961 0.0 0.0 0.0 0.0'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
save_in = saved_t
block = 3
[../]
[]
[AuxKernels]
[./BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[../]
[./gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[../]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = timestep_begin
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_begin
[../]
[./radial_stress]
type = MaterialTensorAux
tensor = stress
variable = radial_stress
index = 0
execute_on = timestep_begin
[../]
[./axial_stress]
type = MaterialTensorAux
tensor = stress
variable = axial_stress
index = 1
execute_on = timestep_begin
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
index = 2
execute_on = timestep_begin
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./axial_strain]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = stress
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./elastic_radial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = radial_strain
index = 0
execute_on = timestep_begin
[../]
[./elastic_axial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_strain
index = 1
execute_on = timestep_begin
[../]
[./elastic_hoop_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_strain
index = 2
execute_on = timestep_begin
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_begin
[../]
[./creep_strain_radial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 0
execute_on = timestep_begin
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
index = 1
execute_on = timestep_begin
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 2
execute_on = timestep_begin
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
friction_coefficient = 2.5
normal_smoothing_distance = 0.1
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
roughness_coef = 3.2
roughness_fuel = 1.5e-6
roughness_clad = 1.75e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
initial_gas_fractions = '1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0'
gas_released = fission_gas_released
tangential_tolerance = 1.0e-6
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '10 5'
initial_pressure = 0.3e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
block = 3
temp = temp
burnup = BuTC
initial_porosity = 0.085711070864
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
temp = temp
burnup = burnup
total_densification = 0.006
gas_swelling_type = SIFGRS
[../]
[./fuel_mech]
type = MechUO2
block = 3
temp = temp
burnup = BuTC
fission_rate = fission_rate
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 5.56e-06
oxy_to_metal_ratio = 2.0
model_thermal_expansion = true
model_swelling = true
name_swelling_model = fuel_swelling
model_relocation = false
name_relocation_model = fuel_relocation
model_creep = false
model_hotpressing = false
has_hotpressing_plasticity = false # used to turn on plasticity models
matpro_youngs_modulus = false
matpro_poissons_ratio = false
dep_matl_props = deltav_v0_bd
# input_yield_stress = 100e6 # used to turn on plasticity models
# input_hardening_modulus = 2e9 # used to turn on plasticity models
# transition_temperature = 1273 # used to change the hot presing temperature
# isotropic_cracking = true # used for isotropic softening model
# rod_ave_lin_pow = linear_heat_rate_profile # used for isotropic softening model
# cracking_stress = 120e6 # used for smeared cracking model
# cracking_release = exponential # used for smeared cracking model
# cracking_residual_stress = 0.1 # used for smeared cracking model
# cracking_beta = 0.01 # used for smeared cracking model
# compute_method = ShearRetention # used for smeared cracking model
# max_cracks = 3 # used for smeared cracking model
# active_crack_planes = '0 1 2' # used for smeared cracking model
stress_free_temperature = 293
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = buavg
q = linear_heat_generation_rate
diameter = 0.01054
gap = 1e-05
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
creeprate_scalef = 1
cold_work_factor = 0.01
material_type = 0
model_irradiation_growth = false
model_thermal_expansion = true
model_elastic_modulus = true
constitutive_model = plasticity
compute_JIntegral = true
formulation = NonlinearRZ
[../]
[./combined]
type = CombinedCreepPlasticity
block = clad
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = clad
temp = temp
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
material_type = 0
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
[../]
[./plasticity]
type = ZryPlasticity
block = 1
temp = temp
initial_fast_fluence = 8.40e25
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
use_matpro = true
output_properties = yield_stress
outputs = all
scale_factor = 1.0
relative_tolerance = 1e-3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = 2
[../]
[./clad_density]
type = Density
block = 1
density = 6551
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[UserObjects]
[./avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[../]
[./integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[./contactslip]
type = ContactSlipDamper
master = 5
slave = 8
min_damping_factor = 0.05
[../]
[]
[Postprocessors]
[./average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[]
[VectorPostprocessors]
[./rad_temp]
type = LineValueSampler
end_point = '0.00527 0.0503 0.0'
start_point = '0.0 0.0503 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
output_linear = true
[../]
[./dummy]
type = CSV
enable = true
[../]
[]
assessment/TRISO/benchmark/IAEA_CRP-6/case_10/case_10_1D.i
[GlobalParams]
density = 10810.0 # kg/m^3
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
type = TRISO1DMesh
elem_type = EDGE3
coordinates = '0 2.485e-4 3.425e-4 3.425e-4 3.835e-4 4.195e-4 4.595e-4'
mesh_density = '6 6 0 6 8 6'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[Problem]
coord_type = RSPHERICAL
[]
[Variables]
[./disp_x]
[../]
[./temp]
initial_condition = 1346.0
[../]
[]
[Functions]
[./radial_eigenstrain]
type = ParsedFunction
value = 't*(4.52013e-4/6.0*t*t*t*t*t - 8.36313e-3/5.0*t*t*t*t + 5.67549e-2/4.0*t*t*t - 1.74247e-1/3.0*t*t + 2.62692e-1/2.0*t - 1.43234e-1)'
[../]
[./tangential_eigenstrain]
type = ParsedFunction
value = 't*(1.30457e-4/4.0*t*t*t - 2.10029e-3/3.0*t*t + 9.07826e-3/2.0*t - 3.24737e-2)'
[../]
[./fission_rate]
type = ParsedFunction
value = 7.75e19 # units of fissions/m**3
[../]
[./k_function]
type = ParsedFunction
value = '4.93e-29'
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./burnup]
block = fuel
initial_condition = 0.0
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
initial_condition = 0.0
[../]
[./fission_rate]
block = fuel
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
factor = 1.708707e18 # n/m^2-sec
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[../]
[./fission_rate]
type = FunctionAux
variable= fission_rate
block = fuel
function = fission_rate
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = IPyC_left_boundary
slave = buffer_right_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = IPyC_left_boundary
slave = buffer_right_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0'
tangential_tolerance = 1e-6
# contact_pressure_input = 10e6
# quadrature = true
[../]
[]
[BCs]
# pin particle along symmetry planes
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[../]
# fix temperature on free surface
[./freesurf_temp]
type = DirichletBC
variable = temp
boundary = exterior
value = 1346.0
[../]
# exterior and internal pressures
[./exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
component = 0
factor = 0.1e6
[../]
[./PlenumPressure] # apply gas pressure on buffer and IPyC boundaries
[./plenumPressure]
boundary = buffer_IPyC_boundary
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[Materials]
[./fission_gas_release] # Sifgr fission gas release mode
type = Sifgrs
block = fuel
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[../]
[./stress]
type = ComputeLinearElasticStress
block = 'fuel buffer SiC'
[../]
[./strain]
type = ComputeRSphericalSmallStrain
block = 'fuel buffer SiC'
eigenstrain_names = thermal_strain
[../]
[./PyC_stress]
type = PyCCreep
block = 'IPyC OPyC'
k = k_function
nu = 0.4
flux = fast_neutron_flux
temperature = temp
density = 1880.0 # kg/m^3
[../]
[./PyC_strain]
type = ComputeRSphericalIncrementalStrain
block = 'IPyC OPyC'
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
[../]
[./PyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = 'IPyC OPyC'
fluence = fast_neutron_fluence
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[../]
[./fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./PyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[../]
[./fuel_den]
type = Density
block = fuel
disp_r = disp_x
[../]
[./buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[../]
[./buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./buffer_den]
type = Density
density = 1000 #kg/m^3
block = buffer
disp_r = disp_x
[../]
[./PyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[../]
[./PyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[../]
[./PyC_den]
type = Density
density = 1880.0 # kg/m^3
block = 'IPyC OPyC'
disp_r = disp_x
[../]
[./SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[../]
[./SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[../]
[./SiC_den]
type = Density
density = 3200.0 # kg/m^3
block = SiC
disp_r = disp_x
[../]
[]
[Dampers]
[./temp]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
# petsc_options = '-snes_mf_operator -snes_ksp_ew -ksp_monitor'
# petsc_options_iname = '-pc_type -pc_hypre_type'
# petsc_options_value = 'hypre boomeramg'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 3.10176e7
dtmax = 2e5
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[./burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[../]
[./volumeTotal]
type = InternalVolume
boundary = exterior
[../]
[./volumeFuel]
type = InternalVolume
boundary = fuel_right_boundary
[../]
[./volumeGas]
type = InternalVolume
boundary = 'fuel_right_boundary IPyC_left_boundary'
addition = -5.53e-11
execute_on = 'initial timestep_end'
[../]
[./volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[../]
[./ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temp
execute_on = 'initial timestep_end'
[../]
# Postprocessors for CO production
[./total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
[../]
[./total_fissions]
type = TotalVariableValue
value = total_fission_rate
[../]
[./avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
[../]
[./time_int_surf_temp]
type = TotalVariableValue
value = avg_surface_temp
[../]
[./co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_int_surf_temp = time_int_surf_temp
[../]
[./tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[../]
[]
[Outputs]
print_linear_residuals = true
interval = 1
exodus = true
csv = true
perf_graph = true
[]
assessment/LWR/validation/RIA_CABRI_REP_Na/analysis/REP_Na_2/REP_Na_2.i
# REP Na 2 Base Irradiation
[GlobalParams]
density = 10344.71 # assumed TD = 10970
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 30
acceptable_multiplier = 10
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
nx_p = 11
ny_p = 336
ny_cu = 3
ny_c = 350
ny_cl = 3
nx_c = 4
clad_thickness = 0.000637
pellet_outer_radius = 0.0040248
pellet_quantity = 84
pellet_height = 0.0119888
clad_top_gap_height = 0.041077
clad_bot_gap_height = 0.003
clad_gap_width = 93.0e-6
top_bot_clad_height = 0.0015
elem_type = QUAD8
patch_size = 40
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.15
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 5.0e-6 # Assume Grain size 10 microns
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fuel_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./swelling_strain]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_plastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_plastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./total_axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_elastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_elastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./clad_coolant_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_channel_htype]
order = CONSTANT
family = MONOMIAL
[../]
[./critical_heat_flux]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./plastic_strain_mag]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./oxywtfract_total]
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = REPNa2_power_history.csv
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = REPNa2_axial_peaking.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
format = columns
xy_data = '0 101325
8640 13999808
57067200 13999808
57110400 101325
57542410 101325
57542450 500008
57542700 500008
57542800 101325
57542900 101325'
[../]
[./temp_ramp]
type = PiecewiseLinear
format = columns
xy_data = '0 293.15
8640 543.15
57067200 543.15
57110400 293.15
57542410 293.15
57542450 553.15
57542700 553.15
57542800 293.15
57542900 293.15'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./Fuel_CTE_function] #Fuel CTE as a function of temp from MATPRO data
type = PiecewiseLinear
format = columns
xy_data = ' 0 1.000E-05
300 1.000E-05
350 1.000E-05
400 1.000E-05
450 1.000E-05
500 1.001E-05
550 1.002E-05
600 1.003E-05
650 1.005E-05
700 1.008E-05
750 1.011E-05
800 1.015E-05
850 1.020E-05
900 1.026E-05
950 1.032E-05
1000 1.039E-05
1050 1.046E-05
1100 1.053E-05
1150 1.061E-05
1200 1.069E-05
1250 1.077E-05
1300 1.085E-05
1350 1.094E-05
1400 1.102E-05
1450 1.111E-05
1500 1.119E-05
1550 1.127E-05
1600 1.135E-05
1650 1.143E-05
1700 1.151E-05
1750 1.158E-05
1800 1.166E-05
1850 1.173E-05
1900 1.180E-05
1950 1.187E-05
2000 1.193E-05
2050 1.199E-05
2100 1.205E-05
2150 1.211E-05
2200 1.217E-05
2250 1.222E-05
2300 1.227E-05
2350 1.232E-05
2400 1.237E-05
2450 1.242E-05
2500 1.246E-05
2550 1.250E-05
2600 1.254E-05
2650 1.258E-05
2700 1.262E-05
2750 1.265E-05
2800 1.268E-05
2850 1.271E-05
2900 1.274E-05
2950 1.277E-05
3000 1.280E-05
3050 1.282E-05
3100 1.285E-05'
[../]
[./burnup_GWd]
type = ParsedFunction
value = bu*950
vars = 'bu'
vals = 'average_burnup'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 85
a_upper = 1.0115592
a_lower = 0.0045
fuel_inner_radius = 0
fuel_outer_radius = 0.0040248
fuel_volume_ratio = 1
i_enrich = '0.0685 0.9315 0 0 0 0'
RPF = RPF
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_profile
factor = 3e13 #n/m2-s
block = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
block = 1
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./fuel_conductance]
type = MaterialRealAux
property = thermal_conductivity
variable = fuel_cond
block = 3
[../]
[./swelling_strain]
type = MaterialRealAux
variable = swelling_strain
property = total_swell
execute_on = timestep_end
block = 3
[../]
[./vonmises_stress]
type = MaterialTensorAux
tensor = stress
variable = vonmises_stress
quantity = vonmises
execute_on = timestep_end
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
index = 2
execute_on = timestep_end
[../]
[./axial_stress]
type = MaterialTensorAux
tensor = stress
variable = axial_stress
index = 1
execute_on = timestep_end
[../]
[./hoop_creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = hoop_creep_strain
index = 2
execute_on = timestep_end
block = 1
[../]
[./axial_creep_strain]
type = MaterialTensorAux
tensor = creep_strain
variable = axial_creep_strain
index = 1
execute_on = timestep_end
block = 1
[../]
[./hoop_plastic_strain]
type = MaterialTensorAux
tensor = plastic_strain
variable = hoop_plastic_strain
index = 2
execute_on = timestep_end
block = 1
[../]
[./axial_plastic_strain]
type = MaterialTensorAux
tensor = plastic_strain
variable = axial_plastic_strain
index = 1
execute_on = timestep_end
block = 1
[../]
[./total_hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_hoop_strain
index = 2
execute_on = timestep_end
block = 1
[../]
[./total_axial_strain]
type = MaterialTensorAux
tensor = total_strain
variable = total_axial_strain
index = 1
execute_on = timestep_end
block = 1
[../]
[./hoop_elastic_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_elastic_strain
index = 2
execute_on = timestep_end
block = 1
[../]
[./axial_elastic_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_elastic_strain
index = 1
execute_on = timestep_end
block = 1
[../]
[./creep_strain_mag]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_mag
quantity = effectivestrain
execute_on = timestep_end
[../]
[./plastic_strain_mag]
type = MaterialTensorAux
tensor = plastic_strain
variable = plastic_strain_mag
quantity = effectivestrain
execute_on = timestep_end
block = 1
[../]
[./clad_coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = clad_coolant_htc
boundary = 2
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = 2
[../]
[./clad_coolant_flux]
type = MaterialRealAux
property = output_heat_flux
variable = clad_coolant_flux
boundary = 2
[../]
[./coolant_channel_hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = coolant_channel_hmode
boundary = 2
[../]
[./coolant_channel_htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = coolant_channel_htype
boundary = 2
[../]
[./critical_heat_flux]
type = MaterialRealAux
property = critical_heat_flux
variable = critical_heat_flux
boundary = 2
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[./ofract_total]
type = MaterialRealAux
variable = oxywtfract_total
property = current_oxygen_weight_frac_total
execute_on = timestep_end
boundary = 2
[../]
[./ofgain_total]
type = MaterialRealAux
variable = oxywtfgain_total
property = oxygen_weight_frac_gained_total
execute_on = timestep_end
boundary = 2
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
formulation = penalty
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2.0e-6
roughness_clad = 0.5e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
emissivity_fuel = 0.797698
emissivity_clad = 0.325
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 57456000
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_temperature = 293.15
initial_pressure = 1.70e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
save_in = 'saved_x saved_y'
refab_time = 57456000
refab_pressure = 0.1e6
refab_temperature = 293.15
refab_volume = 2.3e-6
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface_water] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp # K
inlet_pressure = pressure_ramp # Pa
inlet_massflux = 1779 # kg/m^2-sec
rod_diameter = 0.0095096 # m
rod_pitch = 1.265e-2 # m
coolant_material = 'water'
compute_enthalpy = true
oxide_thickness = oxide_thickness
[../]
#
# [./convective_clad_surface_sodium] # apply convective boundary to clad outer surface
# boundary = '1 2 3'
# variable = temp
# inlet_temperature = temp_ramp # K
# inlet_pressure = pressure_ramp # Pa
# inlet_massflux = 3533 # kg/m^2-sec Based on flow rate provided and flow area and estimated density of 885.1 kg/m^3
# flow_area = 8.74855e-5 #m^2
# heated_diameter = 1.172526e-2 #m
# hydraulic_diameter = 4.7e-3 #m
# heated_perimeter = 2.984513e-2 #m
# coolant_material = 'sodium'
# compute_enthalpy = true
# heat_transfer_mode = 0
# oxide_thickness = oxide_thickness # coupled oxide_thickness
# number_axial_zone = 50
# rod_pitch = 1.26e-2 # m
# rod_diameter = 0.0095 # m
# [../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.057
[../]
[./fuel_elastic]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2e11
poissons_ratio = 0.345
dep_matl_props = deltav_v0_bd
thermal_expansion_function = Fuel_CTE_function
stress_free_temperature = 293.15
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.0080496
q = q
gap = 186.0e-6 #diametral gap
burnup_relocation_stop = 0.024
relocation_activation1 = 5000
model_volumetric_scaling = false
[../]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
save_solid_swell = true
save_densification = true
total_densification = 0.00676
initial_porosity = 0.057
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
initial_porosity = 0.057
grain_radius = grain_radius
gbs_model = true
transient_option = 0
[../]
[./clad_density]
type = Density
block = 1
density = 6550
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
formulation = NonlinearRZ
large_strain = true
constitutive_model = clad_combined
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.5
model_irradiation_growth = true
model_thermal_expansion = true
model_elastic_modulus = true
stress_free_temperature = 293.15
oxygen_concentration = 0.0
max_inelastic_increment = 1.0e-4
compute_material_timestep_limit = true
[../]
[./clad_combined]
type = CombinedCreepPlasticity
block = 1
temp = temp
submodels = 'clad_creep clad_plasticity'
[../]
[./clad_creep]
type = CreepZryModel
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
model_thermal_creep_loca = false
[../]
[./clad_plasticity]
type = ZryPlasticity
block = 1
temp = temp
cold_work_factor = 0.5
fast_neutron_fluence = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
use_matpro = true
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0041178
clad_outer_radius = 0.0047549
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_phase]
type = ZrPhase
block = 1
temperature = temp
numerical_method = 2
[../]
[]
[Dampers]
[./BoundingValueNodalDamper]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
[./contact_slip]
type = ContactSlipDamper
master = 5
slave = 10
min_damping_factor = 0.05
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1e-3
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = 0
end_time = 57542400
dtmax = 1e6
dtmin = 1e-7
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e3
optimal_iterations = 10
iteration_window = 4
linear_iteration_ratio = 100
timestep_limiting_function = power_profile
max_function_change = 1e6
force_step_every_function_point = true
timestep_limiting_postprocessor = material_timestep_control
time_t = '57542410 57542420 57542430 57542440 57542450 57542460 57542470 57542480'
time_dt = '10 10 10 10 10 10 10 10'
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./max_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = 3
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = 1
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_clad_temp]
type = NodalExtremeValue
block = 1
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 1.05114 # rod height
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./burnup_GWd]
type = FunctionValuePostprocessor
function = burnup_GWd
[../]
[./vonmises_stress_fuel]
type = ElementAverageValue
block = 3
variable = vonmises_stress
[../]
[./vonmises_stress_clad]
type = ElementAverageValue
block = 1
variable = vonmises_stress
[../]
[./material_timestep_control]
type = MaterialTimeStepPostprocessor
block = 1
[../]
## Nodal values
[./FCT] #fuel centerline temperature
type = NodalVariableValue
variable = temp
nodeid = 11699 #(0, 0.558982, 0)
[../]
[./FST] #fuel surface temperature
type = NodalVariableValue
variable = temp
nodeid = 11730 #(0.0040248, 0.558982, 0)
[../]
[./CIST] #clad inner surface temperature
type = NodalVariableValue
variable = temp
nodeid = 2766 #(0.0041178, 0.558602, 0)
[../]
[./COST] #clad outer surface temperature
type = NodalVariableValue
variable = temp
nodeid = 2774 #(0.0047548, 0.558602, 0)
[../]
[./gap]
type = NodalVariableValue
variable = penetration
nodeid = 11730 #(0.0040248, 0.558982, 0)
use_displaced_mesh = true
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 11730 #(0.0040248, 0.558982, 0)
use_displaced_mesh = true
[../]
[]
[VectorPostprocessors]
[./clad_dia]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_clad_diameter'
[../]
[./pellet_dia]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_pellet_diameter'
[../]
[./ox_thick]
type = SideValueSampler
variable = oxide_thickness
boundary = 2
sort_by = y
outputs = 'outfile_oxide_thickness'
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = solid
fuel_pellet_blocks = pellet
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
interval = 1
csv = true
color = false
[./outfile_clad_diameter]
type = CSV
sync_times = '57542400 57542900'
sync_only = true
[../]
[./outfile_oxide_thickness]
type = CSV
sync_times = '57542400 57542900'
sync_only = true
[../]
[./outfile_pellet_diameter]
type = CSV
sync_times = '57542400 57542900'
sync_only = true
[../]
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
sync_times = '57542400'
sync_only = true
[../]
[./chkfile]
type = CSV
show = 'plenum_temperature fission_gas_released_percentage FCT average_burnup'
execute_on = 'FINAL'
[../]
[./exodus]
type = Exodus
interval = 4
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
show_material_props = true
[]
test/tests/fission_gas_behavior_sifgrs/sifgrs_percolation.i
# This test is to verify that the optional check for a path to a free surface for gas release works correctly.
# When the optional percolation AuxVariable is supplied to Sifgrs, gas release is not allowed unless
# that variable is > 0.5 locally. The PercolationUserObject checks whether each position is connected
# to a free surface and sets the AuxVariable accordingly.
# In this test, the gas released should be nearly the same as the sifgrs_second_stage test.
[Mesh]
[./mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[../]
[./free1]
type = SideSetsAroundSubdomainGenerator
new_boundary = free1
normal = '1 0 0'
block = 1
input = mesh
[../]
[]
[Functions]
[./Temp_func]
type = ParsedFunction
value = '1400'
[../]
[./Fiss_func]
type = ParsedFunction
value = '1.e19'
[../]
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 1400
[../]
[]
[AuxVariables]
[./fission_rate]
order = FIRST
family = LAGRANGE
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
[../]
# percolation AuxVariables
[./open_coverage]
order = CONSTANT
family = MONOMIAL
[../]
[./open_threshold]
order = CONSTANT
family = MONOMIAL
[../]
[./open]
order = CONSTANT
family = MONOMIAL
[../]
[./cluster]
order = CONSTANT
family = MONOMIAL
[../]
[./percolated]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable = fission_rate
value = 1
function = Fiss_func
execute_on = 'initial timestep_begin'
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = 'initial linear'
[../]
# percolation auxkernels
[./open_coverage]
type = MaterialRealAux
variable = open_coverage
property = GBCoverage
[../]
[./open_threshold]
type = MaterialRealAux
variable = open_threshold
property = sat_coverage
[../]
[./open]
type = ParsedAux
variable = open
args = 'open_coverage open_threshold'
function = 'open_coverage-open_threshold'
[../]
[./cluster]
type = FeatureFloodCountAux
variable = cluster
execute_on = 'timestep_begin'
field_display = UNIQUE_REGION
flood_counter = percolate
[../]
[./percolated]
type = PercolationAux
variable = percolated
execute_on = 'timestep_begin'
percolation = percolate
[../]
[]
[BCs]
[./bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[../]
[]
[Materials]
[./UO2]
type = HeatConductionMaterial
block = 1
temp = T
thermal_conductivity = 1.0
specific_heat = 1.0
[../]
[./Fission_Gas_Release]
type = Sifgrs
block = 1
temp = T
fission_rate = fission_rate
percolation_to_surface = percolated
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
end_time = 5e7
[]
[Postprocessors]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[../]
[]
[UserObjects]
[./percolate]
type = PercolationUserObject
execute_on = 'timestep_begin'
boundaries = 'free1'
variable = open
threshold = 0.0
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_1/vitanza_1pt5.i
# Model is of a 10 slice pellet stack in 1.5D
[GlobalParams]
density = 10431.0
order = SECOND
family = LAGRANGE
energy_per_fission = 3.20435313e-11 # J/fission (200 MeV)
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = Layered1DMesh
pellet_inner_radius = 0.0
pellet_outer_radius = 0.005305
pellet_bottom_coor = 0.00226
fuel_height = 0.0127
include_clad = false
include_plenum = false
clad_gap_width = 0
clad_thickness = 0
slices_per_block = 10
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
[../]
[]
[Variables]
[./temp]
initial_condition = 293.0
[../]
[]
[AuxVariables]
[./grain_radius]
block = fuel
initial_condition = 7.5e-6
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
x = '-100 0 100 1e8'
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = fuel
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_upper = 0.01496
a_lower = 0.00226
fuel_inner_radius = 0.0
fuel_outer_radius = 0.005305
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = fuel
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[]
[BCs]
[./fuel_wall_temp]
type = DirichletBC
variable = temp
boundary = '10'
value = 673
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temp
burnup_function = burnup
grain_radius = grain_radius
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type'
petsc_options_value = ' lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
dtmax = 1e6
dtmin = 1
[./Quadrature]
order = fifth
side_order = seventh
[../]
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 6
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
execute_on = 'initial linear'
fuel_pin_geometry = pin_geometry
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temp
execute_on = 'initial timestep_end'
[../]
[./min_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = min
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_fuel]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./rod_total_power]
type = ElementIntegralPower
execute_on = linear
burnup_function = burnup
variable = temp
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.0127
[../]
[./ave_fission_rate]
type = ElementAverageValue
block = fuel
variable = fission_rate
[../]
[./ave_burnup_EAV]
type = ElementAverageValue
block = fuel
variable = burnup
[../]
[./fuel_center_temperature]
type = NodalVariableValue
nodeid = 165 # Paraview GlobalNodeID 166 at (0.0, 0.009245)
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = false
print_linear_residuals = true
[./csv]
type = CSV
execute_on = final
[../]
[./chkfile]
type = CSV
show = 'burnup fis_gas_percent fuel_center_temperature rod_total_power'
execute_on = final
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'fis_gas_percent >= 0.01'
[../]
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM156/TM/BFM156_tm.i
################################################################################
#
# Description: Calvert Cliffs BFM156
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFM156_power.csv
# axial peaking factor file BFM156_axial_peaking.csv
# flux boundary condition file BFM156_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10411.07 #94.882 %TD Assume TD = 10972.65 kg/cm3
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.34015
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.2e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFM156_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFM156_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 177406235 177406595'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 177406235 177406595'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFM156_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0095631 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 190.5e-6 #diametral gap in m
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10411.07
total_densification = 0.01
initial_porosity = 0.05
eigenstrain_name = fuel_volumetric_strain
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 177406595
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/IFA_562/analysis/rod16/IFA562_16.i
# Reference document HWR-247
# Block 1 = cladding, Block 3 and 5 = insulators Block 4 = fuel
#Last update 11/12/2015
[GlobalParams]
density = 10321.2 # initial fuel density 94% of theoretical (10980 kg/m3)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (200 MeV per fission)
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa562_rod16_insulator.e
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./grain_radius]
block = '4'
initial_condition = 7.75e-6 # grain radius is not reported, number from IFA-515
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = IFA562_16_alhr.csv
format = columns
[../]
[./axial_peaking_factors]
type = ParsedFunction # no axial power profile
value = '1'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = IFA562_16_coolant_temp.csv
format = columns
[../]
[./axial_clad_peaking]
type = ParsedFunction # no axial clad temp
value = '1'
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.0298 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./flux]
type = PiecewiseLinear
data_file = IFA562_16_flux.csv
format = columns
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 4 # fission rate applied to the fuel only
fission_rate = fission_rate # coupling to the fission_rate aux variable
[../]
[]
[Burnup]
[./burnup]
block = 4
rod_ave_lin_pow = power_profile # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 20
a_lower = 0.01101 # Checked with Paraview
a_upper = 0.45351 # Checked with Paraview
fuel_inner_radius = 0.001 # Checked with Paraview
fuel_outer_radius = 0.0029575 # Checked with Paraview
i_enrich = '0.13 0.87 0 0 0 0' # 13% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
axial_power_profile = axial_peaking_factors
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '4'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = 1
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
formulation = kinematic
system = constraint
normalize_penalty = true
penalty = 1e14
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact_clad]
# thermal conatact between the fuel outer radius and the clad inner wall
type = GapHeatTransferLWR
variable = temp
master = 5 # clad
slave = 10 # fuel & insulators
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
roughness_clad = 1e-6
roughness_fuel = 2e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
quadrature = true
normal_smoothing_distance = 0.1
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.40e6 # coolant pressure not reported, using the number from IFA-515
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = '4'
burnup = burnup
temp = temp
[../]
[./fuel_thermal]
type = ThermalFuel
block = '4'
temp = temp
thermal_conductivity_model = NFIR # NFIR
burnup = burnup
initial_porosity = 0.06
[../]
[./insulator_thermal]
type = ThermalFuel
block = '3 5'
temp = temp
thermal_conductivity_model = NFIR # NFIR
burnup_function = 0
initial_porosity = 0.06
[../]
[./fuel_creep]
type = Elastic
block = '4'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
# formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 4
burnup = burnup
diameter = 0.005915
q = q
gap = 1.0e-4
relocation_activation1 = 5000
burnup_relocation_stop = 0.02524
[../]
[./insulator_creep]
type = Elastic
block = '3 5'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
# formulation = NonlinearRZ
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_thermal_expansion = true
model_irradiation_growth = true
# formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = '4'
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
[../]
[./clad_density]
type = Density
block = '1'
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '4 3 5'
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 50
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
# Time steps set up to match halden data
start_time = -100
end_time = 84612900
dtmax = 1e6
dtmin = 1
# control for adaptive time steping
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 1000
growth_factor = 10
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
outputs = exodus
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
outputs = exodus
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = '4'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = '4'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '4'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '4'
outputs = exodus
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 4
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.4425 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 4
variable = fission_rate
[../]
[./average_rod_burnup]
type = ElementAverageValue
block = 4
variable = burnup
[../]
[./FCT_ave]
type = SideAverageValue
boundary = 13
variable = temp
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_rod_burnup fis_gas_released FCT_ave rod_total_power'
execute_on = 'FINAL'
[../]
[]
examples/restart/Quad8.i
# This is a single pellet version of the BISON example problem.
# Use it to learn about the restart capability.
#
# Here's a step-by-step example of what you should do to use the restart capability:
#
# Run the simulation out to 40 time steps:
#
#
# Tweak inputQuad8.i as needed. For example, extend the end time, introduce a power blip at the end, or...?
# Then, run again using the --recover option and the recover directory that was created in the previous step
#
# ~/projects/trunk/BISON/BISON-opt -i inputQuad8.i --recover inputQuad8_out_cp/0040 (again, you can redirect or not here)
#
#
# Look at the exodus file in a post processing program (like Paraview) and see if it did what you intended.
#
# An example of why you might want to do this is if you have a simulaiton that runs fine out to 40 time steps, but gets into trouble afer that. You could run the simulation out to 40 time steps, then experiment with changes to the input file that may help the simulation converge. It would obviate the need to run the simulation throught the "easy" part over and over again, thus saving you time.
#
# Send questions to the BISON Users mailing list, or stephen.novascone@inl.gov
#
# As a supplement to this example, also included is a restart.sh script that Jason Hales wrote to test restart.
# The first thing the script does is to run the simulation as you would normally.
# It copies the output file to a 'gold' file.
# Then, it runs the simulation again, but it specifies the numer of checkpoint files and the number of steps (fewer number of steps than specified in the input file).
#
# Using information from this shortented run, the script kicks off another simulation using the --recover option, which
# uses the result at the end of the shortened run as a starting point.
# The script then compares the two exodus files. One from the original (non restarted 'gold' run) and the one from the restart.
#
# That script is included as an example and reference for commands to use when you're using restart.
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
disp_x = disp_x
disp_y = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
[]
[Mesh]
# Import mesh file
file = single_pellet.e
patch_size = 10 # 1000 # For contact algorithm
[]
[Variables]
# Define dependent variables and initial conditions
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 580.0 # set initial temp to coolant inlet
[../]
[]
[AuxVariables]
# Define auxilary variables
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
# Specify that we need solid mechanics (divergence of stress)
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate # coupling to the fission_rate aux variable
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 2.26e-3 # mesh dependent!
a_upper = 1.2086e-1 # mesh dependent!
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 0.987775 # for use with dished pellets (ratio of actual volume to cylinder volume)
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
RPF = RPF
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = linear
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = linear
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e7
system = constraint
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = FINK_LUCUTA # Fink-Lucuta
temp = temp
burnup = burnup
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = MATPRO
block = pellet_type_1
temp = temp
burnup = burnup
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (BISON kernel)
type = CreepUO2
block = pellet_type_1
disp_r = disp_x
disp_z = disp_y
temp = temp
fission_rate = fission_rate
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
grain_radius = 10.0e-6
oxy_to_metal_ratio = 2.0
stress_free_temperature = 295.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup = burnup
diameter = 0.0082
q = q
gap = 160e-6 # diametral gap
burnup_relocation_stop = 1.e20
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr4 (BISON kernel)
type = MechZry
block = clad
disp_r = disp_x
disp_z = disp_y
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
model_thermal_expansion = false
model_irradiation_growth = true
stress_free_temperature = 295.0
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./fuel_density]
type = Density
block = pellet_type_1
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2.0e2
optimal_iterations = 15
iteration_window = 2
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
outputs = exodus
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
execute_on = linear
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
execute_on = linear
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
execute_on = linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
execute_on = linear
[../]
[./gas_volume] # gas volume
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on = timestep_end
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on = timestep_end
[../]
[./_dt] # time step
type = TimestepSize
execute_on = timestep_end
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet_type_1
execute_on = timestep_end
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
execute_on = timestep_end
[../]
[]
[Outputs]
perf_graph = true
exodus = true
[./console]
type = Console
max_rows = 25
[../]
[]
assessment/LWR/validation/IFA_431/analysis/rod3/SM/IFA_431_rod3_sm.i
[GlobalParams]
density = 10431 # initial fuel density 95% of theoretical (10980 kg/m3)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa_431_rod3_fine.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 513.3
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4 5'
initial_condition = 3.5e-6
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
data_file = bol_power.csv
scale_factor = 1
format = columns
[../]
[./axial_peaking_factor]
type = PiecewiseBilinear
data_file = bol_axial.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.029395 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factor'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = '3 4 5'
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
factor = 1.6e12 #(n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4 5'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./hydrostatic_stress]
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = '3 4 5'
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factor
num_radial = 81
num_axial = 21
a_lower = 0.01494
a_upper = 0.57374
fuel_inner_radius = 0.00
fuel_outer_radius = 0.005429
fuel_volume_ratio = 0.992916
i_enrich = '0.1 .9 0 0 0 0' # 10% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_fuel = 2.16e-6
roughness_clad = 6.35e-7
roughness_coef = 3.2
quadrature = true
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 513.3
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.447e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0135e5
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = '3 4 5'
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./fuel_density]
type = Density
block = '3 4 5'
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4 5'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_elasticity_and_creep]
type = Elastic
block = '3 4 5'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
stress_free_temperature = 297
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = '3 4 5'
burnup_function = burnup
q = q
diameter = 1.0858e-2
gap = 51.0e-6
relocation_activation1 = 5000
burnup_relocation_stop = 0.00821
tensor_mechanics_compatibility = true
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
stress_free_temperature = 297
model_irradiation_growth = true
model_thermal_expansion = false
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4 5'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 80
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# Time steps set up to match halden data
n_startup_steps = 1
start_time = 0
end_time = 50400
[./TimeStepper]
type = ConstantDT
dt = 900
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3 4 5'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4 5'
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3 4 5'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
block = '3 4 5'
burnup_function = burnup
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3 4 5'
outputs = exodus
[../]
[./power_lower_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.075265 0'
[../]
[./power_upper_TC]
type = FunctionValuePostprocessor
function = q
point = '0 0.50389 0'
[../]
[./upper_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 8896 # paraview global node id 8897
[../]
[./lower_TC_temp] # output temp at upper TC (mesh dependent!!)
type = NodalVariableValue
variable = temp
nodeid = 2694 # paraviw global node id 2695
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
cladding_blocks = 1
rod_component = BOTH
mechanics_system = SOLID
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'fission_gas_released rod_total_power upper_TC_temp lower_TC_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'temp disp_x disp_y'
show_var_residual_norms = true
[]
assessment/MOX/JOYO/MK-II/analysis/MK-II_master_old_bubble_gb_lim.i
[GlobalParams]
density = 10920.4
initial_porosity = 0.07
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
dim = 2
pellet_quantity = 1
pellet_height = 0.55
pellet_outer_radius = 0.002315
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000085
clad_thickness = 0.00035
clad_bot_gap_height = 1.0e-3
top_bot_clad_height = 2.24e-3
clad_top_gap_height = 0.549
elem_type = QUAD8
nx_c = 4
ny_c = 100
nx_p = 10
ny_p = 100
ny_cu = 3
ny_cl = 3
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
[Variables]
[./temp]
initial_condition = 295.0
[../]
[]
[AuxVariables]
[./pore]
[../]
[./fission_rate]
block = pellet
[../]
[./burnup]
block = pellet
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vcn_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
[../]
[]
[Functions]
[./power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = '0 70000 12697021'
y = '0 48827.8 48827.8'
[../]
[./fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 70000 12697021'
y = '0 2.6e+19 2.6e+19'
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
x = '0 0.065 0.134 0.202 0.271 0.339 0.406 0.519'
y = '0 12697021'
z = '0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672 0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672'
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./average_power_history]
type = PiecewiseLinear
x = '0 70000 12697021'
y = '0 40000 40000'
[../]
[./clad_surface_temp]
type = PiecewiseBilinear
x = '0 0.065 0.134 0.202 0.271 0.339 0.406 0.519'
y = '0 12697021'
z = '295 295 295 295 295 295 295 295 416.36 422.49 428.63 434.27 439.36 444.71 450.07 455.48'
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
save_in = 'saved_x saved_y'
use_finite_deform_jacobian = true
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet
fission_rate = fission_rate
[../]
[]
[AuxKernels]
[./fission_rate]
type = FissionRateMOX
variable = fission_rate
block = pellet
initial_porosity = 0.07
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.00463
execute_on = timestep_begin
porosity = pore
[../]
[./burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[../]
[./fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_gen_3
execute_on = timestep_end
[../]
[./fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_grn_3
execute_on = timestep_end
[../]
[./fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_bdr_3
execute_on = timestep_end
[../]
[./fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_rel_3
execute_on = timestep_end
[../]
[./nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bbl_bdr_2
execute_on = timestep_end
[../]
[./nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vcn_bdr_2
execute_on = timestep_end
[../]
[./atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atm_bbl_bdr
execute_on = timestep_end
[../]
[./vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vcn_bbl_bdr
execute_on = timestep_end
[../]
[./prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = prs_bbl_bdr
execute_on = timestep_end
[../]
[./prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = prseq_bbl_bdr
execute_on = timestep_end
[../]
[./radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = rad_bbl_bdr
execute_on = timestep_end
[../]
[./volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = vol_bbl_bdr
execute_on = timestep_end
[../]
[./frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[../]
[./diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[../]
[./dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = fast_neutron_flux_function
block = clad
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = '12'
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp_clad_out]
type = FunctionPresetBC
variable = temp
boundary = '2'
function = clad_surface_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 101325
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 300000
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalMAMOX
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[../]
[./fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10920.4
eigenstrain_name = fuel_volumetric_strain
[../]
[./clad_thermal]
type = Thermal316
block = clad
temp = temp
[../]
[./clad_density]
type = Density
block = clad
density = 8000
[../]
[./clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
[../]
[./thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
burnup = burnup
diff_coeff_option = 4
fission_rate = fission_rate
grain_radius_const = 8.01e-6
[../]
[./fuel_density]
type = Density
block = pellet
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
picard_abs_tol = 1e-2
picard_rel_tol = 1e-2
picard_max_its = 1
l_max_its = 70
l_tol = 8e-3
nl_max_its = 70
nl_rel_tol = 1e-2
nl_abs_tol = 1e-2
start_time = 0
n_startup_steps = 1
end_time = 12697021
dtmax = 2e5
dtmin = 0.25
[./TimeStepper]
type = IterationAdaptiveDT
dt = 5000
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.55 # rod height
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[../]
[./ave_pore]
type = ElementAverageValue
variable = pore
[../]
[./max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[../]
[./min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[../]
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = MK-II_sub_old_bubble_gb_lim.i
[../]
[]
[Transfers]
[./temp_to_sub]
type = MultiAppProjectionTransfer
direction = to_multiapp
multi_app = sub
source_variable = temp
variable = temp
[../]
[./pore_from_sub]
type = MultiAppInterpolationTransfer
direction = from_multiapp
multi_app = sub
source_variable = pore
variable = pore
[../]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temp disp_x disp_y'
[]
examples/tensor_mechanics/1.5D_rodlet_10pellets/Smeared_1.5D.i
# Model is of a 10 pellet stack of fuel modeled in 1.5d
[GlobalParams]
density = 10431.0
initial_porosity = 0.05
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
displacements = disp_x
temperature = temperature
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x temperature'
reference_residual_variables = 'saved_x saved_t'
[]
[Mesh]
type = Layered1DMesh
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
slices_per_block = 10
clad_gap_width = 8.0e-5
clad_thickness = 0.00056
fuel_height = 0.1186
plenum_height = 0.027
[]
[UserObjects]
[./pin_geometry]
type = Layered1DFuelPinGeometry
[../]
[]
[Variables]
[./temperature]
initial_condition = 580.0 # set initial temperature to coolant inlet
[../]
[]
[AuxVariables]
[./disp_y] ## Required for easier visualization in Paraview
[../]
[./disp_z] ## Required for easier visualization in Paraview
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = fuel
initial_condition = 10e-6
[../]
[./creep_strain_rate]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./creep_strain]
order = CONSTANT
family = MONOMIAL
block = clad
[../]
[./solid_swell]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./gas_swell]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./densification]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./relocation]
order = CONSTANT
family = MONOMIAL
block = fuel
[../]
[./saved_x]
[../]
[./saved_t]
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 15.5e6
fuel_pin_geometry = pin_geometry
[../]
[./fuel_axial_pressure]
type = ParsedFunction
value = plenum_pressure
vars = plenum_pressure
vals = plenum_pressure
[../]
[]
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temperature
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temperature
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temperature
block = fuel # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Modules]
[./TensorMechanics]
[./Layered1DMaster]
[./fuel]
block = fuel
add_variables = true
strain = FINITE
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
out_of_plane_pressure = fuel_axial_pressure
eigenstrain_names = 'fuelthermal_strain swelling_strain fuel_relocation_strain'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress strain_xx'
save_in = saved_x
outputs = none
add_scalar_vars_to_reference_residual = true
group_scalar_vars_in_reference_residual = true
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
out_of_plane_pressure = clad_axial_pressure
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress strain_xx'
save_in = saved_x
outputs = none
add_scalar_vars_to_reference_residual = true
group_scalar_vars_in_reference_residual = true
[../]
[../]
[../]
[]
[Burnup]
[./burnup]
block = fuel
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
order = CONSTANT
family = MONOMIAL
fuel_pin_geometry = pin_geometry
fuel_volume_ratio = 1.0 # for use with dished pellets (ratio of actual volume to cylinder volume)
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temp = temperature
execute_on = linear
[../]
[./creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain
block = clad
execute_on = timestep_end
[../]
[./creep_strain_rate]
type = MaterialRealAux
property = creep_rate
variable = creep_strain_rate
block = clad
[../]
[./solid_swell]
type = MaterialRealAux
variable = solid_swell
property = solid_swelling
execute_on = timestep_end
block = fuel
[../]
[./gas_swell]
type = MaterialRealAux
variable = gas_swell
property = gas_swelling
execute_on = timestep_end
block = fuel
[../]
[./densification]
type = MaterialRealAux
variable = densification
property = densification
execute_on = timestep_end
block = fuel
[../]
[./volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
execute_on = timestep_end
block = fuel
[../]
[./relocation_strain]
type = MaterialRealAux
variable = relocation
property = relocation_strain
execute_on = timestep_end
block = fuel
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = kinematic
model = frictionless
system = Constraint
penalty = 1e7
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temperature
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
contact_pressure = contact_pressure
[../]
[]
[BCs]
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = 2
function = pressure_ramp # use the pressure_ramp function defined above
factor = 15.5e6
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.314
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
variable = temperature
boundary = 2
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = fuel
thermal_conductivity_model = NFIR
temp = temperature
burnup_function = burnup
[../]
[./fuel_density]
type = Density
block = fuel
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[../]
[./fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 295.0
eigenstrain_name = fuelthermal_strain
[../]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = fuel
gas_swelling_model_type = SIFGRS
burnup_function = burnup
initial_fuel_density = 10431.0
eigenstrain_name = swelling_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup_function = burnup
fuel_pin_geometry = pin_geometry
linear_heat_rate_function = q
relocation_activation1 = 5000.0
burnup_relocation_stop = 0.024
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = fuel
temp = temperature
burnup_function = burnup
gbs_model = true
grain_radius = grain_radius
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
block = clad
tangent_operator = elastic
inelastic_models = 'zrycreep'
[../]
[./zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./clad_irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temperature
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-5
nl_abs_tol = 1e-7
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
growth_factor = 2
cutback_factor = .5
[../]
[]
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temperature
execute_on = 'initial linear'
fuel_pin_geometry = pin_geometry
[../]
[./clad_inner_vol] # volume inside of cladding
type = LayeredInternalVolumePostprocessor
boundary = 7
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
execute_on = 'initial linear'
#outputs = exodus
[../]
[./pellet_volume] # fuel pellet total volume
type = LayeredInternalVolumePostprocessor
boundary = 8
# scale_factor = -1
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
execute_on = 'initial linear'
#outputs = exodus
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = LayeredSideAverageValuePostprocessor
boundary = 7
variable = temperature
fuel_pin_geometry = pin_geometry
execute_on = 'initial linear'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[../]
[./fisson_gas_release]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
[../]
[./gas_volume]
type = LayeredInternalVolumePostprocessor
boundary = 9
execute_on = 'initial linear'
component = 0
out_of_plane_strain = strain_yy
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = LayeredSideFluxIntegralPostprocessor
variable = temperature
boundary = 5
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = LayeredSideFluxIntegralPostprocessor
variable = temperature
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[../]
[./_dt] # time step
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = fuel
fuel_pin_geometry = pin_geometry
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[../]
[./ave_fuel_temp]
type = ElementAverageValue
block = fuel
variable = temperature
[../]
[./central_fuel_temp]
type = NodalVariableValue
nodeid = 262 #Mesh dependent (0.0041, 0.05661)
variable = temperature
[../]
[./max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temperature
[../]
[./max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temperature
[../]
### Comparisons for 1.5D work, mesh specific #################### # von Mises Stress
[./top_vonMises_fuel]
type = ElementalVariableValue
elementid = 171 # mesh dependent (contains pt. 0.0041, 0.09219)
variable = vonmises_stress
[../]
[./center_vonMises_fuel]
type = ElementalVariableValue
elementid = 123 # mesh dependent (contains pt. 0.0041, 0.05661)
variable = vonmises_stress
[../]
[./bottom_vonMises_fuel]
type = ElementalVariableValue
elementid = 75 # mesh dependent (contains pt. 0.0041, 0.02103)
variable = vonmises_stress
[../]
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = fuel
[../]
[./top_vonMises_clad_inner]
type = ElementalVariableValue
elementid = 28 # mesh dependent (contains pt. 0.00418, 0.09219)
variable = vonmises_stress
[../]
[./top_vonMises_clad_outer]
type = ElementalVariableValue
elementid = 31 # mesh dependent (contains pt. 0.00474, 0.09219)
variable = vonmises_stress
[../]
[./center_vonMises_clad_inner]
type = ElementalVariableValue
elementid = 16 # mesh dependent (contains pt. 0.00418, 0.05661)
variable = vonmises_stress
[../]
[./center_vonMises_clad_outer]
type = ElementalVariableValue
elementid = 19 # mesh dependent (contains pt. 0.00474, 0.05661)
variable = vonmises_stress
[../]
[./bottom_vonMises_clad_inner]
type = ElementalVariableValue
elementid = 4 # mesh dependent (contains pt. 0.00418, 0.02103)
variable = vonmises_stress
[../]
[./bottom_vonMises_clad_outer]
type = ElementalVariableValue
elementid = 7 # mesh dependent (contains pt. 0.00474, 0.02103)
variable = vonmises_stress
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[../]
# radial stress
[./top_stress_rr_fuel]
type = ElementalVariableValue
elementid = 171 # mesh dependent (contains pt. 0.0041, 0.09219)
variable = stress_xx
[../]
[./center_stress_rr_fuel]
type = ElementalVariableValue
elementid = 123 # mesh dependent (contains pt. 0.0041, 0.05661)
variable = stress_xx
[../]
[./bottom_stress_rr_fuel]
type = ElementalVariableValue
elementid = 75 # mesh dependent (contains pt. 0.0041, 0.02103)
variable = stress_xx
[../]
[./average_stress_rr_fuel]
type = ElementAverageValue
variable = stress_xx
block = fuel
[../]
[./top_stress_rr_clad_inner]
type = ElementalVariableValue
elementid = 28 # mesh dependent (contains pt. 0.00418, 0.09219)
variable = stress_xx
[../]
[./top_stress_rr_clad_outer]
type = ElementalVariableValue
elementid = 31 # mesh dependent (contains pt. 0.00474, 0.09219)
variable = stress_xx
[../]
[./center_stress_rr_clad_inner]
type = ElementalVariableValue
elementid = 16 # mesh dependent (contains pt. 0.00418, 0.05661)
variable = stress_xx
[../]
[./center_stress_rr_clad_outer]
type = ElementalVariableValue
elementid = 19 # mesh dependent (contains pt. 0.00474, 0.05661)
variable = stress_xx
[../]
[./bottom_stress_rr_clad_inner]
type = ElementalVariableValue
elementid = 4 # mesh dependent (contains pt. 0.00418, 0.02103)
variable = stress_xx
[../]
[./bottom_stress_rr_clad_outer]
type = ElementalVariableValue
elementid = 7 # mesh dependent (contains pt. 0.00474, 0.02103)
variable = stress_xx
[../]
[./average_stress_rr_clad]
type = ElementAverageValue
variable = stress_xx
block = clad
[../]
# radial strain
[./top_strain_rr_fuel]
type = ElementalVariableValue
elementid = 171 # mesh dependent (contains pt. 0.0041, 0.09219)
variable = strain_xx
[../]
[./center_strain_rr_fuel]
type = ElementalVariableValue
elementid = 123 # mesh dependent (contains pt. 0.0041, 0.05661)
variable = strain_xx
[../]
[./bottom_strain_rr_fuel]
type = ElementalVariableValue
elementid = 75 # mesh dependent (contains pt. 0.0041, 0.02103)
variable = strain_xx
[../]
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = strain_xx
block = fuel
[../]
[./top_strain_rr_clad_inner]
type = ElementalVariableValue
elementid = 28 # mesh dependent (contains pt. 0.00418, 0.09219)
variable = strain_xx
[../]
[./top_strain_rr_clad_outer]
type = ElementalVariableValue
elementid = 31 # mesh dependent (contains pt. 0.00474, 0.09219)
variable = strain_xx
[../]
[./center_strain_rr_clad_inner]
type = ElementalVariableValue
elementid = 16 # mesh dependent (contains pt. 0.00418, 0.05661)
variable = strain_xx
[../]
[./center_strain_rr_clad_outer]
type = ElementalVariableValue
elementid = 19 # mesh dependent (contains pt. 0.00474, 0.05661)
variable = strain_xx
[../]
[./bottom_strain_rr_clad_inner]
type = ElementalVariableValue
elementid = 4 # mesh dependent (contains pt. 0.00418, 0.02103)
variable = strain_xx
[../]
[./bottom_strain_rr_clad_outer]
type = ElementalVariableValue
elementid = 7 # mesh dependent (contains pt. 0.00474, 0.02103)
variable = strain_xx
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = strain_xx
block = clad
[../]
# effective creep strain
[./top_creep_strain_clad_inner]
type = ElementalVariableValue
elementid = 28 # mesh dependent (contains pt. 0.00418, 0.09219)
variable = creep_strain
[../]
[./top_creep_strain_clad_outer]
type = ElementalVariableValue
elementid = 31 # mesh dependent (contains pt. 0.00474, 0.09219)
variable = creep_strain
[../]
[./center_creep_strain_clad_inner]
type = ElementalVariableValue
elementid = 16 # mesh dependent (contains pt. 0.00418, 0.05661)
variable = creep_strain
[../]
[./center_creep_strain_clad_outer]
type = ElementalVariableValue
elementid = 19 # mesh dependent (contains pt. 0.00474, 0.05661)
variable = creep_strain
[../]
[./bottom_creep_strain_clad_inner]
type = ElementalVariableValue
elementid = 4 # mesh dependent (contains pt. 0.00418, 0.02103)
variable = creep_strain
[../]
[./bottom_creep_strain_clad_outer]
type = ElementalVariableValue
elementid = 7 # mesh dependent (contains pt. 0.00474, 0.02103)
variable = creep_strain
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = creep_strain
block = clad
[../]
### Nodal displacements
[./top_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 361 # mesh dependent, at (0.0041, 0.09219)
[../]
[./center_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 262 # mesh dependent, at (0.0041, 0.05661)
[../]
[./bottom_disp_r_fuel]
type = NodalVariableValue
variable = disp_x
nodeid = 163 # mesh dependent, at (0.0041, 0.02103)
[../]
[./top_disp_r_clad_inner]
type = NodalVariableValue
variable = disp_x
nodeid = 63 #mesh dependent, at (0.00418, 0.09219)
[../]
[./top_disp_r_clad_outer]
type = NodalVariableValue
variable = disp_x
nodeid = 68 #mesh dependent, at (0.00474, 0.09219)
[../]
[./center_disp_r_clad_inner]
type = NodalVariableValue
variable = disp_x
nodeid = 36 #mesh dependent, at (0.00418, 0.05661)
[../]
[./center_disp_r_clad_outer]
type = NodalVariableValue
variable = disp_x
nodeid = 43 #mesh dependent, at (0.00474, 0.05661)
[../]
[./bottom_disp_r_clad_inner]
type = NodalVariableValue
variable = disp_x
nodeid = 9 #mesh dependent, at (0.00418, 0.02103)
[../]
[./bottom_disp_r_clad_outer]
type = NodalVariableValue
variable = disp_x
nodeid = 16 #mesh dependent, at (0.00418, 0.02103)
[../]
### Nodal temperatures
[./top_temp_fuel]
type = NodalVariableValue
variable = temperature
nodeid = 361 # mesh dependent, at (0.0041, 0.09219)
[../]
[./center_temp_fuel]
type = NodalVariableValue
variable = temperature
nodeid = 262 # mesh dependent, at (0.0041, 0.05661)
[../]
[./bottom_temp_fuel]
type = NodalVariableValue
variable = temperature
nodeid = 163 # mesh dependent, at (0.0041, 0.02103)
[../]
[./top_temp_clad_inner]
type = NodalVariableValue
variable = temperature
nodeid = 63 #mesh dependent, at (0.00418, 0.09219)
[../]
[./top_temp_clad_outer]
type = NodalVariableValue
variable = temperature
nodeid = 68 #mesh dependent, at (0.00474, 0.09219)
[../]
[./center_temp_clad_inner]
type = NodalVariableValue
variable = temperature
nodeid = 36 #mesh dependent, at (0.00418, 0.05661)
[../]
[./center_temp_clad_outer]
type = NodalVariableValue
variable = temperature
nodeid = 43 #mesh dependent, at (0.00474, 0.05661)
[../]
[./bottom_temp_clad_inner]
type = NodalVariableValue
variable = temperature
nodeid = 9 #mesh dependent, at (0.00418, 0.02103)
[../]
[./bottom_temp_clad_outer]
type = NodalVariableValue
variable = temperature
nodeid = 16 #mesh dependent, at (0.00418, 0.02103)
[../]
### Nodal penetration
[./top_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 361 # mesh dependent, at (0.0041, 0.09219)
[../]
[./center_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 262 # mesh dependent, at (0.0041, 0.05661)
[../]
[./bottom_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 163 # mesh dependent, at (0.0041, 0.02103)
[../]
### Nodal contact pressure
[./top_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 361 # mesh dependent, at (0.0041, 0.09219)
[../]
[./center_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 262 # mesh dependent, at (0.0041, 0.05661)
[../]
[./bottom_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 163 # mesh dependent, at (0.0041, 0.02103)
[../]
### End of 1.5D comparisons
[./center_effective_creep_rate_inner]
type = ElementalVariableValue
elementid = 16 # mesh dependent
variable = creep_strain_rate
[../]
[./center_effective_creep_rate_outer]
type = ElementalVariableValue
elementid = 19 # mesh dependent
variable = creep_strain_rate
[../]
[./effective_creep_strain_rate]
type = ElementAverageValue
variable = creep_strain_rate
block = clad
[../]
[./solid_swelling]
type = ElementAverageValue
variable = solid_swell
block = fuel
[../]
[./gas_swelling]
type = ElementAverageValue
variable = gas_swell
block = fuel
[../]
[./densification]
type = ElementAverageValue
variable = densification
block = fuel
[../]
[./volumetric_swelling]
type = ElementAverageValue
variable = volumetric_swelling_strain
block = fuel
[../]
[./relocation]
type = ElementAverageValue
variable = relocation
block = fuel
[../]
[]
[VectorPostprocessors]
[./clad]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'clad_radial_displacement'
[../]
[./pellet]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'fuel_radial_displacement'
[../]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[./clad_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[]
test/tests/ifba_he_production/doc/fill_gas_xenon.i
#
# 2-D RZ One Pellet Test - Using Xenon as fill gas
#
# This test is of a single pellet with cladding and a specified initial
# pressure of Xe fill gas.
#
# This model results in a upper limit for the interior_temp due to the type of
# fill gas used.
#
[GlobalParams]
density = 10431.0 #95% TD (TD = 10980)
disp_x = disp_x
disp_y = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
ny_p = 4
nx_p = 6
nx_c = 3
ny_cu = 3
ny_c = 4
ny_cl = 3
clad_thickness = 5.6e-4
pellet_outer_radius = 0.0041
pellet_height = 0.01
pellet_quantity = 1
clad_bot_gap_height = 1e-3
top_bot_clad_height = 2.24e-3
clad_gap_width = 8e-5
plenum_fuel_ratio = 0.150
elem_type = QUAD8
displacements = 'disp_x disp_y'
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 298
[../]
[]
[AuxVariables]
[./fission_rate]
block = '3'
[../]
[./burnup]
block = '3'
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./grain_radius]
block = '3'
initial_condition = 5e-6 # must be the same as the initial value in Sifgr
[../]
[./gas_swell]
order = CONSTANT
family = MONOMIAL
block = '3'
[../]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[./pid]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[]
[Functions]
[./power_history]
# CoolantChannel requires this to have units while axial_peaking_factors must be normalized.
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 20e3 # 20 kW/m peak power.
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./coolant_pressure_ramp]
type = PiecewiseLinear
x = '0 10000'
y = '0 1'
[../]
[./q] # this is for fuel_relocation
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3'
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable= fission_rate
block = '3'
#convert W/m from power profile to fission/m**3-s
#calculated as 1/(energy_per_fission*area)
#using energy_per_fission = 3.2e-11, consistent with 200 MeV/fission
value = 5.3548e+14
function = q
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = '3'
fission_rate = fission_rate
molecular_weight = 0.270
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
# If you divide flux/power, you get this constant factor
factor = 2.34e+13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./gas_swell]
type = MaterialRealAux
block = '3'
variable = gas_swell
property = deltav_v0_bd
execute_on = timestep_end
[../]
[./pid]
type = ProcessorIDAux
variable = pid
[../]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
penalty = 1e+14 #1e7
model = frictionless
tangential_tolerance = 5e-4
normal_smoothing_distance = 0.1
normalize_penalty = true
[../]
[]
[ThermalContact]
[./pellet_clad_thermal]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
gas_released = fis_gas_released
initial_moles = initial_moles
jump_distance_model = KENNARD
interaction_layer = 1
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_fractions = '0 0 0 1.0 0 0 0 0 0 0' # Xe fill gas
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
emissivity_fuel = 0.8
emissivity_clad = 0.8
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
# pin entire clad bottom in y
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
# pin fuel bottom in y
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
# pin fuel axis in x and z
[./no_x_fuel]
type = DirichletBC
variable = disp_x
boundary = 1005
value = 0.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '2'
factor = 15.5e6
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 0.50e6
startup_time = 0.0
material_input = fis_gas_released
output_initial_moles = initial_moles
R = 8.3143
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
execute_on = 'initial linear'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '2'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # PA
inlet_massflux = 3880 # kg/m^2-sec
rod_diameter = 0.95e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = '3'
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_swelling]
type = VSwellingUO2
block = '3'
temp = temp
burnup = burnup
gas_swelling_type = sifgrs
[../]
[./fuel_solid_mechanics_elastic]
type = Elastic
block = '3'
disp_r = disp_x
disp_z = disp_y
temp = temp
youngs_modulus = 2.e11
poissons_ratio = 0.345
thermal_expansion = 10.0e-6
dep_matl_props = deltav_v0_bd
[../]
[./fission_gas_release]
type = Sifgrs
block = '3'
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
diff_coeff_option = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = SolidModel
block = 1
disp_r = disp_x
disp_z = disp_y
temp = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
constitutive_model = clad_plasticity
[../]
[./clad_growth]
type = IrradiationGrowthZr4
block = 1
fast_neutron_fluence = fast_neutron_fluence
growth_direction = 1
[../]
[./clad_plasticity]
type = IsotropicPlasticity
block = 1
temp = temp
yield_stress = 550e6
hardening_constant = 2.5e9
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '3'
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 25.0
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x'
off_diag_column = 'disp_x'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 25
nl_max_its = 40
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8
dtmax = 1.0e6
dtmin = 1.0
end_time = 2.0e7 # Stop run before contact between pellet and clad occurs
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e3
optimal_iterations = 30
iteration_window = 4
time_t = '0 1e4 1e8'
time_dt = '1e4 1e5 1e6'
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
verbose = true
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial timestep_end'
[../]
[./interior_temp]
type = SideAverageValue
boundary = 9 # cladding interior and pellet exterior
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = '3'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = '3'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
[../]
[./power_history]
type = FunctionValuePostprocessor
function = power_history
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./dt]
type = TimestepSize
[../]
[./residual]
type = Residual
[../]
[./nl_its]
type = NumNonlinearIterations
[../]
[./lin_its]
type = NumLinearIterations
[../]
[./average_burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[../]
[./burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[../]
[./average_fissionrate]
type = ElementAverageValue
block = '3'
variable = fission_rate
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.01 # change: length of fuel stack in meters (1 pellet height)
[../]
[]
[Outputs]
interval = 1
exodus = false
[./console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[../]
[./out]
type = CSV
delimiter = ' '
[../]
[]
assessment/LWR/validation/LOCA_IFA_650/analysis/IFA_650.2/SM/IFA_650_2.i
[GlobalParams]
density = 10412 # 0.95TD UO2, TD=10960
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = mesh_ife6502_medium2.e
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.
[../]
[]
[AuxVariables]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./grain_radius]
initial_condition = 5.e-06 # !! assumption
[../]
[./max_fission_rate]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase] # Fraction of beta phase in Zry
order = CONSTANT
family = MONOMIAL
[../]
[./scale_thickness] # ZrO2 scale thickness (m)
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfract_total] # Current oxigen weight fraction (oxide+metal) (/)
order = CONSTANT
family = MONOMIAL
[../]
[./oxywtfgain_total] # Gained oxigen weight fraction (oxide+metal) (/)
order = CONSTANT
family = MONOMIAL
[../]
[./burst_stress] # Hoop stress at cladding burst
order = CONSTANT
family = MONOMIAL
[../]
[./bursted] # Did cladding burst occur?
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
[../]
[./rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
[../]
[./sat_coverage]
order = CONSTANT
family = MONOMIAL
[../]
[./GBCoverage]
order = CONSTANT
family = MONOMIAL
[../]
[./deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./average_linear_heat_rate]
type = PiecewiseLinear
data_file = linear_heat_rate_av.csv
format = columns
scale_factor = 1
[../]
[./axial_power_peaking_factors]
type = PiecewiseBilinear
data_file = axial_peaking_factors_lhr.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./q]
type = CompositeFunction
functions = 'average_linear_heat_rate axial_power_peaking_factors'
[../]
[./average_clad_outer_temperature]
type = PiecewiseLinear
data_file = temperature_clad_outer_av.csv
format = columns
scale_factor = 1
[../]
[./axial_temperature_peaking_factors]
type = PiecewiseBilinear
data_file = axial_peaking_factors_ctemp.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./clad_outer_temperature]
type = CompositeFunction
functions = 'average_clad_outer_temperature axial_temperature_peaking_factors'
[../]
[./coolant_pressure]
type = PiecewiseLinear
data_file = pressure_rig.csv
format = columns
scale_factor = 1
[../]
[]
[SolidMechanics]
[./solid]
disp_x = disp_x
disp_y = disp_y
temp = temp
[../]
[]
[Kernels]
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
#save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
#save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
#save_in = saved_t
block = pellet_type_2
fission_rate = fission_rate
decay_heat_function = decay_heat_function # Couple to postprocessor which defines the decay heat function
max_fission_rate = max_fission_rate # Couple to auxvariable which defines maximum fission rate over irradiation
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_2
rod_ave_lin_pow = average_linear_heat_rate
axial_power_profile = axial_power_peaking_factors
num_radial = 80
num_axial = 11
a_lower = 28.5e-03 # mesh dependent
a_upper = 528.5e-03 # mesh dependent
fuel_inner_radius = 0.
fuel_outer_radius = 4.145e-03
fuel_volume_ratio = 1. # for use with dished pellets (ratio of actual volume to cylinder volume)
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = average_linear_heat_rate
axial_power_profile = axial_power_peaking_factors
factor = 3.e+13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_2
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./max_fission_rate]
type = MaxFissionRateAux
variable = max_fission_rate
block = pellet_type_2
fission_rate = fission_rate
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises_stress
quantity = vonmises
execute_on = timestep_end
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
quantity = hoop
execute_on = timestep_end
[../]
[./creep_rate]
type = MaterialRealAux
block = clad
variable = creep_rate
property = creep_rate
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = total_strain
variable = hoop_strain
quantity = hoop
execute_on = timestep_end
[../]
[./fract_bphase]
type = MaterialRealAux
block = clad
variable = fract_beta_phase
property = fract_beta_phase
[../]
[./scl_thickness]
type = MaterialRealAux
boundary = 2
variable = scale_thickness
property = oxide_scale_thickness
[../]
[./ofract_total]
type = MaterialRealAux
boundary = 2
variable = oxywtfract_total
property = current_oxygen_weight_frac_total
[../]
[./ofgain_total]
type = MaterialRealAux
boundary = 2
variable = oxywtfgain_total
property = oxygen_weight_frac_gained_total
[../]
[./sigmaburst]
type = MaterialRealAux
boundary = 2
variable = burst_stress
property = burst_stress
[../]
[./hasbursted]
type = MaterialRealAux
boundary = 2
variable = bursted
property = failed
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
boundary = 10
property = gap_conductance
variable = gap_cond
[../]
[./nbbl2]
type = MaterialRealAux
block = pellet_type_2
variable = bbl_bdr_2
property = bbl_bdr_2
[../]
[./radbbl]
type = MaterialRealAux
block = pellet_type_2
variable = rad_bbl_bdr
property = rad_bbl_bdr
[../]
[./stcvrg]
type = MaterialRealAux
block = pellet_type_2
variable = sat_coverage
property = sat_coverage
[../]
[./frcvrg]
type = MaterialRealAux
block = pellet_type_2
variable = GBCoverage
property = GBCoverage
[../]
[./dvv0bd]
type = MaterialRealAux
block = pellet_type_2
variable = deltav_v0_bd
property = deltav_v0_bd
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
disp_x = disp_x
disp_y = disp_y
penalty = 1.e+07
[../]
[]
#TODO: Add option in StandardLWRFuelRodOutputs to compute plenum temperature this way.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.
[../]
[./clad_outer_temperature]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_outer_temperature
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
function = coolant_pressure # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 4.e+06
startup_time = -200
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = pellet_type_2
disp_r = disp_x
disp_z = disp_y
[../]
[./fuel_thermal]
type = ThermalFuel
block = pellet_type_2
thermal_conductivity_model = FINK_LUCUTA
temp = temp
burnup_function = burnup
[../]
[./fuel_solid_mechanics_swelling]
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = pellet_type_2
temp = temp
burnup_function = burnup
tensor_mechanics_compatibility = true
[../]
[./fuel_solid_mechanics]
type = Elastic
block = pellet_type_2
disp_r = disp_x
disp_z = disp_y
temp = temp
youngs_modulus = 2.e+11
poissons_ratio = .345
thermal_expansion = 10.e-06
stress_free_temperature = 295.0
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_2
burnup_function = burnup
diameter = 0.00829
q = q
gap = 70.e-06 # diametral gap
burnup_relocation_stop = 1.e+20
tensor_mechanics_compatibility = true
[../]
[./fission_gas]
type = Sifgrs
block = pellet_type_2
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup_function = burnup
transient_option = 1 #2
[../]
[./clad_density]
type = Density
block = clad
density = 6550.
disp_r = disp_x
disp_z = disp_y
[../]
[./clad_thermal]
block = clad
type = ThermalZry
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = clad
disp_r = disp_x
disp_z = disp_y
youngs_modulus = 1.e+11
poissons_ratio = 0.3
temp = temp
constitutive_model = clad_creep
formulation = NonlinearRZ
increment_calculation = eigen
model_irradiation_growth = false
[../]
[./clad_creep]
type = CreepZryModel
block = clad
temp = temp
model_irradiation_creep = false
model_primary_creep = false
model_thermal_creep = false
model_thermal_creep_loca = true
#time_loca_begin = 219920.5
max_inelastic_increment = 3.e-03
compute_material_timestep_limit = true
[../]
#[./clad_plasticity]
# type = IsotropicPlasticity
# block = clad
# temp = temp
# yield_stress = 5.e+08
# hardening_constant = 2.5e+09
#[../]
[./clad_irrgrowth]
type = IrradiationGrowthZr4
block = clad
fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_phase]
type = ZrPhase
block = clad
temperature = temp
numerical_method = 2
[../]
[./clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temp
clad_inner_radius = 4.18e-03
clad_outer_radius = 4.75e-03
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
#use_coolant_channel = true
[../]
[./clad_failure_criterion]
type = FailureCladding
boundary = 2
criterion = 2
hoop_stress = hoop_stress
eff_strain_rate_creep = creep_rate
#eff_strain_rate_plast =
temperature = temp
fract_beta_phase = fract_beta_phase
fract_oxygen_gain = oxywtfgain_total
[../]
[./uo2nat_thermal]
type = HeatConductionMaterial
block = 'pellet_type_1 pellet_type_3'
thermal_conductivity = 3. # !! assumption
specific_heat = 300. # !! assumption
[../]
[./uo2nat_density]
type = Density
block = 'pellet_type_1 pellet_type_3'
disp_r = disp_x
disp_z = disp_y
[../]
[./uo2nat_elastic]
type = Elastic
block = 'pellet_type_1 pellet_type_3'
temp = temp
disp_r = disp_x
disp_z = disp_y
youngs_modulus = 2.e+11
poissons_ratio = .345
thermal_expansion = 10.e-06
stress_free_temperature = 295.0
formulation = NonlinearRZ
increment_calculation = eigen
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1.e-05
variable = disp_x
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 1.e-02
nl_max_its = 15
nl_rel_tol = 1.e-04
nl_abs_tol = 1.e-10
start_time = -200
n_startup_steps = 1
end_time = 229440
dtmax = 2700. #1000.
dtmin = 0.00000001
[./TimeStepper]
type = IterationAdaptiveDT
dt = 200.
#optimal_iterations = 4
#iteration_window = 2
#linear_iteration_ratio = 100
timestep_limiting_function = average_clad_outer_temperature
max_function_change = 10
timestep_limiting_postprocessor = material_timestep
time_t = '-200. 0. 3.5e+04 216000. 218700. 219180. 219240. 219799. 219819. 219821. 219999.'
time_dt = ' 200. 900. 2700. 2700. 60. 60. 20. 20.
10. 10. 2.'
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'bursted > 0'
[../]
[]
[Postprocessors]
[./decay_heat_function]
type = DecayHeatFunction
time_at_shutdown = 100000001.
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./max_clad_temp]
type = NodalExtremeValue
value_type = max
variable = temp
block = clad
execute_on = 'initial timestep_end'
[../]
[./max_fuel_temp]
type = NodalExtremeValue
value_type = max
variable = temp
block = pellet_type_2
execute_on = 'initial timestep_end'
[../]
[./central_fuel_temp]
type = NodalVariableValue
variable = temp
nodeid = 54 # Global node ID = 55 !! Mesh dependent
execute_on = 'initial timestep_end'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on = 'initial linear'
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on = 'initial linear'
[../]
[./alhr_input]
type = FunctionValuePostprocessor
function = average_linear_heat_rate
[../]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = clad
[../]
[./max_betaph_fract]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
block = clad
execute_on = 'initial timestep_end'
[../]
[./max_oxygen_fract]
type = ElementExtremeValue
block = clad
value_type = max
variable = oxywtfract_total
execute_on = 'initial timestep_end'
[../]
[./max_oxygen_fgain]
type = ElementExtremeValue
block = clad
value_type = max
variable = oxywtfgain_total
execute_on = 'initial timestep_end'
[../]
[./max_creep_rate]
type = ElementExtremeValue
value_type = max
variable = creep_rate
block = clad
execute_on = 'initial timestep_end'
[../]
[./max_creep_strain_mag]
type = ElementExtremeValue
value_type = max
variable = creep_strain_mag
block = clad
execute_on = 'initial timestep_end'
[../]
[./max_hoop_strain]
type = ElementExtremeValue
value_type = max
variable = hoop_strain
block = clad
execute_on = 'initial timestep_end'
[../]
[./max_hoop_stress]
type = ElementExtremeValue
value_type = max
variable = hoop_stress
block = clad
execute_on = 'initial timestep_end'
[../]
[./bursted]
type = ElementExtremeValue
value_type = max
variable = bursted
block = clad
execute_on = 'initial timestep_end'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_2
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
print_linear_residuals = true
csv = true
[./console]
type = Console
output_linear = true
max_rows = 25
[../]
[./out_vector_pp]
execute_vector_postprocessors_on = 'timestep_end'
type = CSV
[../]
[]
test/tests/ifba_he_production/fill_gas_xenon_w_ifba.i
#
# 2-D RZ One Pellet Test - IFBA using Xenon as fill gas
#
# This test is of a single pellet with cladding and a specified initial
# pressure of Xe fill gas. In addition, an IFBA layer is added which will
# generate He gas to be added to the plenum. The postprocessor interior_temp
# should be the same as the pure Xe test case initially and as the He gas is
# added to the plenum from the IFBA, the interior_temp value should approach
# the He fill gas test case (both in the doc subdirectory).
#
# This model demonstrates that the gas conductance for the plenum is being
# updated for the He gas generated by the IFBA layer.
#
[GlobalParams]
density = 10431.0 #95% TD (TD = 10980)
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
ny_p = 4
nx_p = 6
nx_c = 3
ny_cu = 3
ny_c = 4
ny_cl = 3
clad_thickness = 5.6e-4
pellet_outer_radius = 0.0041
pellet_height = 0.01
pellet_quantity = 1
clad_bot_gap_height = 1e-3
top_bot_clad_height = 2.24e-3
clad_gap_width = 8e-5
plenum_fuel_ratio = 0.150
elem_type = QUAD8
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 298
[../]
[]
[AuxVariables]
[./fission_rate]
block = '3'
[../]
[./burnup]
block = '3'
[../]
[./grain_radius]
block = '3'
initial_condition = 5e-6 # must be the same as the initial value in Sifgr
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[]
[Functions]
[./power_history]
# CoolantChannel requires this to have units while axial_peaking_factors must be normalized.
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 20e3 # 20 kW/m peak power.
[../]
[./coolant_pressure_ramp]
type = PiecewiseLinear
x = '0 10000'
y = '0 1'
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3'
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fissionrate]
type = FissionRateAux
variable= fission_rate
block = '3'
#convert W/m from power profile to fission/m**3-s
#calculated as 1/(energy_per_fission*area)
#using energy_per_fission = 3.2e-11, consistent with 200 MeV/fission
value = 5.3548e+14
function = power_history
[../]
[./burnup]
type = BurnupAux
variable = burnup
block = '3'
fission_rate = fission_rate
molecular_weight = 0.270
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3'
variable = grain_radius
temp = temp
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
system = Constraint
penalty = 1e+14 #1e7
model = frictionless
tangential_tolerance = 5e-4
normal_smoothing_distance = 0.1
normalize_penalty = true
[../]
[]
[ThermalContact]
[./pellet_clad_thermal]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
gas_released = 'fis_gas_released he_prod'
initial_moles = initial_moles
jump_distance_model = KENNARD
interaction_layer = 1
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_fractions = '0 0 0 1.0 0 0 0 0 0 0' # Xe fill gas
# First set of fractions for fission gas release, second set for IFBA He gas
gas_released_fractions = '0 0 0.153 0.847 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0'
roughness_coef = 3.2
roughness_clad = 1e-6
roughness_fuel = 2e-6
emissivity_fuel = 0.8
emissivity_clad = 0.8
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
# pin entire clad bottom in y
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
# pin fuel bottom in y
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
# pin fuel axis in x and z
[./no_x_fuel]
type = DirichletBC
variable = disp_x
boundary = 1005
value = 0.0
[../]
# apply temperature BC on clad surface
[./Clad_Temp]
type = DirichletBC
variable = temp
boundary = '2'
value = 580.0
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '2'
factor = 15.5e6
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 0.50e6
startup_time = 0.0
material_input = 'fis_gas_released he_prod'
output_initial_moles = initial_moles
R = 8.3143
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
save_in = 'saved_x saved_y'
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = '3'
temp = temp
burnup = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_solid_mechanics_elastic]
type = Elastic
block = '3'
disp_r = disp_x
disp_z = disp_y
temp = temp
youngs_modulus = 2.e11
poissons_ratio = 0.345
thermal_expansion = 10.0e-6
dep_matl_props = deltav_v0_bd
[../]
[./fission_gas_release]
type = Sifgrs
block = '3'
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
diff_coeff_option = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics_elastic]
type = Elastic
block = '1'
disp_r = disp_x
disp_z = disp_y
temp = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '3'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 25
nl_max_its = 40
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8
dtmax = 1.0e6
dtmin = 1.0
end_time = 5.3e7 # 1.7 years (~3% burnup)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e3
optimal_iterations = 30
iteration_window = 4
time_t = '0 1e4 1e8'
time_dt = '1e4 1e5 1e6'
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = fifth
side_order = seventh
[../]
verbose = true
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial linear'
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./interior_temp]
type = SideAverageValue
boundary = 9 # cladding interior and pellet exterior
variable = temp
execute_on = 'initial linear'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = '3'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = '3'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
[../]
[./power_history]
type = FunctionValuePostprocessor
function = power_history
[../]
[./dt]
type = TimestepSize
[../]
[./residual]
type = Residual
[../]
[./nl_its]
type = NumNonlinearIterations
[../]
[./lin_its]
type = NumLinearIterations
[../]
[./average_burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[../]
[./burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[../]
[./average_fissionrate]
type = ElementAverageValue
block = '3'
variable = fission_rate
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.01 # change: length of fuel stack in meters (1 pellet height)
[../]
[./he_prod]
type = IFBAHeProduction
zrb2_load = 1.181e-4
ifba_len = 1.0e-2
b10_enrich = 0.50
zrb2_rel_dens = 0.7
model = burnup
u235_enrich = 0.045
burnup = average_burnup
[../]
[]
[Outputs]
interval = 1
exodus = false
[./console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup burnup he_prod interior_temp plenum_pressure'
file_base = fill_gas_xenon_w_ifba_check
[../]
[./out]
type = CSV
delimiter = ' '
[../]
[]
assessment/LWR/validation/IFA_535/analysis/rod_809/IFA_535_rod_809.i
[GlobalParams]
density = 10398.06 #Assuming 10980 as the theoretical density
displacements = 'disp_x disp_y'
temperature = temp
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
[]
# Specify coordinate system type
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
group_variables = 'disp_x disp_y'
[]
# Set problem dimension (2d-rz here) and import mesh file
[Mesh]
file = ifa535_rod809.e
patch_size = 20 # 50
patch_update_strategy = auto
[]
# Define dependent variables, element order and shape function family, and initial conditions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0
[../]
[]
# Define auxillary variables, element order and shape function family
[AuxVariables]
[./fast_neutron_flux]
block = 'clad'
[../]
[./fast_neutron_fluence]
block = 'clad'
[../]
[./grain_radius]
block = 'pellet_type_1'
initial_condition = 9.36e-6 # 2D grain radius 6um
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[]
# Define functions to control power and boundary conditions
[Functions]
[./power_profile]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = ifa535_809_power_history.csv
format = columns
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = ifa535_809_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant pressure
type = PiecewiseLinear
x = '-100 0 226494828 226496628 226498428 226516428 233159868 233159888'
y = ' 0.0303 1 1 0.0303 0.0303 1 1 0.0303'
[../]
[./flux] # reads and interpolates input data defining fast neutron flux
type = PiecewiseLinear
data_file = ifa535_809_fast_flux.csv
format = columns
[../]
[./clad_temp_bc]
type = PiecewiseLinear
data_file = ifa535_809_clad_bc.csv
format = columns
[../]
[./q]
type = CompositeFunction # reads and interpolates an input file containing rod average linear power vs time
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = pellet_type_1
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_relocation_eigenstrain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_strain clad_irradiation_growth'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
[../]
[]
# Define kernels for the various terms in the PDE system (in all cases here, the axisymmetric (RZ) version is specified)
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 'pellet_type_1' # fission rate applied to the fuel (block 2) only
burnup_function = burnup
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
order = CONSTANT
family = MONOMIAL
block = 'pellet_type_1'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_upper = 0.48724
a_lower = 0.01924
fuel_inner_radius = 0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1
RPF = RPF
[../]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 'clad'
axial_power_profile = axial_peaking_factors
function = flux
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 'clad'
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 'pellet_type_1'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
penalty = 1e9
model = frictionless
normal_smoothing_distance = 0.1
system = Constraint
[../]
[]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
roughness_clad = 0.81e-6
roughness_fuel = 1.0e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 226498428
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
# Define boundary conditions
[BCs]
# pin pellets and clad along axis of symmetry (y)
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
# pin clad bottom in the axial direction (y)
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
# pin fuel bottom in the axial direction (y)
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
# apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 3.2e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 0.1e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get inital fill gas mass
temperature = plenum_temperature # coupling to post processor to get gas temperature approximation
volume = plenum_volume # coupling to post processor to get gas volume
material_input = fission_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
refab_time = 226498428
refab_pressure = 0.7e6
refab_temperature = 449.05
refab_volume = 9.6e-6
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
[../]
[../]
[]
# Define material behavior models and input material property data
[Materials]
[./swelling]
type = UO2VolumetricSwellingEigenstrain
block = 'pellet_type_1'
burnup_function = burnup
initial_fuel_density = 10398.06
eigenstrain_name = fuel_volumetric_strain
[../]
[./density_clad]
type = Density
block = 'clad'
density = 6551.0
[../]
[./density_fuel]
type = Density
block = 'pellet_type_1'
[../]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = 'pellet_type_1'
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 'pellet_type_1'
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 'pellet_type_1'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 'pellet_type_1'
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 293.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 'pellet_type_1'
burnup_function = burnup
diameter = 0.01054 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 2.44e-4 #diametral gap in m
burnup_relocation_stop = 0.029
relocation_activation1 = 5000 #initial relocation activation power in W/m
eigenstrain_name = fuel_relocation_eigenstrain
[../]
[./clad_thermal] # general thermal property input (elk kernel)
type = HeatConductionMaterial
block = 'clad'
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 5.0e-6
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_strain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_growth
[../]
[./fission_gas_release]
type = Sifgrs
block = 'pellet_type_1'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = BoundingValueNodalDamper
max_value = 3200
min_value = 200
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
# controls for linear iterations
l_max_its = 60
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 40
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
# time control
start_time = -100
end_time = 233159888
dtmax = 5e5
dtmin = 1
# direct control of time steps vs time (optional)
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
force_step_every_function_point = true
timestep_limiting_function = power_profile
optimal_iterations = 25
iteration_window = 6
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./ave_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = 'pellet_type_1'
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = 'pellet_type_1'
[../]
[./clad_elong]
type = NodalVariableValue
variable = disp_y
nodeid = 2359 #Global node ID 9739
[../]
[./input_rod_power]
type = FunctionValuePostprocessor
function = power_profile
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = pellet_type_1
temperature = temp
mechanics_system = TENSOR
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
sync_times = 5556726
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM034/SM/BFM034.i
################################################################################
#
# Description: Calvert Cliffs BFM034
#
#
#
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFM034_power.csv
# axial peaking factor file BFM034_axial_peaking.csv
# flux boundary condition file BFM034_fast_flux.csv
################################################################################
[GlobalParams]
density = 10386.93 #94.662 %TD Assume TD = 10972.65 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.31392
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 3.85e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFM034_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFM034_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 179410295 179410655'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 179410295 179410655'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFM034_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155 # m
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elasticity_and_creep]
type = Elastic #CreepUO2
block = 3
temp = temp
# fission_rate = fission_rate
# cracking_stress = 130e6
# max_cracks = 1
# active_crack_planes = 2
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
# grain_radius = 6.0e-6
# grain_radius = 10.0e-6 # set larger than 6 microns (see ForMas) to impove convergence
# oxy_to_metal_ratio = 2.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.0095631 # fuel pellet diamter in meters
gap = 190.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .029 # turn off relocation
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 179410655
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/RIA_NSRR_FK/analysis/FK5/FK05.i
# This file was created using BIF with the following inputs:
# FK05/FK05.var - md5sum: 789d603cfbdaaeb2625ea98056214f6f
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
[GlobalParams]
density = 10310.8809782
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
displacements = 'disp_x disp_y'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
displacements = 'disp_x disp_y'
patch_size = 5
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
top_bot_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.05265
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[SolidMechanics]
[./solid]
disp_r = disp_x
disp_z = disp_y
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[AuxVariables]
[./BuTC]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./gap]
order = CONSTANT
family = MONOMIAL
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./buavg]
order = CONSTANT
family = MONOMIAL
[../]
[./fission_rate]
initial_condition = 0
[../]
[./grain_radius]
block = 3
initial_condition = 5.96e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./integral_burnup]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./hoop_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_radial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_axial]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[../]
[./gap_conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.0592261881186
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[../]
[./flux]
type = ConstantFunction
value = 0.0
[../]
[./axial_peaking_factors]
type = ConstantFunction
value = 1
[../]
[./coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[../]
[./linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[../]
[./axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[../]
[./burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[../]
[./radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[../]
[./radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[../]
[./initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
i_enrich = '0.045 0.955 0.0 0.0 0.0 0.0'
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
save_in = saved_t
block = 3
[../]
[]
[AuxKernels]
[./BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[../]
[./pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[../]
[./gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[../]
[./buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = timestep_begin
[../]
[./gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
[../]
[./hydrostatic_stress]
block = 3
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_begin
[../]
[./radial_stress]
type = MaterialTensorAux
tensor = stress
variable = radial_stress
index = 0
execute_on = timestep_begin
[../]
[./axial_stress]
type = MaterialTensorAux
tensor = stress
variable = axial_stress
index = 1
execute_on = timestep_begin
[../]
[./hoop_stress]
type = MaterialTensorAux
tensor = stress
variable = hoop_stress
index = 2
execute_on = timestep_begin
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = stress
variable = radial_strain
quantity = radial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./axial_strain]
type = MaterialTensorAux
tensor = stress
variable = axial_strain
quantity = axial
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./hoop_strain]
type = MaterialTensorAux
tensor = stress
variable = hoop_strain
quantity = hoop
point1 = '0 0 0'
point2 = '0 1 0'
execute_on = timestep_begin
[../]
[./elastic_radial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = radial_strain
index = 0
execute_on = timestep_begin
[../]
[./elastic_axial_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = axial_strain
index = 1
execute_on = timestep_begin
[../]
[./elastic_hoop_strain]
type = MaterialTensorAux
tensor = elastic_strain
variable = hoop_strain
index = 2
execute_on = timestep_begin
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_begin
[../]
[./creep_strain_radial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 0
execute_on = timestep_begin
[../]
[./creep_strain_axial]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_axial
index = 1
execute_on = timestep_begin
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_radial
index = 2
execute_on = timestep_begin
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e14
normalize_penalty = true
system = Constraint
model = frictionless
friction_coefficient = 2.5
normal_smoothing_distance = 0.1
formulation = penalty
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
roughness_coef = 3.2
roughness_fuel = 1.5e-6
roughness_clad = 1.75e-6
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
initial_gas_fractions = '1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0'
gas_released = fission_gas_released
tangential_tolerance = 1.0e-6
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = '10 5'
initial_pressure = 0.5e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
thermal_conductivity_model = NFIR
block = 3
temp = temp
burnup = BuTC
initial_porosity = 0.0592261881186
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
temp = temp
burnup = burnup
total_densification = 0.006
gas_swelling_type = SIFGRS
[../]
[./fuel_mech]
type = MechUO2
block = 3
temp = temp
burnup = BuTC
fission_rate = fission_rate
youngs_modulus = 2.e11
poissons_ratio = .345
grain_radius = 5.56e-06
oxy_to_metal_ratio = 2.0
model_thermal_expansion = true
model_swelling = true
name_swelling_model = fuel_swelling
model_relocation = false
name_relocation_model = fuel_relocation
model_creep = false
model_hotpressing = false
has_hotpressing_plasticity = false # used to turn on plasticity models
matpro_youngs_modulus = false
matpro_poissons_ratio = false
dep_matl_props = deltav_v0_bd
# input_yield_stress = 100e6 # used to turn on plasticity models
# input_hardening_modulus = 2e9 # used to turn on plasticity models
# transition_temperature = 1273 # used to change the hot presing temperature
# isotropic_cracking = true # used for isotropic softening model
# rod_ave_lin_pow = linear_heat_rate_profile # used for isotropic softening model
# cracking_stress = 120e6 # used for smeared cracking model
# cracking_release = exponential # used for smeared cracking model
# cracking_residual_stress = 0.1 # used for smeared cracking model
# cracking_beta = 0.01 # used for smeared cracking model
# compute_method = ShearRetention # used for smeared cracking model
# max_cracks = 3 # used for smeared cracking model
# active_crack_planes = '0 1 2' # used for smeared cracking model
stress_free_temperature = 293
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = buavg
q = linear_heat_generation_rate
diameter = 0.01054
gap = 1e-05
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
[../]
[./clad_thermal]
type = ThermalZry
block = 1
temp = temp
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.20e26
creeprate_scalef = 1
cold_work_factor = 0.01
material_type = 0
model_irradiation_growth = false
model_thermal_expansion = true
model_elastic_modulus = true
constitutive_model = plasticity
compute_JIntegral = true
formulation = NonlinearRZ
[../]
[./combined]
type = CombinedCreepPlasticity
block = clad
temp = temp
submodels = 'creep plasticity'
[../]
[./creep]
type = CreepZryModel
block = clad
temp = temp
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
material_type = 0
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.20e26
[../]
[./plasticity]
type = ZryPlasticity
block = 1
temp = temp
initial_fast_fluence = 1.20e26
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
use_matpro = true
output_properties = yield_stress
outputs = all
scale_factor = 1.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = 2
[../]
[./clad_density]
type = Density
block = 1
density = 6551
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[UserObjects]
[./avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[../]
[./pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temp = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[../]
[./integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[./contactslip]
type = ContactSlipDamper
master = 5
slave = 8
min_damping_factor = 0.05
[../]
[]
[Postprocessors]
[./average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[../]
[./average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[../]
[./RAE]
type = RadialAverageEnthalpy
vectorpostprocessor = rad_temp
r_dim = x
fuel_type = UO2
[../]
[]
[VectorPostprocessors]
[./rad_temp]
type = LineValueSampler
end_point = '0.00527 0.0503 0.0'
start_point = '0.0 0.0503 0.0'
sort_by = x
variable = temp
execute_on = timestep_end
num_points = 81
outputs = dummy
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage rod_total_power'
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 25
output_linear = true
[../]
[./dummy]
type = CSV
enable = true
[../]
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/UFE067/SM/UFE067.i
################################################################################
#
# Description: Calvert Cliffs UFE067
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file UFE067_power.csv
# axial peaking factor file UFE067_axial_peaking.csv
# flux boundary condition file UFE067_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10396.59 #94.75 %TD Assume TD = 10972.65 kg/m3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.30013
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.2e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = UFE067_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = UFE067_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 141158832 141159192'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 141158832 141159192'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = UFE067_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
variable = oxide_thickness
boundary = 2
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155
i_enrich = '0.0398 .9602 0 0 0 0' # 3.98% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 2e8
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 5e-6
al_incremental_slip_tolerance = 1e-4
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elasticity_and_creep]
type = Elastic #CreepUO2
block = 3
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.0095631 # fuel pellet diamter in meters
gap = 190.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .029 # turn off relocation
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 60
l_tol = 8e-3
nl_max_its = 60
nl_rel_tol = 1e-4
nl_abs_tol = 1e-7
start_time = -100
end_time = 141159192
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/benchmark/FUMEXII_simplified_cases/analysis/27_2c/27_2c.i
[GlobalParams]
density = 10431.0
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11 # J/fission (200 MeV)
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 10
acceptable_multiplier = 10
[]
[Mesh]
file = FUMEXII27_2c_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./grain_radius]
block = 3
initial_condition = 37.5e-6
[../]
[./fast_neutron_flux]
[../]
[./fast_neutron_fluence]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = 27_2c_linear_power.csv # power input as thermal power (BNFL-Case-27-2c-history.txt)
scale_factor = 1.025641
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = 27_2c_axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./ave_clad_surface_temp]
type = PiecewiseLinear
data_file = 27_2c_clad_outer_temperature.csv
scale_factor = 1
format = columns
[../]
[./axial_clad_surface_temp_profile]
type = PiecewiseBilinear
data_file = 27_2c_axial_temperature_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 224856734 224865601'
y = '6.53288e-3 1 1 6.53288e-3'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./clad_surface_temperature]
type = CompositeFunction
functions = 'ave_clad_surface_temp axial_clad_surface_temp_profile'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_x = saved_x
save_in_disp_y = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
fraction = 0.975 # Ratio of thermal heat to total heat for the rod
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_upper = 3.66123981
a_lower = 0.00324
fuel_inner_radius = 0.0
fuel_outer_radius = 0.0041
i_enrich = '0.08 0.92 0 0 0 0' # 8% enriched U235
RPF = RPF
[../]
[]
[AuxKernels]
[./GrainRadiusAux]
block = 3
execute_on = linear
temp = temp
type = GrainRadiusAux
variable = grain_radius
[../]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
block = 1
factor = 4.5e13 # (n/m2-s per W/m)
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fis_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temp]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_surface_temperature
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.5e6 # FUMEXII_27(2c) => 25 bar (2.5 MPa) (He fill)
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_tmp_int
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
save_in = 'saved_x saved_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = 3
burnup_function = burnup
temp = temp
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
temp = temp
burnup_function = burnup
thermal_conductivity_model = NFIR
initial_porosity = 0.05
[../]
[./fuel_creep]
type = Elastic
block = 3
temp = temp
youngs_modulus = 2.0e11
poissons_ratio = 0.345
thermal_expansion = 10e-6
stress_free_temperature = 293.0
formulation = NonlinearRZ
dep_matl_props = deltav_v0_bd
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup_function = burnup
diameter = 0.0082
q = q
gap = 0.00016
burnup_relocation_stop = 0.026
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_fluence = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
youngs_modulus = 7.5e10
poissons_ratio = 0.3
stress_free_temperature = 293.0
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
initial_porosity = 0.05
gbs_model = true
transient_option = 2
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50.0
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
dtmax = 1e6
dtmin = 1
end_time = 204197750
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 15
linear_iteration_ratio = 100
iteration_window = 2
timestep_limiting_function = power_profile
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_tmp_int]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = '3'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = '3'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
outputs = exodus
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./int_flux_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./int_flux_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./average_fissionrate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = '3'
[../]
[./fis_gas_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = 1
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fis_gas_percent rod_total_power'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
assessment/LWR/validation/Tribulation/analysis/BN3X15/BN3X15_tm.i
[GlobalParams]
density = 10414 # 94.843 % TD assuming TS 10980
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
initial_porosity = 0.05157
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
type = SmearedPelletMesh
dim = 2
pellet_quantity = 1
pellet_height = 0.9956
pellet_outer_radius = 0.00402
pellet_mesh_density = customize
nx_p = 11
ny_p = 243
clad_bot_gap_height = 0.001
clad_gap_width = 100.0e-6
clad_thickness = 0.00063
clad_mesh_density = customize
nx_c = 4
ny_c = 249
top_bot_clad_height = 0.00224
clad_top_gap_height = 0.0952
elem_type = QUAD8
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = 3
initial_condition = 8.39e-6 # 2D grain radius 10.76e-6/2*1.56
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseBilinear
data_file = BN3X15_power.csv
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 50807520 50893920 50980320 85442688 85529088 85615488 121321152 121407552'
y = '0.0073804 1 1 0.0073804 1 1 0.0073804 1 1 0.0073804'
[../]
[./flux]
type = PiecewiseBilinear
data_file = BN3X15_fast_flux.csv
axis = 1
[../]
[./clad_temp_bc]
type = PiecewiseBilinear
data_file = BN3X15_clad_temp.csv
axis = 1
[../]
[./axial_peaking_factors]
type = ParsedFunction
value = 1
[../]
[./timestep_function]
type = PiecewiseLinear
data_file = BN3X15_time_function.csv
format = columns
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
burnup_function = burnup
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
i_enrich = '0.0576 0.9424 0 0 0 0' # 5.76% enriched U-235
RPF = RPF
fuel_pin_geometry = pin_geometry
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = KINEMATIC
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 0.3e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = 1020
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 13.729e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 980665
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup = burnup
linear_heat_rate_function = power_history
relocation_activation1 = 5000
burnup_relocation_stop = 0.017
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10414
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 60
l_tol = 8e-3
nl_max_its = 30
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 121407552
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 20
iteration_window = 2
linear_iteration_ratio = 100
timestep_limiting_function = timestep_function
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[./fuel_max_temp]
type = ElementExtremeValue
block = 3
variable = temp
[../]
[./fuel_average_temp]
type = ElementAverageValue
block = 3
variable = temp
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage fuel_average_temp'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
assessment/LWR/validation/OSIRIS_H09/analysis/OSIRIS_H09.i
[GlobalParams]
density = 10465.04 # 95.31% of TD (Assumed TD to be 10980)
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
temperature = temp
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = H09_mesh.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 7.0668e-6 # Using centre pellet average grain size of 9.060
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = h09_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = h09_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 102133764 102134124'
y = '0.006533 1 1 0.006533'
[../]
[./flux]
type = PiecewiseBilinear
data_file = h09_fast_flux.csv
scale_factor = 1
axis = 1
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[./clad_temp_bc]
type = PiecewiseBilinear
data_file = h09_clad_bc.csv
scale_factor = 1
axis = 1
[../]
[]
[Modules/TensorMechanics/Master]
[./fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress'
[../]
[./clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress creep_strain_xx
creep_strain_yy creep_strain_xy creep_strain_zz'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 3
burnup_function = burnup
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00324
a_upper = 3.66362
fuel_inner_radius = 0.0
fuel_outer_radius = 0.004095
i_enrich = '0.03249 .96751 0 0 0 0' # 3.249% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
formulation = penalty
system = Constraint
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = clad_temp_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 3.1e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[Materials]
[./fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup_function = burnup
initial_fuel_density = 10465.04
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
stress_free_temperature = 293
thermal_expansion_coeff = 10e-6
eigenstrain_name = 'fuel_thermal_eigenstrain'
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.00819
gap = 160.e-6
linear_heat_rate_function = q
relocation_activation1 = 5000
burnup_relocation_stop = .029
eigenstrain_name = 'fuel_relocation_eigenstrain'
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
transient_option = 2
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_creep]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = 'clad_creep'
[../]
[./clad_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain
block = 1
stress_free_temperature = 293
thermal_expansion_coeff = 5.0e-6
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./clad_irradiation_eigenstrain]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = 'clad_irradiation_growth_eigenstrain'
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = -100
end_time = 102134124
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 10
linear_iteration_ratio = 100
timestep_limiting_function = power_history
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Fuel postprocessors
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./average_grain_radius]
type = ElementAverageValue
block = '3'
variable = grain_radius
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
burnup_function = burnup
variable = temp
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[./console]
type = Console
max_rows = 40
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage rod_ave_lin_pow'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFG092/TM/BFG092_tm.i
################################################################################
#
# Description: Calvert Cliffs BFG092
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFG092_power.csv
# axial peaking factor file BFG092_axial_peaking.csv
# flux boundary condition file BFG092_fast_flux.csv
#
################################################################################
[GlobalParams]
density = 10411.07 #94.882 %TD Assume TD = 10972.65 kg/cm3
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.28354
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 4.2e-6
[../]
[./effective_creep_strain]
block = 1
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFG092_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFG092_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 177711767 177712127'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 177711767 177712127'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFG092_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = 3
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[./clad]
block = 1
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
save_in = 'saved_x saved_y'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e10
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-4
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
temperature = temp
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 293.
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.0095631 #Fuel pellet diameter in m
linear_heat_rate_function = q
gap = 190.5e-6 #diametral gap in m
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10411.07
total_densification = 0.01
initial_porosity = 0.05
eigenstrain_name = fuel_volumetric_strain
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[../]
[./thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temp
stress_free_temperature = 293.0
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 177712127
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
print_linear_residuals = true
perf_graph = true
[./outfile_1]
type = CSV
execute_on = 'FINAL'
[../]
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/LOCA_MT4_MT6A/analysis/MT6A/MT6A_1-1kW.i
################################################################################
#
# Description: LOCA MT-6A Test with constant power level of 1.1 kW/m
#
#
# External files:
# axial peaking factor file MT6A_axial_peaking.csv
#
################################################################################
[GlobalParams]
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
group_variables = 'disp_x disp_y'
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 6.1e-4
pellet_mesh_density = customize
ny_p = 100
nx_c = 4
nx_p = 12
pellet_outer_radius = .00413
ny_cu = 3
ny_c = 100
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.66
ny_cl = 3
clad_top_gap_height = 0.18613
clad_gap_width = 7.5e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[DefaultElementQuality]
aspect_ratio_upper_bound = 253
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
[./InitialCondition]
type = FunctionIC
function = temp_func
[../]
[../]
[]
[AuxVariables]
[./temp_initial]
[./InitialCondition]
type = FunctionIC
function = temp_func
[../]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet
initial_condition = 7.8e-6 # 2D grain radius
[../]
[./effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[../]
[./fract_beta_phase] # Fraction of beta phase in Zry
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_rate_aux]
order = CONSTANT
family = MONOMIAL
[../]
[./bursted]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_temp]
order = CONSTANT
family = MONOMIAL
[../]
[./hmode]
order = CONSTANT
family = MONOMIAL
[../]
[./htype]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseLinear
x = '0 150'
y = '1.1e3 1.1e3'
[../]
[./hmode_function]
type = PiecewiseConstant
x = '0 60 150'
y = '9 10 10'
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = MT6A_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for coolant and fill gas pressure
type = PiecewiseLinear
x = '0 150'
y = '1.72 1.72'
scale_factor = 1e6
[../]
[./temp_func]
type = ParsedFunction
value = '-24.096*y*y+152.47*y+437.81'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors' # W/m
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = pellet
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz elastic_strain_yy strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[../]
[./clad]
block = clad
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz' #plastic_strain_xx plastic_strain_yy plastic_strain_zz
extra_vector_tags = 'ref'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = pellet
fission_rate = fission_rate
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
axial_power_profile = axial_peaking_factors
factor = 0.16e15 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
block = clad
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = clad
execute_on = timestep_end
[../]
[./effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
[../]
[./coolant_temp]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temp
boundary = '1 2 3'
[../]
[./hmode]
type = MaterialRealAux
property = coolant_channel_hmode
variable = hmode
boundary = '1 2 3'
[../]
[./htype]
type = MaterialRealAux
property = coolant_channel_htype
variable = htype
boundary = '1 2 3'
[../]
[./fract_bphase]
type = MaterialRealAux
variable = fract_beta_phase
property = fract_beta_phase
block = clad
[../]
[./creep_rate]
type = MaterialRealAux
variable = creep_rate
property = creep_rate
block = clad
execute_on = timestep_end
[../]
[./creep_rate_aux]
type = MaterialRealAux
variable = creep_rate_aux
property = creep_rate
block = clad
execute_on = timestep_end
[../]
[./bursted]
type = MaterialRealAux
variable = bursted
property = failed
boundary = 2
execute_on = timestep_end
[../]
[]
# TODO: Have StandardLWRFuelRodOutputs create this when the feature in issue #1054 is
# developed.
# We are using 'plenum_temp' rather than 'plenum_temperature', which is generated
# automatically by StandardLWRFuelRodOutputs, but computed in a different way.
[PlenumTemperature]
[./plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temp = temp
[../]
[]
[Burnup]
[./burnup]
block = pellet
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.66478
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00413 # m
i_enrich = '0.0293 .9707 0 0 0 0' # 3.67% enriched U-235 #TODO: Looks like it's set for 2.93%!
RPF = RPF
density = 10431 #95 %TD Assume TD = 10980 kg/cm3
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e11
normalize_penalty = true
system = Constraint
model = frictionless
# model = coulomb
formulation = penalty
# friction_coefficient = 1.0
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 1.0 # Pa
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9 # clad interior + fuel exterior
initial_pressure = 9.15e6 # Pa
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 310 # K
inlet_pressure = 1.72e6 # Pa
# inlet_massflux = massfluxfunc # kg/m^2-sec
rod_diameter = 0.00963 # m
rod_pitch = 1.275e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
heat_transfer_mode = hmode_function
heat_transfer_coefficient = 0.0000001 #W/m^2-K
# heat_transfer_mode = htc_function
htc_correlation_type = 1
flooding_time = 60.0
flooding_rate = 0.059182 # m/s
initial_temperature = 1175 # K
initial_power = 1.628 # kW/m
blockage_ratio = 0.0 #
fuel_stack_length = 3.66 # m
reflooding_model = 1
compute_enthalpy = false
[../]
[]
[Materials]
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2
type = ThermalFuel
block = pellet
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = temp_initial
eigenstrain_name = fuel_thermal_strain
[../]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0 #95 %TD Assume TD = 10980 kg/cm3
eigenstrain_name = fuel_volumetric_strain
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet
temp = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
# initial_grain_radius = 6.552e-6 # 2D grain radius 4.2e-6
grain_radius = grain_radius
gbs_model = true
burnup = burnup
# compute_swelling = true
transient_option = 2
[../]
[./fuel_density]
type = Density
block = pellet
density = 10431 #95 %TD Assume TD = 10980 kg/cm3
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
temperature = temp
[../]
[./clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[../]
[./clad_zrycreep]
type = ZryCreepLOCAErbacherLimbackHoppeUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = false
model_primary_creep = false
model_thermal_creep = true
temperature_standard_thermal_creep_end = 700.0
temperature_loca_creep_begin = 900.0
max_inelastic_increment = 1e-4
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
temperature = temp
thermal_expansion_coeff = 5.0e-6
stress_free_temperature = temp_initial
eigenstrain_name = clad_thermal_eigenstrain
[../]
[./phase]
type = ZrPhase
block = clad
temperature = temp
numerical_method = 2
[../]
[./failure_criterion]
type = ZryCladdingFailure
boundary = '2'
failure_criterion = combined_overstress_and_plastic_instability
hoop_stress = stress_zz
effective_strain_rate_creep = creep_rate
temperature = temp
fraction_beta_phase = fract_beta_phase
outputs = all
output_properties='failed burst_stress'
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
start_time = 0.0
end_time = 76.48
dtmax = 5
dtmin = 0.00001
[./TimeStepper]
type = PostprocessorDT
postprocessor = material_timestep
dt = 0.01
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
outputs = exodus
execute_on=linear
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
outputs = exodus
execute_on=linear
[../]
[./max_betaph_fract]
type = ElementExtremeValue
value_type = max
variable = fract_beta_phase
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on=timestep_end
[../]
[./average_fission_rate]
type = ElementAverageValue
block = pellet
variable = fission_rate
execute_on=timestep_end
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = pellet
fission_rate = fission_rate
variable = temp
execute_on=timestep_end
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.66 # rod height
execute_on=timestep_end
[../]
[./material_timestep]
type = MaterialTimeStepPostprocessor
block = clad
[../]
[./max_creep_rate]
type = ElementExtremeValue
block = clad
value_type = max
variable = creep_rate_aux
[../]
[./bursted]
type = ElementExtremeValue
block = clad
value_type = max
variable = bursted
[../]
[]
[UserObjects]
[./terminator]
type = Terminator
expression = 'bursted > 0'
[../]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
temperature = temp
[]
[PerformanceMetricOutputs]
[]
[Outputs]
exodus = true
csv = true
color = false
perf_graph = true
[./console]
type = Console
output_linear = true
max_rows = 40
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/Calvert_Cliffs-1_PROTOTYPE/analysis/BFM071/SM/BFM071.i
################################################################################
#
# Description: Calvert Cliffs BFM071
#
#
#
#
# Boundary condition: Inlet temperature and mass flux
#
# External files:
# power history file BFM071_power.csv
# axial peaking factor file BFM071_axial_peaking.csv
# flux boundary condition file BFM071_fast_flux.csv
################################################################################
[GlobalParams]
density = 10386.93 #94.662 %TD Assume TD = 10972.65 kg/cm3
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
maximum_lagrangian_update_iterations = 200
[]
[Mesh]
type = SmearedPelletMesh
clad_mesh_density = customize
clad_thickness = 7.112e-4
pellet_mesh_density = customize
ny_p = 200
nx_c = 4
nx_p = 12
pellet_outer_radius = .00478155
ny_cu = 3
ny_c = 200
clad_bot_gap_height = 2.54e-3
pellet_quantity = 1
pellet_height = 3.47218
ny_cl = 3
clad_top_gap_height = 0.31727
clad_gap_width = 9.525e-5
elem_type = QUAD8
patch_size = 20
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = 3
initial_condition = 3.85e-6
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx] # stress aux variables are defined for output
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_hoop]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./oxide_thickness]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_history]
type = PiecewiseConstant
data_file = BFM071_power.csv
direction = right
format = columns
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = BFM071_axial_peaking.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 178956096 178956456'
y = '0.0065315 1 1 0.0065315'
[../]
[./temp_ramp]
type = PiecewiseLinear
x = '-100 0 178956096 178956456'
y = '293 557.15 557.15 293'
[../]
[./flux]
type = PiecewiseLinear
data_file = BFM071_fast_flux.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
save_in = saved_t
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 4.8e17 #n/m2-s
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xx
block = 1
index = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_yy
block = 1
index = 1
execute_on = timestep_end
[../]
[./creep_strain_xy]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_xy
block = 1
index = 3
execute_on = timestep_end
[../]
[./creep_strain_hoop]
type = MaterialTensorAux
tensor = creep_strain
variable = creep_strain_hoop
block = 1
index = 2
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
block = 1
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[./oxide]
type = MaterialRealAux
property = oxide_scale_thickness
# temperature = temp
# fast_neutron_flux = fast_neutron_flux
variable = oxide_thickness
boundary = 2
# use_coolant_channel = true # true when oxide_thickness is coupled with coolant channel model
# oxide_scale_factor = 1.0 # a scale factor to increase oxidation rate
# model_option = 1
# lithium_concentration = 1.5 # average Li concentration
# tin_content = 1.45 # %
# execute_on = timestep_end
[../]
[]
[Burnup]
[./burnup]
block = 3
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 81
num_axial = 11
a_lower = 0.00478
a_upper = 3.47696
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00478155 # m
i_enrich = '0.0367 .9633 0 0 0 0' # 3.67% enriched U-235
RPF = RPF
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = Constraint
model = coulomb
formulation = augmented_lagrange
friction_coefficient = 0.4
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1e-6
al_frictional_force_tolerance = 5e-2
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = KENNARD
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_fuel = 2e-6
roughness_clad = 1e-6
roughness_coef = 3.2
normal_smoothing_distance = 0.1
quadrature = true
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 15.51320391e6
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 2.72342913e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = temp_ramp
inlet_pressure = 15.51320391e6
inlet_massflux = 3682.143 # kg/m^2-sec
rod_diameter = 0.011176 # m
rod_pitch = 1.473e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
oxide_thickness = oxide_thickness
[../]
[]
[Materials]
[./fuel_thermal]
type = ThermalFuel
block = 3
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
[../]
[./ZryOxidation]
type = ZryOxidation
boundary = 2
clad_inner_radius = 0.0048768
clad_outer_radius = 0.005588
use_coolant_channel = true
temperature = temp
fast_neutron_flux = fast_neutron_flux
[../]
[./fuel_elasticity_and_creep]
type = Elastic #CreepUO2
block = 3
temp = temp
# fission_rate = fission_rate
# cracking_stress = 130e6
# max_cracks = 1
# active_crack_planes = 2
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
# grain_radius = 6.0e-6
# grain_radius = 10.0e-6 # set larger than 6 microns (see ForMas) to impove convergence
# oxy_to_metal_ratio = 2.0
[../]
[./fuel_relocation]
type = RelocationUO2
block = 3
burnup = burnup
diameter = 0.0095631 # fuel pellet diamter in meters
gap = 190.5e-6 # nominal diametral gap in meters
q = q
burnup_relocation_stop = .029 # turn off relocation
relocation_activation1 = 5000
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity, plasticity, and thermal and irradiation creep for Zr4
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
[../]
[./clad_density]
type = Density
block = 1
density = 6551.0
[../]
[./fuel_density]
type = Density
block = 3
[../]
[./fuel_swelling]
type = VSwellingUO2
block = 3
burnup = burnup
temp = temp
[../]
[./fission_gas_release]
type = Sifgrs
block = 3
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
variable = temp
max_increment = 50
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 100
l_tol = 8e-3
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-8
start_time = -100
end_time = 178956456
dtmax = 1e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = power_history
max_function_change = 3e20
force_step_every_function_point = true
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 3
variable = fission_rate
[../]
[./average_burnup]
type = ElementAverageValue
block = 3
variable = burnup
[../]
[./rod_ave_lin_pow]
type = ElementIntegralPower
block = 3
fission_rate = fission_rate
variable = temp
[../]
[./disp_y_3023]
type = NodalVariableValue
nodeid = 3022
variable = disp_y
[../]
[]
[StandardLWRFuelRodOutputs]
mechanics_system = SOLID
temperature = temp
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 40
[../]
[./checkpoint]
type = Checkpoint
num_files = 2
file_base = recover_files
[../]
[./chkfile]
type = CSV
show = 'average_centerline_fuel_temperature fission_gas_released_percentage maximum_clad_elongation maximum_fuel_elongation'
execute_on = 'FINAL'
[../]
[]
[Debug]
show_var_residual = 'disp_x disp_y temp'
show_var_residual_norms = true
[]
assessment/LWR/validation/IFA_597_3/analysis/rod_7/SM/IFA_597_rod7_glued_sm.i
[GlobalParams]
density = 10500.0
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 10
acceptable_multiplier = 10
[]
[Mesh]
file = ifa_597r7.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4'
initial_condition = 6.1074e-6
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic_stress]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = 597-R7_linear_power.csv
format = columns
scale_factor = 1.0526316
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = 597-R7_axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 269029548 269030508 269055648 269056588 280124964 280125427'
y = '0 1 1 0.014475 0.014475 0.457 0.457 0.014475'
[../]
[./flux]
type = PiecewiseLinear
data_file = flux.csv
format = columns
[../]
[./clad_average_temp]
type = PiecewiseLinear
data_file = 597-R7_clad_outer_temperature.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_y = saved_y
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3 4'
fission_rate = fission_rate
fraction = 0.95 # per Glyn Rossiter's suggestion
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00324
a_upper = 0.3571
fuel_inner_radius = 0.000
fuel_outer_radius = 0.0052195
fuel_volume_ratio = .994899
i_enrich = '0.03347 0.96653 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./hydrostatic_stress]
block = '3 4'
type = MaterialTensorAux
tensor = stress
variable = hydrostatic_stress
quantity = hydrostatic
execute_on = timestep_end
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = clad
variable = creep_strain_mag
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = constraint
formulation = penalty
model = glued
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.3e-6
roughness_fuel = 1.38e-6
roughness_coef = 3.2
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 269055648
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temp
function = clad_average_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 #changes to 3.2e6 after 59 MWd/kgUO2
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0e5 #changes to 5e5 after 59 MWd/kgUO2
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 269055648
refab_pressure = 5e5
refab_temperature = 500
refab_volume = 6e-6
save_in = 'saved_x saved_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = '3 4'
burnup_function = burnup
temp = temp
tensor_mechanics_compatibility = true
[../]
[./density_clad]
type = Density
block = 1
density = 6551.0
[../]
[./density_fuel]
type = Density
block = '3 4'
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4'
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
initial_porosity = 0.04372
[../]
[./fuel_mechanics]
type = Elastic
block = '3 4'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
stress_free_temperature = 297
dep_matl_props = deltav_v0_bd
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fuel_relocation]
type = RelocationUO2
block = '3 4'
burnup_function = burnup
diameter = 0.010439
q = q
gap = 2.11e-4
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
tensor_mechanics_compatibility = true
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
stress_free_temperature = 297
model_irradiation_growth = true
model_thermal_expansion = true
formulation = NonlinearRZ
increment_calculation = Eigen
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.04372
diff_coeff_option = 3
transient_option = 2
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 280125427
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 20
linear_iteration_ratio = 100
dt = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3 4'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = exodus
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = exodus
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3 4'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.3539 # rod height
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = '3 4'
[../]
[./average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_profile
fuel_outer_radius = 0.0052195
fuel_inner_radius = 0.000
outputs = exodus
[../]
[./power_tc_location]
type = FunctionValuePostprocessor
function = q
point = '0 0.33319 0'
[../]
[./TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 7476 # Global NodeID 7477
[../]
[./elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 1887 # Global NodeID 1888
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = '3 4'
[]
[Outputs]
perf_graph = true
csv = 1
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage TC_temp rod_total_power elongation'
execute_on = 'FINAL'
[../]
[]
examples/2D-RZ_rodlet_10pellets/Quad8.i
# This model is a higher order, discrete 10 pellet fuel stack (pellet_type_1).
[GlobalParams]
# Set initial fuel density, other global parameters
density = 10431.0
initial_porosity = 0.05
disp_x = disp_x
disp_y = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = true
[]
[Problem]
# Specify coordinate system type
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
# Import mesh file
file = quad8Medium10_rz.e
patch_update_strategy = auto
patch_size = 10 # For contact algorithm
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
# Define dependent variables and initial conditions
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 293.0 # set initial temp to fill gas temperature, usually 20C
[../]
[]
[AuxVariables]
# Define auxilary variables
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = clad
[../]
[./fast_neutron_fluence]
block = clad
[../]
[./grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[../]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./radial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./coolant_htc]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
# Define functions to control power and boundary conditions
[./power_history]
type = PiecewiseLinear # reads and interpolates an input file containing rod average linear power vs time
data_file = powerhistory.csv
scale_factor = 1
[../]
[./axial_peaking_factors] # reads and interpolates an input file containing the axial power profile vs time
type = PiecewiseBilinear
data_file = peakingfactors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[../]
[./pressure_ramp] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[../]
[]
[SolidMechanics]
# Specify that we need solid mechanics (divergence of stress)
[./solid]
disp_r = disp_x
disp_z = disp_y
save_in_disp_r = saved_x
save_in_disp_z = saved_y
temp = temp
[../]
[]
[Kernels]
# Define kernels for the various terms in the PDE system
[./gravity] # body force term in stress equilibrium equation
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = pellet_type_1 # fission rate applied to the fuel (block 2) only
burnup_function = burnup
[../]
[]
[Burnup]
[./burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 11
a_lower = 0.00324 # mesh dependent!
a_upper = 0.12184 # mesh dependent!
fuel_inner_radius = 0
fuel_outer_radius = .0041
fuel_volume_ratio = 0.987775 # for use with dished pellets (ratio of actual volume to cylinder volume)
RPF = RPF
i_enrich = '0.05 0.95 0 0 0 0'
#N235 = N235 # Activate to write N235 concentration to output file
#N238 = N238 # Activate to write N238 concentration to output file
#N239 = N239 # Activate to write N239 concentration to output file
#N240 = N240 # Activate to write N240 concentration to output file
#N241 = N241 # Activate to write N241 concentration to output file
#N242 = N242 # Activate to write N242 concentration to output file
[../]
[]
[AuxKernels]
# Define auxilliary kernels for each of the aux variables
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain
block = clad
execute_on = timestep_end
[../]
[./radial_strain]
type = MaterialTensorAux
tensor = total_strain
variable = radial_strain
index = 0
execute_on = timestep_end
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[../]
[./coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = '1 2 3'
execute_on = 'linear'
[../]
[]
[Contact]
# Define mechanical contact between the fuel (sideset=10) and the clad (sideset=5)
[./pellet_clad_mechanical]
master = 5
slave = 10
disp_x = disp_x
disp_y = disp_y
system = Constraint
formulation = kinematic
model = frictionless
penalty = 1e7
[../]
[]
[ThermalContact]
# Define thermal contact between the fuel (sideset=10) and the clad (sideset=5)
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
contact_pressure = contact_pressure
quadrature = true
[../]
[]
[BCs]
# Define boundary conditions
[./no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom] # pin clad bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom] # pin fuel bottom in the axial direction (y)
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./Pressure] # apply coolant pressure on clad outer walls
[./coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp # use the pressure_ramp function defined above
[../]
[../]
[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[./plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[CoolantChannel]
[./convective_clad_surface] # apply convective boundary to clad outer surface
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[../]
[]
[Materials]
# Define material behavior models and input material property data
[./fuel_thermal] # temperature and burnup dependent thermal properties of UO2 (BISON kernel)
type = ThermalFuel
block = pellet_type_1
thermal_conductivity_model = NFIR
temp = temp
burnup_function = burnup
[../]
[./fuel_creep] # thermal and irradiation creep for UO2 (BISON kernel)
type = Elastic
block = pellet_type_1
disp_r = disp_x
disp_z = disp_y
temp = temp
dep_matl_props = deltav_v0_bd
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
formulation = NonlinearRZ
stress_free_temperature = 295.0 #Change to match Zry block
[../]
[./fuel_relocation]
type = RelocationUO2
block = pellet_type_1
burnup_function = burnup
diameter = 0.0082
q = q
gap = 160e-6 # diametral gap
burnup_relocation_stop = .035
relocation_activation1 = 5000
[../]
[./fuel_solid_mechanics_swelling] # free expansion strains (swelling and densification) for UO2 (BISON kernel)
type = VSwellingUO2
gas_swelling_type = SIFGRS
block = pellet_type_1
temp = temp
burnup_function = burnup
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics] # thermoelasticity and thermal and irradiation creep for Zr (BISON kernel)
type = MechZry
block = clad
disp_r = disp_x
disp_z = disp_y
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
# thermal_expansion = 5.0e-6 # unnecessary because computing the thermal expansion with MATPRO
model_thermal_expansion = true
model_irradiation_growth = true
model_primary_creep = true
model_thermal_creep = true
model_irradiation_creep = true
stress_free_temperature = 295.0
formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = pellet_type_1
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[../]
[./clad_density]
type = Density
block = clad
density = 6551.0
disp_r = disp_x
disp_z = disp_y
[../]
[./fuel_density]
type = Density
block = pellet_type_1
disp_r = disp_x
disp_z = disp_y
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[./limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[../]
[]
[Executioner]
# PETSC options:
# petsc_options
# petsc_options_iname
# petsc_options_value
#
# controls for linear iterations
# l_max_its
# l_tol
#
# controls for nonlinear iterations
# nl_max_its
# nl_rel_tol
# nl_abs_tol
#
# time control
# start_time
# dt
# optimal_iterations
# iteration_window
# linear_iteration_ratio
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[./ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol] # volume inside of cladding
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[../]
[./pellet_volume] # fuel pellet total volume
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[../]
[./avg_clad_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
execute_on = 'linear'
[../]
[./fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
execute_on = 'linear'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
execute_on = 'linear'
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
execute_on = 'linear'
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad] # area integrated heat flux from the cladding
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel] # area integrated heat flux from the fuel
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
execute_on = timestep_end
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
burnup_function = burnup
block = pellet_type_1
execute_on = timestep_end
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[../]
# Stress Measures
[./average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises
block = pellet_type_1
[../]
[./average_vonMises_clad]
type = ElementAverageValue
variable = vonmises
block = clad
[../]
#Strain measures
[./average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet_type_1
[../]
[./average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[../]
[./average_creep_strain_clad]
type = ElementAverageValue
variable = creep_strain
block = clad
[../]
# Contact variables
[./center_penetration_fuel]
type = NodalVariableValue
variable = penetration
nodeid = 2887 # mesh dependent, at (0.0041, 0.0558887), near bottom of pellet 5
[../]
[./center_contact_pressure_fuel]
type = NodalVariableValue
variable = contact_pressure
nodeid = 2887 # mesh dependent, at (0.0041, 0.0558887), near bottom of pellet 5
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[./tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[../]
[./alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[../]
[]
[VectorPostprocessors]
[./clad]
type = NodalValueSampler
variable = disp_x
boundary = 2
sort_by = y
outputs = 'outfile_clad_radial_displacement'
[../]
[./pellet]
type = NodalValueSampler
variable = disp_x
boundary = 10
sort_by = y
outputs = 'outfile_fuel_radial_displacement'
[../]
[]
[Outputs]
perf_graph = true
exodus = true
color = false
csv = true
[./console]
type = Console
max_rows = 25
[../]
[./outfile_clad_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[./outfile_fuel_radial_displacement]
type = CSV
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/IFA_562/analysis/rod17/IFA562_17.i
# Reference document HWR-247
# Block 1 = cladding, Block 3 and 5 = insulators Block 4 = fuel
# Last update 11/12/2015
[GlobalParams]
density = 10321.2 # initial fuel density 94% of theoretical (10980 kg/m3)
disp_x = disp_x
disp_y = disp_y
disp_r = disp_x
disp_z = disp_y
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (200 MeV per fission)
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
[]
[Mesh]
file = ifa562_rod17_insulator.e
patch_size = 10 # For contact algorithm
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300 # set initial temp to ambient
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = '1'
[../]
[./fast_neutron_fluence]
block = '1'
[../]
[./grain_radius]
block = '4'
initial_condition = 7.75e-6 # grain radius is not reported, leaving this as a placeholder for now
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = IFA562_17_alhr.csv
format = columns
[../]
[./axial_peaking_factors]
type = ParsedFunction # no axial power profile
value = '1'
[../]
[./clad_wall_temp]
type = PiecewiseLinear
data_file = IFA562_17_coolant_temp.csv
format = columns
[../]
[./axial_clad_peaking]
type = ParsedFunction # no axial clad temp
value = '1'
[../]
[./clad_bc]
type = CompositeFunction
functions = 'clad_wall_temp axial_clad_peaking'
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0'
y = '0.0298 1'
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[./flux]
type = PiecewiseLinear
data_file = IFA562_17_flux.csv
format = columns
[../]
[]
[SolidMechanics]
[./solid]
temp = temp
save_in_disp_r = saved_x
save_in_disp_z = saved_y
[../]
[]
[Kernels]
[./heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
# time term in heat cnduction equation
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source]
# source term in heat conduction equation
type = NeutronHeatSource
variable = temp
save_in = saved_t
block = 4 # fission rate applied to the fuel only
fission_rate = fission_rate # coupling to the fission_rate aux variable
[../]
[]
[Burnup]
[./burnup]
block = 4
rod_ave_lin_pow = power_profile # using the power function defined above
axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
num_radial = 80
num_axial = 20
a_lower = 0.01101 # Checked with Paraview
a_upper = 0.45351 # Checked with Paraview
fuel_inner_radius = 0.001 # Checked with Paraview
fuel_outer_radius = 0.0029575 # Checked with Paraview
i_enrich = '0.13 0.87 0 0 0 0' # 13% U235
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = flux
axial_power_profile = axial_peaking_factors
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '4'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./stress_xx]
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
block = 1
[../]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5 # clad
slave = 10 # fuel
formulation = kinematic
system = constraint
normalize_penalty = true
penalty = 1e14
model = frictionless
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact_clad]
# thermal conatact between the fuel outer radius and the clad inner wall
type = GapHeatTransferLWR
variable = temp
master = 5 # clad
slave = 10 # fuel & insulators
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
roughness_clad = 1e-6
roughness_fuel = 2e-6
roughness_coef = 3.2
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
jump_distance_model = KENNARD
quadrature = true
normal_smoothing_distance = 0.1
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
[../]
[]
[BCs]
[./no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./clad_surface_temperature]
type = FunctionDirichletBC
variable = temp
boundary = '1 2 3'
function = clad_bc
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 3.40e6 # coolant pressure not reported, using the number from IFA-515
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
displacements = 'disp_x disp_y'
[../]
[../]
[]
[Materials]
[./swelling]
type = VSwellingUO2
block = '4'
burnup = burnup
temp = temp
[../]
[./fuel_thermal]
type = ThermalFuel
block = '4'
temp = temp
thermal_conductivity_model = NFIR # NFIR
burnup = burnup
initial_porosity = 0.06
[../]
[./insulator_thermal]
type = ThermalFuel
block = '3 5'
temp = temp
thermal_conductivity_model = NFIR # NFIR
burnup_function = 0
initial_porosity = 0.06
[../]
[./fuel_creep]
type = Elastic
block = '4'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
dep_matl_props = deltav_v0_bd
# formulation = NonlinearRZ
[../]
[./fuel_relocation]
type = RelocationUO2
block = 4
burnup = burnup
diameter = 0.005915
q = q
gap = 1.0e-4
relocation_activation1 = 5000
burnup_relocation_stop = 0.02524
[../]
[./insulator_creep]
type = Elastic
block = '3 5'
temp = temp
youngs_modulus = 2.e11
poissons_ratio = .345
thermal_expansion = 10e-6
# formulation = NonlinearRZ
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_solid_mechanics]
type = MechZry
block = 1
temp = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
youngs_modulus = 7.5e10
poissons_ratio = 0.3
model_thermal_expansion = true
model_irradiation_growth = true
# formulation = NonlinearRZ
[../]
[./fission_gas_release]
type = Sifgrs
block = '4'
temp = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
[../]
[./clad_density]
type = Density
block = '1'
density = 6551.0
[../]
[./fuel_density]
type = Density
block = '4 3 5'
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 50.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
verbose = true
# controls for linear iterations
l_max_its = 50
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
# time control
# Time steps set up to match halden data
start_time = -100
end_time = 84612900
dtmax = 1e6
dtmin = 1
# control for adaptive time steping
[./TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 1000
growth_factor = 10
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./pellet_volume]
type = InternalVolume
boundary = 8
outputs = exodus
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
outputs = exodus
[../]
[./fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = '4'
[../]
[./fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = '4'
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '4'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '4'
outputs = exodus
[../]
[./gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 4
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.4425 # rod height
[../]
[./average_fission_rate]
type = ElementAverageValue
block = 4
variable = fission_rate
[../]
[./average_rod_burnup]
type = ElementAverageValue
block = 4
variable = burnup
[../]
[./FCT_ave]
type = SideAverageValue
boundary = 13
variable = temp
[../]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
print_linear_residuals = true
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_rod_burnup fis_gas_released FCT_ave rod_total_power'
execute_on = 'FINAL'
[../]
[]
assessment/LWR/validation/IFA_597_3/analysis/rod_7/IFA_597_rod7_glued.i
[GlobalParams]
density = 10500.0
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y temp'
reference_residual_variables = 'saved_x saved_y saved_t'
acceptable_iterations = 10
acceptable_multiplier = 10
[]
[Mesh]
file = ifa_597r7.e
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_t]
[../]
[./fast_neutron_flux]
block = 1
[../]
[./fast_neutron_fluence]
block = 1
[../]
[./grain_radius]
block = '3 4'
initial_condition = 6.1074e-6
[../]
[./creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./power_profile]
type = PiecewiseLinear
data_file = 597-R7_linear_power.csv
format = columns
scale_factor = 1.0526316
[../]
[./axial_peaking_factors]
type = PiecewiseBilinear
data_file = 597-R7_axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[../]
[./pressure_ramp]
type = PiecewiseLinear
x = '-100 0 269029548 269030508 269055648 269056588 280124964 280125427'
y = '0 1 1 0.014475 0.014475 0.457 0.457 0.014475'
[../]
[./flux]
type = PiecewiseLinear
data_file = flux.csv
format = columns
[../]
[./clad_average_temp]
type = PiecewiseLinear
data_file = 597-R7_clad_outer_temperature.csv
format = columns
[../]
[./q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[../]
[]
[Modules/TensorMechanics/Master]
[./pellets]
block = '3 4'
strain = FINITE
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress'
decomposition_method = EigenSolution
[../]
[./clad]
block = 1
strain = FINITE
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
save_in = 'saved_x saved_y'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
decomposition_method = EigenSolution
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
save_in = saved_t
[../]
[./heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3 4'
fission_rate = fission_rate
fraction = 0.95 # per Glyn Rossiter's suggestion
save_in = saved_t
[../]
[]
[Burnup]
[./burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00324
a_upper = 0.3571
fuel_inner_radius = 0.000
fuel_outer_radius = 0.0052195
fuel_volume_ratio = .994899
i_enrich = '0.03347 0.96653 0 0 0 0'
RPF = RPF
[../]
[]
[AuxKernels]
[./fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 1
execute_on = timestep_begin
[../]
[./fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[../]
[./grain_radius]
type = GrainRadiusAux
block = '3 4'
variable = grain_radius
temp = temp
execute_on = linear
[../]
[./creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = 1
variable = creep_strain_mag
execute_on = timestep_end
[../]
[]
[Contact]
[./pellet_clad_mechanical]
master = 5
slave = 10
penalty = 1e9
system = constraint
formulation = penalty
model = glued
normal_smoothing_distance = 0.1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransferLWR
variable = temp
master = 5
slave = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_clad = 1.3e-6
roughness_fuel = 1.38e-6
roughness_coef = 3.2
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = KENNARD
initial_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
refab_time = 269055648
refab_gas_fractions = '1 0 0 0 0 0 0 0 0 0'
quadrature = true
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./no_x_all]
type = PresetBC
variable = disp_x
boundary = 12
value = 0.0
[../]
[./no_y_clad_bottom]
type = PresetBC
variable = disp_y
boundary = '1'
value = 0.0
[../]
[./no_y_fuel_bottom]
type = PresetBC
variable = disp_y
boundary = '1020'
value = 0.0
[../]
[./temp]
type = FunctionPresetBC
boundary = '1 2 3'
variable = temp
function = clad_average_temp
[../]
[./Pressure]
[./coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 #changes to 3.2e6 after 59 MWd/kgUO2
function = pressure_ramp
[../]
[../]
[./PlenumPressure]
[./plenumPressure]
boundary = 9
initial_pressure = 1.0e5 #changes to 5e5 after 59 MWd/kgUO2
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 269055648
refab_pressure = 5e5
refab_temperature = 500
refab_volume = 6e-6
save_in = 'saved_x saved_y'
[../]
[../]
[]
[Materials]
[./fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4'
burnup_function = burnup
temperature = temp
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
initial_fuel_density = 10500.0
[../]
[./fuel_thermal]
type = ThermalFuel
block = '3 4'
thermal_conductivity_model = NFIR
temp = temp
burnup = burnup
initial_porosity = 0.04372
[../]
[./fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4'
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = '3 4'
temperature = temp
stress_free_temperature = 297
thermal_expansion_coeff = 10e-6
eigenstrain_name = fuel_thermal_eigenstrain
[../]
[./fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = '3 4'
temperature = temp
[../]
[./fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4'
burnup_function = burnup
diameter = 0.010439
linear_heat_rate_function = q
gap = 2.11e-4
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_eigenstrain
[../]
[./clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[./clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
[../]
[./clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='clad_creep_stress'
[../]
[./clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[../]
[./clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = clad_irradiation_growth_eigenstrain
[../]
[./clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 297
temperature = temp
eigenstrain_name = 'clad_thermal_eigenstrain'
[../]
[./fission_gas_release]
type = Sifgrs
block = '3 4'
temp = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.04372
diff_coeff_option = 3
transient_option = 2
[../]
[./density_clad]
type = Density
block = 1
density = 6551.0
[../]
[./density_fuel]
type = Density
block = '3 4'
[../]
[]
[Dampers]
[./limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 280125427
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 20
linear_iteration_ratio = 100
dt = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[../]
[./fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3 4'
outputs = exodus
[../]
[./fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = exodus
[../]
[./flux_from_fuel]
type = SideFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = exodus
[../]
[./rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3 4'
[../]
[./rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.3539 # rod height
[../]
[./average_burnup]
type = ElementAverageValue
variable = burnup
block = '3 4'
[../]
[./average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_profile
fuel_outer_radius = 0.0052195
fuel_inner_radius = 0.000
outputs = exodus
[../]
[./power_tc_location]
type = FunctionValuePostprocessor
function = q
point = '0 0.33319 0'
[../]
[./TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 7476 # Global NodeID 7477
[../]
[./elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 1887 # Global NodeID 1888
[../]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = '3 4'
[]
[Outputs]
perf_graph = true
csv = 1
exodus = true
color = false
[./console]
type = Console
max_rows = 25
[../]
[./chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage TC_temp rod_total_power elongation'
execute_on = 'FINAL'
[../]
[]
References
- C. Baker and J. C. Killeen.
Fission gas release during post irradiation annealing of UO$_2$.
In International Conference on Materials for Nuclear Reactor Core Applications, Bristol, United Kingdom, October 27–29. 1987.[BibTeX]
@inproceedings{baker_and_killeen_1987, author = "Baker, C. and Killeen, J. C.", title = "Fission gas release during post irradiation annealing of {UO}$\_2$", year = "1987", booktitle = "International Conference on Materials for Nuclear Reactor Core Applications, Bristol, United Kingdom, October 27--29" }
- T. Barani, E. Bruschi, D. Pizzocri, G. Pastore, P. Van Uffelen, R.L. Williamson, and L. Luzzi.
Analysis of transient fission gas behaviour in oxide fuel using \mbox BISON and \mbox TRANSURANUS.
Journal of Nuclear Materials, 486:96–110, 2017.[BibTeX]
@article{barani_et_al_2016, author = "Barani, T. and Bruschi, E. and Pizzocri, D. and Pastore, G. and Van Uffelen, P. and Williamson, R.L. and Luzzi, L.", title = "Analysis of transient fission gas behaviour in oxide fuel using \mbox{BISON} and \mbox{TRANSURANUS}", journal = "Journal of Nuclear Materials", volume = "486", pages = "96-110", year = "2017" }
- G. Ducros, Y . Pontillon, and P.P. Malgouyres.
Synthesis of the VERCORS experimental program: separate-effect experiments on fission product release, in support of the PHEBUS-FP programme.
Annals of Nuclear Energy, 61:75–87, 2013.[BibTeX]
@article{ducros_et_al_2013, author = "Ducros, G. and Pontillon, Y . and Malgouyres, P.P.", title = "Synthesis of the {VERCORS} experimental program: separate-effect experiments on fission product release, in support of the {PHEBUS-FP} programme", journal = "Annals of Nuclear Energy", year = "2013", volume = "61", pages = "75--87" }
- P. Hermansonn and A.R. Massih.
An effective method for calculation of diffusive flow in spherical grains.
Journal of Nuclear Materials, 304:204–211, 2002.[BibTeX]
@ARTICLE{hermansonn_massih_2002, author = "Hermansonn, P. and Massih, A.R.", title = "An effective method for calculation of diffusive flow in spherical grains", journal = "Journal of Nuclear Materials", year = "2002", volume = "304", pages = "204--211" }
- S. Kashibe, K. Une, and K. Nogita.
Formation and growth of intragranular fission gas bubbles in UO$_2$ fuels with burnup of 6-83 GWd/t.
Journal of Nuclear Materials, 206:22–34, 1969.[BibTeX]
@ARTICLE{kashibe_et_al_1993, author = "Kashibe, S. and Une, K. and Nogita, K.", title = "Formation and growth of intragranular fission gas bubbles in {UO}$\_2$ fuels with burnup of 6-83 {GW}d/t", journal = "Journal of Nuclear Materials", year = "1969", volume = "206", pages = "22--34" }
- T. Kogai.
Modelling of fission gas release and gaseous swelling of light water reactor fuels.
Journal of Nuclear Materials, 244:131–140, 1997.[BibTeX]
@ARTICLE{kogai_1997, author = "Kogai, T.", title = "Modelling of fission gas release and gaseous swelling of light water reactor fuels", journal = "Journal of Nuclear Materials", year = "1997", volume = "244", pages = "131--140" }
- Y.-H. Koo, B.-H. Lee, and D.-S. Sohn.
Analysis of fission gas release and gaseous swelling in UO$_2$ fuel under the effect of external restraint.
Journal of Nuclear Materials, 280:86–98, 2000.[BibTeX]
@ARTICLE{koo_et_al_2000, author = "Koo, Y.-H. and Lee, B.-H. and Sohn, D.-S.", title = "Analysis of fission gas release and gaseous swelling in {UO}$\_2$ fuel under the effect of external restraint", journal = "Journal of Nuclear Materials", year = "2000", volume = "280", pages = "86--98" }
- K. Lassmann, C.T. Walker, J. van de Laar, and F. Lindström.
Modelling the high burnup UO$_2$ structure in LWR fuel.
Journal of Nuclear Materials, 226:1–8, 1995.[BibTeX]
@ARTICLE{lassmann.ea95, author = {Lassmann, K. and Walker, C.T. and van de Laar, J. and Lindstr\"om, F.}, title = "Modelling the high burnup {UO}$\_2$ structure in {LWR} fuel", journal = "Journal of Nuclear Materials", year = "1995", volume = "226", pages = "1--8" }
- B.J. Lewis.
Fission product release from nuclear fuel by recoil and knockout.
Journal of Nuclear Materials, 148:28–42, 1987.[BibTeX]
@ARTICLE{lewis_1987, author = "Lewis, B.J.", title = "Fission product release from nuclear fuel by recoil and knockout", journal = "Journal of Nuclear Materials", year = "1987", volume = "148", pages = "28--42" }
- A.R. Massih and K. Forsberg.
Calculation of grain boundary gaseous swelling in UO$_2$.
Journal of Nuclear Materials, 377:406–408, 2008.[BibTeX]
@ARTICLE{massih_forsberg_2008, author = "Massih, A.R. and Forsberg, K.", title = "Calculation of grain boundary gaseous swelling in {UO}$\_2$", journal = "Journal of Nuclear Materials", year = "2008", volume = "377", pages = "406--408" }
- M. Oguma.
Cracking and relocation behavior of nuclear-fuel pellets during rise to power.
Nuclear Engineering and Design, 76(1):35–45, 1983.[BibTeX]
@article{oguma_1983, author = "Oguma, M.", title = "Cracking and relocation behavior of nuclear-fuel pellets during rise to power", year = "1983", journal = "Nuclear Engineering and Design", volume = "76", number = "1", pages = "35--45" }
- D. R. Olander.
Fundamental aspects of nuclear reactor fuel elements.
Technical Information Center, Energy Research and Development Administration, 1976.[BibTeX]
@BOOK{olander76, author = "Olander, D. R.", title = "Fundamental aspects of nuclear reactor fuel elements", publisher = "Technical Information Center, Energy Research and Development Administration", year = "1976" }
- D. R. Olander and D. Wongsawaeng.
Re-solution of fission gas – A review: Part I. Intragranular bubbles.
Journal of Nuclear Materials, 354:94–109, 2006.[BibTeX]
@article{olander_and_wongsawaeng_2006, author = "Olander, D. R. and Wongsawaeng, D.", title = "Re-solution of fission gas -- {A} review: {P}art {I}. {I}ntragranular bubbles", journal = "Journal of Nuclear Materials", year = "2006", volume = "354", pages = "94--109" }
- D.R. Olander and P. Van Uffelen.
On the role of grain boundary diffusion in fission gas release.
Journal of Nuclear Materials, 288:137–147, 2001.[BibTeX]
@ARTICLE{olander_vanuffelen_2001, author = "Olander, D.R. and Uffelen, P. Van", title = "On the role of grain boundary diffusion in fission gas release", journal = "Journal of Nuclear Materials", year = "2001", volume = "288", pages = "137--147" }
- G. Pastore, L. Luzzi, V. Di Marcello, and P. Van Uffelen.
Physics-based modelling of fission gas swelling and release in UO$_2$ applied to integral fuel rod analysis.
Nuclear Engineering and Design, 256:75–86, 2013.[BibTeX]
@ARTICLE{pastore_et_al_2013, author = "Pastore, G. and Luzzi, L. and Marcello, V. Di and Uffelen, P. Van", title = "Physics-based modelling of fission gas swelling and release in {UO}$\_2$ applied to integral fuel rod analysis", journal = "Nuclear Engineering and Design", year = "2013", volume = "256", pages = "75--86" }
- G. Pastore, D. Pizzocri, S. R. Novascone, D. M. Perez, B. W. Spencer, R.L. Williamson, P. Van Uffelen, and L. Luzzi.
Modelling of transient fission gas behaviour in oxide fuel and application to the BISON code.
In Enlarged Halden Programme Group Meeting, Røros, Norway, September 7–12, volume. 2014.[BibTeX]
@inproceedings{pastore_et_al_2014_ehpg, author = "Pastore, G. and Pizzocri, D. and Novascone, S. R. and Perez, D. M. and Spencer, B. W. and Williamson, R.L. and Uffelen, P. Van and Luzzi, L.", title = "Modelling of Transient Fission Gas Behaviour in Oxide Fuel and Application to the {BISON} Code", year = "2014", booktitle = "Enlarged Halden Programme Group Meeting, R{\o}ros, Norway, September 7--12", volume = "", number = "", pages = "" }
- D Pizzocri, G Pastore, T Barani, A Magni, L Luzzi, P Van Uffelen, SA Pitts, A Alfonsi, and JD Hales.
A model describing intra-granular fission gas behaviour in oxide fuel for advanced engineering tools.
Journal of Nuclear Materials, 2018.[BibTeX]
@article{pizzocri_et_al_2017, author = "Pizzocri, D and Pastore, G and Barani, T and Magni, A and Luzzi, L and Van Uffelen, P and Pitts, SA and Alfonsi, A and Hales, JD", title = "A model describing intra-granular fission gas behaviour in oxide fuel for advanced engineering tools", journal = "Journal of Nuclear Materials", year = "2018", publisher = "Elsevier" }
- D. Pizzocri, G. Pastore, T. Barani, E. Bruschi, L. Luzzi, and P. Van Uffelen.
Modelling of Burst Release in Oxide Fuel and Application to the \mbox TRANSURANUS Code.
In $\mathrm 11^th$ International Conference on WWER Fuel Performance, Modelling and Experimental Support, Varna, Bulgaria, September 26–October 3. 2015.[BibTeX]
@inproceedings{pizzocri_et_al_2015_wwer, author = "Pizzocri, D. and Pastore, G. and Barani, T. and Bruschi, E. and Luzzi, L. and Van Uffelen, P.", title = "Modelling of {B}urst {R}elease in {O}xide {F}uel and {A}pplication to the \mbox{TRANSURANUS} {C}ode", year = "2015", booktitle = "$\mathrm{11^{th}}$ International Conference on WWER Fuel Performance, Modelling and Experimental Support, Varna, Bulgaria, September 26--October 3" }
- D. Pizzocri, C. Rabiti, L. Luzzi, T. Barani, P. Van Uffelen, and G. Pastore.
PolyPole-1: An accurate numeical algorithm for intra-granular fission gas release.
Journal of Nuclear Materials, 478:333–342, 2016.[BibTeX]
@ARTICLE{pizzocri_et_al_2016, author = "Pizzocri, D. and Rabiti, C. and Luzzi, L. and Barani, T. and Uffelen, P. Van and Pastore, G.", title = "Poly{P}ole-1: {A}n accurate numeical algorithm for intra-granular fission gas release", journal = "Journal of Nuclear Materials", year = "2016", volume = "478", pages = "333--342" }
- J. Rest.
The effect of irradiation-induced gas-atom re-solution on grain-boundary bubble growth.
Journal of Nuclear Materials, 321:305–312, 2003.[BibTeX]
@ARTICLE{rest_2003, author = "Rest, J.", title = "The effect of irradiation-induced gas-atom re-solution on grain-boundary bubble growth", journal = "Journal of Nuclear Materials", year = "2003", volume = "321", pages = "305--312" }
- E. Rothwell.
The release of Kr$^85$ from irradiated uranium dioxide on post-irradiation annealing.
Journal of Nuclear Materials, 5():241–249, 1962.[BibTeX]
@article{rothwell_1962, author = "Rothwell, E.", title = "The release of {K}r$^{85}$ from irradiated uranium dioxide on post-irradiation annealing", journal = "Journal of Nuclear Materials", year = "1962", volume = "5", pages = "241--249", number = "" }
- E. Sartori, J. Killeen, and J. A. Turnbull.
International Fuel Performance Experiments (IFPE) Database.
OECD-NEA, 2010, available at http://www.oecd-nea.org/science/fuel/ifpelst.html.[BibTeX]
@misc{ifpe_database, author = "Sartori, E. and Killeen, J. and Turnbull, J. A.", title = "International {F}uel {P}erformance {E}xperiments ({IFPE}) {D}atabase", year = "", note = "{OECD-NEA}, 2010, available at http://www.oecd-nea.org/science/fuel/ifpelst.html" }
- M.V. Speight.
A calculation on the migration of fission gas in material exhibiting precipitation and re-solution of gas atoms under irradiation.
Nuclear Science and Engineering, 37:180–185, 1969.[BibTeX]
@ARTICLE{speight1969, author = "Speight, M.V.", title = "A Calculation on the migration of fission gas in material exhibiting precipitation and re-solution of gas atoms under irradiation", journal = "Nuclear Science and Engineering", year = "1969", volume = "37", pages = "180--185" }
- M.V. Speight and W. Beere.
Vacancy potential and void growth on grain boundaries.
Metal Science, 9:190–191, 1975.[BibTeX]
@ARTICLE{speightandbeere1975, author = "Speight, M.V. and Beere, W.", title = "Vacancy Potential and Void Growth on Grain Boundaries", journal = "Metal Science", year = "1975", volume = "9", pages = "190--191" }
- J.A. Turnbull.
The distribution of intragranular fission gas bubbles in uo2 during irradiation.
Journal of Nuclear Materials, 38(2):203 – 212, 1971.
URL: http://www.sciencedirect.com/science/article/pii/0022311571900444, doi:https://doi.org/10.1016/0022-3115(71)90044-4.[BibTeX]
@article{turnbull_1971, author = "Turnbull, J.A.", title = "The distribution of intragranular fission gas bubbles in UO2 during irradiation", journal = "Journal of Nuclear Materials", volume = "38", number = "2", pages = "203 - 212", year = "1971", issn = "0022-3115", doi = "https://doi.org/10.1016/0022-3115(71)90044-4", url = "http://www.sciencedirect.com/science/article/pii/0022311571900444" }
- K. Une and S. Kashibe.
Fission gas release during post irradiation annealing of BWR fuels.
Journal of Nuclear Science and Technology, 27:1002–1016, 1990.[BibTeX]
@article{une_kashibe_1990, author = "Une, K. and Kashibe, S.", title = "Fission gas release during post irradiation annealing of {BWR} fuels", journal = "Journal of Nuclear Science and Technology", year = "1990", volume = "27", pages = "1002--1016" }
- M.S. Veshchunov.
Modelling of grain face bubbles coalescence in irradiated UO$_2$ fuel.
Journal of Nuclear Materials, 374:44–53, 2008.[BibTeX]
@ARTICLE{veshchunov_2008, author = "Veshchunov, M.S.", title = "Modelling of grain face bubbles coalescence in irradiated {UO}$\_2$ fuel", journal = "Journal of Nuclear Materials", year = "2008", volume = "374", pages = "44--53" }
- R.J. White.
The development of grain-face porosity in irradiated oxide fuel.
Journal of Nuclear Materials, 325:61–77, 2004.[BibTeX]
@ARTICLE{white2004, author = "White, R.J.", title = "The development of grain-face porosity in irradiated oxide fuel", journal = "Journal of Nuclear Materials", year = "2004", volume = "325", pages = "61--77" }
- R.J. White and M.O. Tucker.
A new fission-gas release model.
Journal of Nuclear Materials, 118:1–38, 1983.[BibTeX]
@ARTICLE{whiteandtucker1983, author = "White, R.J. and Tucker, M.O.", title = "A new fission-gas release model", journal = "Journal of Nuclear Materials", year = "1983", volume = "118", pages = "1--38" }