diff --git a/bin/model/TurbulenceModel.py b/bin/model/TurbulenceModel.py index ce6fc82fa1..13673ebe6e 100644 --- a/bin/model/TurbulenceModel.py +++ b/bin/model/TurbulenceModel.py @@ -75,6 +75,7 @@ def __init__(self, case): 'mixing_length', 'k-epsilon', 'k-epsilon-PL', + 'Launder-Sharma', 'Rij-epsilon', 'Rij-SSG', 'Rij-EBRSM', @@ -215,7 +216,7 @@ def setTurbulenceModel(self, model_turb): self.__removeVariablesAndProperties([], 'smagorinsky_constant^2') self.node_turb.xmlRemoveChild('wall_function') - elif model_turb in ('k-epsilon', 'k-epsilon-PL'): + elif model_turb in ('k-epsilon', 'k-epsilon-PL', 'Launder-Sharma'): lst = ('k', 'epsilon') for v in lst: self.setNewVariable(self.node_turb, v, label=v) @@ -480,7 +481,7 @@ def getTurbulenceVariable(self): model = self.getTurbulenceModel() nodeList = [] - if model in ('k-epsilon','k-epsilon-PL'): + if model in ('k-epsilon','k-epsilon-PL', 'Launder-Sharma'): nodeList.append(self.node_turb.xmlGetNode('variable', name='k')) nodeList.append(self.node_turb.xmlGetNode('variable', name='epsilon')) elif model in ('Rij-epsilon', 'Rij-SSG', 'Rij-EBRSM'): @@ -578,6 +579,21 @@ def checkSetkepsilonPL(self): assert mdl.node_turb == self.xmlNodeFromString(doc),\ 'Could not set the linear production k-epsilon turbulence model' + def checkSetLaunderSharma(self): + """Check whether the k-epsilon turbulence model could be set""" + mdl = TurbulenceModel(self.case) + mdl.setTurbulenceModel('Launder-Sharma') + doc =''' + + + + + 1 + + ''' + assert mdl.node_turb == self.xmlNodeFromString(doc),\ + 'Could not set the Launder-Sharma k-epsilon turbulence model' + def checkSetRijepsilon(self): """Check whether the Rij-epsilon turbulence model could be set""" mdl = TurbulenceModel(self.case) diff --git a/gui/Pages/TurbulenceView.py b/gui/Pages/TurbulenceView.py index e2098060a7..1767a73e6d 100644 --- a/gui/Pages/TurbulenceView.py +++ b/gui/Pages/TurbulenceView.py @@ -84,6 +84,8 @@ def __init__(self, parent, case, default): if default['model'] in ('k-epsilon', 'k-epsilon-PL'): title = self.tr("Options for k-epsilon model") + elif default['model'] in ('Launder-Sharma'): + title = self.tr("Options for Launder-Sharma k-epsilon model") elif default['model'] in ('Rij-epsilon', 'Rij-SSG', 'Rij-EBRSM'): title = self.tr("Options for Rij-epsilon model") elif default['model'] == 'k-omega-SST': @@ -210,6 +212,7 @@ def __init__(self, parent=None, case=None): self.modelTurbModel.addItem(self.tr("Mixing length"), "mixing_length") self.modelTurbModel.addItem(self.tr("k-epsilon"), "k-epsilon") self.modelTurbModel.addItem(self.tr("k-epsilon Linear Production"), "k-epsilon-PL") + self.modelTurbModel.addItem(self.tr("Launder-Sharma"), "Launder-Sharma") self.modelTurbModel.addItem(self.tr("Rij-epsilon LRR"), "Rij-epsilon") self.modelTurbModel.addItem(self.tr("Rij-epsilon SSG"), "Rij-SSG") self.modelTurbModel.addItem(self.tr("Rij-epsilon EBRSM"), "Rij-EBRSM") diff --git a/src/gui/cs_gui.c b/src/gui/cs_gui.c index 9ec45e6786..6d4d558bf1 100644 --- a/src/gui/cs_gui.c +++ b/src/gui/cs_gui.c @@ -1571,6 +1571,11 @@ void cs_gui_turb_model(void) turb_mdl->iturb = 21; cs_gui_node_get_child_int(tn_t, "wall_function", &iwallf); cs_gui_node_get_child_status_int(tn_t, "gravity_terms", &(rans_mdl->igrake)); + } + else if (cs_gui_strcmp(model, "Launder-Sharma")) { + turb_mdl->iturb = 22; + cs_gui_node_get_child_int(tn_t, "wall_function", &iwallf); + cs_gui_node_get_child_status_int(tn_t, "gravity_terms", &(rans_mdl->igrake)); } else if (cs_gui_strcmp(model, "Rij-epsilon")) { turb_mdl->iturb = 30; diff --git a/src/gui/cs_gui_boundary_conditions.c b/src/gui/cs_gui_boundary_conditions.c index 90044328ce..11549898b0 100644 --- a/src/gui/cs_gui_boundary_conditions.c +++ b/src/gui/cs_gui_boundary_conditions.c @@ -2015,7 +2015,8 @@ void CS_PROCF (uiclim, UICLIM)(const int *idarcy, return; if ( cs_gui_strcmp(model, "k-epsilon") - || cs_gui_strcmp(model, "k-epsilon-PL")) { + || cs_gui_strcmp(model, "k-epsilon-PL") + || cs_gui_strcmp(model, "Launder-Sharma")) { cs_real_t *new_vals = cs_meg_boundary_function("turbulence_ke", "formula",