- 26 Nov, 2021 2 commits
-
-
Hang Zhou authored
-
Hang Zhou authored
Adding a method to give the minimum value of dual time step. Now, we can set the max/min values of ds by "TimeIntegrator:GESAT_Max" and "TimeIntegrator:GESAT_Min", and the change sloop of ds by "TimeIntegrator:GESAT_Max_Ramp" and "TimeIntegrator:GESAT_Min_Ramp". The selection of GESAT_Min and GESAT_Min_Ramp need to be very careful and change based on cases. Too small values may have no effect, while too big values may break the code.
-
- 07 Nov, 2021 1 commit
-
-
Hang Zhou authored
Modifying the method to set char model for coal combustion. CHar model is given by "Particles: CharModel: Name:". Three char models are available: GasifOxid, CCK and OFF. When "GasifOxid" is chosen, "GasificationModel" and "OxidationModel" need to be given by "Particles: CharModel: GasificationModel: " and "Particles: CharModel: OxidationModel: ". If CCK model is chosen, the sensitivity of the model can be turn on/off by "Particles: CharModel: SensitivityOfCCK:" (default is OFF).
-
- 08 Oct, 2021 1 commit
-
-
Hang Zhou authored
Saving standard number fraction of particles (partNumFracStandTag) for restart. The tests including particles will fail because one more variable is saved now.
-
- 23 Sep, 2021 1 commit
-
-
Hang Zhou authored
1. Correct the mistake in the sensitivity of `src/particles/coal/CharCombustion/CCK/CharSpeciesRHS.h`. The missing nagative sign is added. 2. Modifying the sensitivity of CCK model. Our results have shown that using the real sensitivity or setting the sensitivity to be zero does not affect the results. So, we can set the sensitivity to be zero for most of our cases because the simulation will be faster. We can turn on/off this in the input file by “Particles: CharModel: SensitivityOfCCK: ON/OFF”. The default value of “SensitivityOFCCK” is OFF. 3. The normalized number fraction of particles per gas mass (n_p,norm), instead of the real number fraction of particles per gas mass (n_p) is solved now. n_p,norm=n_p/n_p,stand. The standard value (n_p,stand) can be given in the input file by “Particles: StandardNumFrac:“. Its default value is 1e9. The reason for this is that very big sensitivity is obtained when using CCK model, because n_p is very big (In equation dn_p/dt=-n_p*S_mg/rho_g/u. The sensitivity of the numerator is dn_pdv*S_mg+n_p*dS_mgdv. The second term is big because n_p is very big. Thus, big sensitivity is obtained from this).
-
- 04 May, 2021 1 commit
-
-
Hang Zhou authored
1. Add CCK model for char reactions; 2. Changing coal type "Given_From_InputFile" to be "Custom_by_User".
-
- 30 Sep, 2020 1 commit
-
-
Hang Zhou authored
-
- 29 Sep, 2020 2 commits
-
-
Hang Zhou authored
Correct the mistake about calculating inflow particle loading. Inflow particle density, instead of initial particle density, shoule be used.
-
Hang Zhou authored
For Plug Flow Reactor model, the height of the reactor is not required. When calculating the convection heat transfer between gas phase and surroundings, the heat transfer term is $A*k*(T_g-T_{wall})/V$, with $k$ representing the heat transfer coefficient. Here, A and V are the side surface ($2*pi*r*h$) and volume ($pi*r^2*h$) of the reactor, with $r$ and $h$ representing the radius and height of the reactor. So, we get $A/V=2/r$ where height $h$ is cancelled.
-
- 26 Sep, 2020 1 commit
-
-
Hang Zhou authored
Saving initial mass of particles, moisture and char in paticles for restart, which are used for the calculation of varporization, char gasification/oxidation reaction rate.
-
- 25 Sep, 2020 1 commit
-
-
Hang Zhou authored
Modifying tar and soot model. When tar and soot model is set to be 'OFF' in the input file, tar is assumed to be `C2H2` and soot is not considered. Tar(C2H2) reacts in the gas phase.
-
- 23 Aug, 2020 4 commits
-
-
Hang Zhou authored
When `Restrat` to get S-Curve, that is, using steady state as initial conditions to generate the upper part of S-Curve for combustion, initial value of dual time step `ds` should be set based on `dsInitial` or `GESAT_MAX` givein in the input file. When restarting from one specific dual time step for steady-state running or one specific physical time step for transient running,
-
Hang Zhou authored
1. When particle size is `UserDefinedList`, `NumbersFraction`, instead of `Numbers`, is given in the input file to give the fractions of number of particles with each size. So, the value type should be double, not int. 2. When paricle size distribution is `Uniform', 'Normal', 'LogNormal' or 'Weibull', the number of particle sizes should be given in the input file by `particle:{Size: {NumberOfSizes:}}`. The fraction of numbers of each size is `1/NumberOfSizes`.
-
Hang Zhou authored
Solving the problem about `stof: out of range` when setting Fields based on database for restarting. Using `std::stod`, instead of `std::stof` will solve the problem.
-
Hang Zhou authored
Modifying the method for giving particle loadings for coal particle. Two methods are provided. One is giving fuel-air equivalence ratio in the input file by `Particles: FuelAirEquivalenceRatio:'. The other is giving particle loading directly in the input file by `Particles: {ParticleLoading: ParticleLoadingInflow:}'. For the second method, equivalence ratio is not required to be given in the input file.
-
- 14 Aug, 2020 1 commit
-
-
Hang Zhou authored
Making dual time step `ds` and physical simulation time `simulation_time` to be saved by default because `ds` and `simulation_time` from the restart step are requireded to setup the initial conditions for the next time step. If they are not read from the restart step, `simulation_time` will be set to be zero, which is not what we want when restarting from one specific physical time step for transient process, and `ds` will be set to be the `dsInitial` given in the inout file, which will slow down the converging process if `dsInitial` is too small or blow up the running if `dsInitial` is too big.
-
- 11 Aug, 2020 1 commit
-
-
James Sutherland authored
Plug Flow Reactor Modification See merge request !30
-
- 10 Aug, 2020 2 commits
-
-
Hang Zhou authored
Do not need to save mole fractions of all species by default (mass fractions have been saved by default).
-
Hang Zhou authored
Modifying the method to get mole fraction of the last species for initial/inflow condiitons when species fractions are set based on database. When species fractions are given in the input file, `pokitt::ERRORSPECN` is used (error is given when getting fraction of the last species to be negative or bigger than one.) When species fractions are given based on the database, `pokitt::CLIPSPECN' is used. (For the fraction of the last species, it is set to be `1` when value bigger than one is obtained, and is set to be `0` when negative value is obtained.). In this way, we need to be careful when writing the database to make sure the sum of the first (n-1) species fractions is equal or less than 1.
-
- 04 Aug, 2020 1 commit
-
-
Hang Zhou authored
Adding the function which allows setting initial or inflow conditions based on database coresponding to the grid value. For example, when we have various surrounding temperatures for heat transfer, and want to have various inflow temperatures for each surrouding temperature, we can read the values for temperature from the database, like 'Data.txt'. We can give it by `InitialConditions: {-value: FromDatabase -variable:T}'and 'InitialInflowData: {FileName:Data.txt}' in the input file. Also, if we want to set species mole fractions based on database as well, we can give it by `InitialInflowData: {InitialSpeciesSetting: FromDataBase}' or 'InitialInflowData: {InflowSpeciesSetting: FromDataBase}', instead of specifying species in `InitialConditions` or 'InflowConditions'. (The default for `InitialSpeciesSetting` and `InflowSpeciesSetting` is `FromInputFile`. For this, species fractions need to be given in `InitialConditiobs' or 'InflowConditions' in the input file. Fractions of species not specified in the input file or the database are set to be zero.)
-
- 30 Jul, 2020 1 commit
-
-
Hang Zhou authored
When checking if a speices name read from input file (for example, 'X_O2' and 'Y_O2', or 'X_O2_inflow' and 'Y_O2_inflow') is inflow condition, we need to check if the last seven terms of the name are `_inflow`. (if name.substr(name.size()-7)=="_inflow"). However, the mininum size of name is three, liek `X_H`. Checking the last seven terms will give error when the size of name is less than seven. So, I just check if the last three terms are 'low'.
-
- 23 Jul, 2020 2 commits
-
-
Hang Zhou authored
Calculating number of particles per volume, instead of total number of particles in the reactor. The latter depends on the reactor volume. What we care about is the particle loading (number of particles per volume).
-
Hang Zhou authored
Adding functions for plug flow reactor, so plug flow reactor can be simulated. The reactor type can be given by `ReactorParameters: ReactorType: ` in the input file. Now, three types are supported: `PSRConstangVolume`, 'PSRConstantPressure` and 'PFR`. No default reactor type is set in the code, which must be given in the input file.
-
- 17 Jun, 2020 1 commit
-
-
Hang Zhou authored
Deleting the weight functions used to calculate the source terms in CPD models. Because the source term is releated to the mass of labile bridge and delta, it will become zero when the mass is zero. And the source terms are set to be zero if mass is negative. So, it will not oscillate around zero like what we have for vaporization model, that is, weight function is not required.
-
- 27 May, 2020 1 commit
-
-
Hang Zhou authored
Adding an option to specify reactor shape. Now, spherical and cylinder are supported, which can be given in the input file by `ReactorParameters: {ReactorShape:}'. Radius needs to be given for both types of reactor (default: 0.001). Height needs to be given for cylinder reactor (default: 0.0).
-
- 26 May, 2020 1 commit
-
-
Hang Zhou authored
Modifying the method to set initial/inflow values of coal particle loading, CPD parameters (l, delta_i and g_i), and tar and soot mass. They can be given in the input file by `Particles: {ParticleLoading: ParticleLoadingInflow: }`, `Particles:{CPDInflow:{l: deltai: gi:} CPDInit:{l: deltai: gi:}}`, and `Particles:{TarSootInflowFrac: TarSootInitFrac:}`, respectively. If they are not given in the input file, they will be set based on the equivalence ratio and coal composition.
-
- 19 May, 2020 3 commits
-
-
Hang Zhou authored
Adding coal type `Given_From_Input_File` into char models. Modifying the coal type name used in interpolation to get CPD parameters, whose format should be camelcase.
-
James Sutherland authored
Add a coal type named `Given_From_InputFile` See merge request !29
-
Hang Zhou authored
Modifying the format of coal type name given in the input file, which mixes camelcase with underscores before, such as `NorthDakota_Lignite`. Camelcase is used now, such as 'NorthDakotaLignite'.
-
- 15 May, 2020 1 commit
-
-
Hang Zhou authored
Add a coal type named `Given_From_InputFile`, which ultimate and proximate analysis are given in the input file by "CoalComposiiton: UltimateAnalysis: {C: H: O: N: S:} ProximateAnalysis:{Moisture: Ash: Volatile: FixedC:}. Also, its CPD data is interpolated based on the CPD data of six exist coal types.
-
- 11 May, 2020 2 commits
-
-
James Sutherland authored
Cpd cv fix See merge request !28
-
Hang Zhou authored
Changing the method to give heat transfer coefficient and surrounding temperature in the input file. Instead of using `HeatTransferParameter: -value: -variable:`, `HeatTransferParameter: HeatTransferCoefficient:' and 'HeatTransferParameter: SurroundingsTemperature:' are used. In this case, tag names of `heat_transfer_coefficient` and `surroundings_temperature` are hard coded and could not be changed in the input file.
-
- 05 May, 2020 2 commits
-
-
Hang Zhou authored
-
Hang Zhou authored
Modifying the mixing term in Jacobian matrix for gas phase under constant volume condition. Giving `dmixGasdU=1/tau` and substracting this from the matrix. Because mixing term in Jacobian matrix for particle phase is given by `dmixPartdV * dVdU`, which is different from `dmixGasdU` and coudld not be given using `Expr::matrix::ScaledIdentityMatrix<FieldT>::SCALEDIVIDE` * 'Expr::matrix::PermutationSubMatrix` for all solved variables, including gas and particle phase variables.
-
- 28 Apr, 2020 4 commits
-
-
Hang Zhou authored
Modifying reaction rate of `C`, `Delta_i`, `G_i` and `l`. Using weight function as we did in vaporization rate for these reactions rates to avoid getting negative mass for these components.
-
Hang Zhou authored
2. Clear up the code setting the initial/inflow masses of coal particle, moisture, volatile and char, and labile bridge(l) and delta in CPD model. 3. Modifying the mistake of index of `delta_i` and `g_i` tags and the mistake in sensitivity of `E_fun.h`.
-
Hang Zhou authored
Modifying the mixing term in Jacobian matrix for particle equations, `dmixingPartdV`. The mixing term in particle temperature equation depends on particle mass fraction per gas mass. Therefore, `dmixingPartdV` should include term `dmixingPartdYp` (Yp is the particle mass fraction per gas mass). It is not only for coal particles, and should be included for all types of particles.
-
Hang Zhou authored
Deleting the unused file 'src/particles/ParticleNumFraction.h`. Particle loading is directly given in the input file, instead of being calculated using number of particle, density of gas phase and reactor size.
-
- 15 Apr, 2020 1 commit
-
-
Hang Zhou authored
1. Modifying the tag name for heat tranfer coefficient and surroundings temperature for calculating heat transfer between gas and surrounding: Using lower case with words separated by underscores, instead of upper case. 2. Modifying the input files for test in `rtest` directory based on the new method giving heat transfer parameters between gas and surroundings.
-
- 10 Apr, 2020 1 commit
-
-
James Sutherland authored
Update steady_cv_ad_closed__Tpzvar.yaml. Closes #17 See merge request !26
-