Skip to content

Commit

Permalink
v3.0.7
Browse files Browse the repository at this point in the history
  • Loading branch information
rphm committed Jan 4, 2019
1 parent 7372b07 commit bcea879
Show file tree
Hide file tree
Showing 105 changed files with 4,612 additions and 1,276 deletions.
40 changes: 40 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,43 @@
### 3.0.7
##### Features
* DatabaseEditor: Properties can now be directly edited within the GUI and all supported property types can be selected from a dropdown menu
* AnalysisTools - MeasurementList: new analysis tool for visualization of all loaded MRuns and parameters in a table, supports copy/paste functionalities to clipboard
* AnalysisTools - TemperatureFit: customized Planck curves can be added for comparison to the 'Fit visualization' plot

* AnalysisTools - TemperatureFit: added plot tools and auto-scaling to 'Fit visualization' plot
* AnalysisTools - TemperatureFit: added plot tools for 'Result' plot
* AnalysisTools - ParameterAnalysis: new parameter types 'min/max of range' and 'time at min/max signal value'
* AnalysisTools - ParameterAnalysis: plot type of 'Parameter Visualization' plot can now be changed by right click menu
* Export: IOCSV: temperature traces can now be exported, export options added


##### Bug fixes
* Code fixes for support of MSVC2017 compiler
* AnalysisTools - TemperatureFit: fixed iteration counter in spectrum plot
* AnalysisTools - TemperatureFit: auto scaling modified to prevent the plot to clip into the legend
* AnalysisTools - ParameterAnalysis: shows now ND-transmission for each channel instead of filter identifier
* DataTableWidget: x-values are now shown in their correct unit (previously only time unit)
* Export: IOMatlab: handling for default ND-filter added (vector in MATLAB files could be empty)
* Export: IOCSV: removed false error message about 'dt'
* Import: ImportDialog: now shows name of LIISettings filename in error message if file was not found
* IOCustom/ImportDialogHelper: fixed import window not closing after successful signal import
* NotificationWindow: fixed auto scrolling bug when new log messages are appended
* MRunSettings: fix for "settings not found" problem occured in some cases


##### Other changes

* IOMatlab, SignalManager, ExportOverwriteDialog: dialog window is opened if export filename already exists (overwrite or choose another name)
* DatabaseEditor: reminder for 'unsaved changes' added
* DatabaseEditor: reworked error handling
* DatabaseEditor: added generation of unique filenames, dialog is now instanciated with db type to check for name duplicates
* DatabaseEditor, MasterWindow: dialog window opens at exit if database editor contains unsaved changes
* MRunDetails: settings changes are now color-marked, warning at exit added if settings are not saved
* Signal: added functions to calculate min and max value of signal range
* Signal: added functions to calculate time at max/min value
* AnalysisTools - TemperatureFit: moved 'clear plot' button from 'Fit' plot toolbar to planck curve settings



### 3.0.6
Expand Down
Binary file not shown.
Binary file not shown.
21 changes: 19 additions & 2 deletions src/LIISim3.pro
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,15 @@ SOURCES += \
calculations/standarddeviation.cpp \
gui/utils/plotzoomer.cpp \
signal/processing/plugins/transfer.cpp \
gui/utils/mrundetailswidget.cpp
gui/utils/mrundetailswidget.cpp \
gui/utils/exportoverwritedialog.cpp \
gui/databaseEditor/dbelementnamedialog.cpp \
gui/databaseEditor/tablerowelement.cpp \
gui/databaseEditor/gasmixturerow.cpp \
gui/databaseEditor/liisettingsnamedialog.cpp \
gui/analysisTools/tools/measurementlist.cpp \
calculations/models/htm_musikhin.cpp \
gui/utils/flowlayout.cpp


HEADERS += \
Expand Down Expand Up @@ -480,7 +488,16 @@ HEADERS += \
calculations/standarddeviation.h \
gui/utils/plotzoomer.h \
signal/processing/plugins/transfer.h \
gui/utils/mrundetailswidget.h
gui/utils/mrundetailswidget.h \
gui/utils/exportoverwritedialog.h \
gui/databaseEditor/dbelementnamedialog.h \
gui/databaseEditor/tablerowelement.h \
gui/databaseEditor/gasmixturerow.h \
gui/databaseEditor/liisettingsnamedialog.h \
gui/analysisTools/tools/measurementlist.h \
gui/analysisTools/tools/measurementlisthelper.h \
calculations/models/htm_musikhin.h \
gui/utils/flowlayout.h

# include PicoScope/DataAcquisition Code
# if LIISIM_PICOSCOPE has been defined (see top of this file)
Expand Down
6 changes: 6 additions & 0 deletions src/calculations/models/htm_mansmann.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,17 @@ void HTM_Mansmann::initModelVariables()

double HTM_Mansmann::calculateEvaporation(double T, double dp)
{
if(!useEvaporation) return 0.0;

//return HeatTransferModel::calculateBaseEvaporation(T, dp);
return material.H_v(T) * material.molar_mass_v(T) * this->calculateMassLossEvap(T, dp);
}


double HTM_Mansmann::calculateConduction(double T, double dp)
{
if(!useConduction) return 0.0;

double T_g = process.T_g;

//return HeatTransferModel::calculateBaseConduction(T, dp);
Expand All @@ -74,6 +78,7 @@ double HTM_Mansmann::calculateConduction(double T, double dp)

double HTM_Mansmann::calculateMassLossEvap(double T, double dp)
{
if(!useEvaporation) return 0.0;
//return HeatTransferModel::calculateBaseMassLossEvap(T, dp);
return 0.0;

Expand All @@ -87,6 +92,7 @@ double HTM_Mansmann::calculateMassLossEvap(double T, double dp)

double HTM_Mansmann::calculateRadiation(double T, double dp)
{
if(!useRadiation) return 0.0;
//return HeatTransferModel::calculateBaseRadiation(T, dp);
return Constants::pi
* dp * dp
Expand Down
162 changes: 81 additions & 81 deletions src/calculations/models/htm_menser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,109 +60,109 @@ double HTM_Menser::calculateEvaporation(double T, double dp)
return -1.0 * material.H_v(T)
/ material.molar_mass_v(T)
* calculateMassLossEvap(T, dp);
}
}


/**
* @brief HTM_Menser::calculateMassLossEvap Conduction
* @param T particle temperature [K]
* @param dp particle diameter [m]
* @return
*/
double HTM_Menser::calculateMassLossEvap(double T, double dp)
{
if(!useEvaporation) return 0.0;

/**
* @brief HTM_Menser::calculateMassLossEvap Conduction
* @param T particle temperature [K]
* @param dp particle diameter [m]
* @return
*/
double HTM_Menser::calculateMassLossEvap(double T, double dp)
{
if(!useEvaporation) return 0.0;

// Kelvin equation

// F. Millot, V. Sarou-Kanian, J. C. Rifflet, and B. Vinet,
// "The surface tension of liquid silicon at high temperature,"
// Materials Science and Engineering: A 495, 8-13 (2008).
// Kelvin equation

// "Fig. 6 recapitulates the evolution of σ in the temperature range
// (1550–2400 K) in Ar and Ar/2.5% H2 and for different droplet
// masses. The surface tension can be expressed by the following
// linear regression:
// σ = (732 ± 8) − (0.086 ± 0.004)(T − 1685) (6)
// with σ in mN/m, and T in K"
// F. Millot, V. Sarou-Kanian, J. C. Rifflet, and B. Vinet,
// "The surface tension of liquid silicon at high temperature,"
// Materials Science and Engineering: A 495, 8-13 (2008).

double gamma = (732.0 - 0.086*(T - 1685.0))*1E-3; // [N/m]
// "Fig. 6 recapitulates the evolution of σ in the temperature range
// (1550–2400 K) in Ar and Ar/2.5% H2 and for different droplet
// masses. The surface tension can be expressed by the following
// linear regression:
// σ = (732 ± 8) − (0.086 ± 0.004)(T − 1685) (6)
// with σ in mN/m, and T in K"

// Specific gas constant [J/kg/K]
double R_s = Constants::R / material.molar_mass_v(T);
double gamma = (732.0 - 0.086*(T - 1685.0))*1E-3; // [N/m]

double p_v_kelvin = material.p_v(T)
* exp( 4.0 * gamma
/ (dp * material.rho_p(T)
* R_s
* T)
);
// Specific gas constant [J/kg/K]
double R_s = Constants::R / material.molar_mass_v(T);

return -1.0 * Constants::pi * dp * dp * 0.25
* p_v_kelvin
/ Constants::k_B
/ T
* material.c_tv(T)
/ Constants::N_A * material.molar_mass_v(T);
}
double p_v_kelvin = material.p_v(T)
* exp( 4.0 * gamma
/ (dp * material.rho_p(T)
* R_s
* T)
);

return -1.0 * Constants::pi * dp * dp * 0.25
* p_v_kelvin
/ Constants::k_B
/ T
* material.c_tv(T)
/ Constants::N_A * material.molar_mass_v(T);
}

/**
* @brief HTM_Menser::calculateConduction Conduction
* @param T particle temperature [K]
* @param dp particle diameter [m]
* @return
*/
double HTM_Menser::calculateConduction(double T, double dp)
{
if(!useConduction) return 0.0;

/**
* @brief HTM_Menser::calculateConduction Conduction
* @param T particle temperature [K]
* @param dp particle diameter [m]
* @return
*/
double HTM_Menser::calculateConduction(double T, double dp)
{
if(!useConduction) return 0.0;

// calculate sum for all gases in mixture
double sum = 0.0;

QList<GasProperties*> gases = gasmixture.getAllGases();
// calculate sum for all gases in mixture
double sum = 0.0;

for(int i = 0; i < gases.size(); i++)
{
GasProperties* gas = gases.at(i);
QList<GasProperties*> gases = gasmixture.getAllGases();

sum = sum + (gasmixture.getX(i)
* gas->c_tg(process.T_g)
* gas->alpha_T()
* (2.0 + gas->zeta() / 2.0));
for(int i = 0; i < gases.size(); i++)
{
GasProperties* gas = gases.at(i);

//qDebug() << "HTM_Menser: cond: i: " << i << gasmixture.getX(i) << gases.at(i)->name << " sum:" << sum;
}
sum = sum + (gasmixture.getX(i)
* gas->c_tg(process.T_g)
* gas->alpha_T()
* (2.0 + gas->zeta() / 2.0));

return Constants::pi * dp *dp * 0.25
* process.p_g / Constants::k_B / process.T_g
* sum
* Constants::k_B * (T - process.T_g);
//qDebug() << "HTM_Menser: cond: i: " << i << gasmixture.getX(i) << gases.at(i)->name << " sum:" << sum;
}

return Constants::pi * dp *dp * 0.25
* process.p_g / Constants::k_B / process.T_g
* sum
* Constants::k_B * (T - process.T_g);
}

/**
* @brief HTM_Menser::calculateRadiation
* @param T particle temperature [K]
* @param dp particle diameter [m]
* @return
*/
double HTM_Menser::calculateRadiation(double T, double dp)
{
if(!useRadiation) return 0.0;

// not used in this model
return 0.0;
}
/**
* @brief HTM_Menser::calculateRadiation
* @param T particle temperature [K]
* @param dp particle diameter [m]
* @return
*/
double HTM_Menser::calculateRadiation(double T, double dp)
{
if(!useRadiation) return 0.0;

// not used in this model
return 0.0;
}


/*******************************
* NOT USED IN THIS MODEL
*******************************/
double HTM_Menser::calculateMassLossOx(double T, double dp) { return 0.0; }
/*******************************
* NOT USED IN THIS MODEL
*******************************/
double HTM_Menser::calculateMassLossOx(double T, double dp) { return 0.0; }

double HTM_Menser::calculateOxidation(double T, double dp) { return 0.0; }
double HTM_Menser::calculateAnnealing(double T, double dp) { return 0.0; }
double HTM_Menser::calculateThermionicEmission(double T, double dp) { return 0.0; }
double HTM_Menser::calculateOxidation(double T, double dp) { return 0.0; }
double HTM_Menser::calculateAnnealing(double T, double dp) { return 0.0; }
double HTM_Menser::calculateThermionicEmission(double T, double dp) { return 0.0; }
Loading

0 comments on commit bcea879

Please sign in to comment.