which value should I give to the quantities in butterfly and which parameter is it in openfoam. I searched the keyword " quantities" and got no result.
https://grasshopperdocs.com/components/butterfly/relaxtionFactors.html
OK, I think it should be the text like “T” “U” etc.
04_atrium_buoyancy_modified.gh (487.7 KB)
I changed the 04_atrium_buoyancy.gh example a bit to let all the 4 windows as inlet and reduced the wind speed. But I get something like this
this issue is mentioned several time by the others
There are some guess, why it happend,
-
Rhino is not opened with unit meter or set to meter before the gh file is loaded. It is useless to change the unit to meter if gh file is already open.
-
The wind speed of inlet is to small and the opening of the roof is too big
any idea?
This may be causing the problem.
I did the calculation and it diverged by 97 steps. The flow rate was not balanced.
It may be necessary to change the boundary conditions, reduce the relaxation factor, or change the mesh fineness.
The default value of relaxation factor in butterfly is defined here.
%USERPROFILE%\AppData\Roaming\McNeel\Rhinoceros\6.0\scripts\butterfly\fvSolution.py
line55-58
__default_values['relaxationFactors']['p'] = '0.3'
__default_values['relaxationFactors']['U'] = '0.7'
__default_values['relaxationFactors']['k'] = '0.7'
__default_values['relaxationFactors']['epsilon'] = '0.7'
line76-111
@classmethod
def from_recipe(cls, recipe=0):
"""Generate fvSolution for a particular recipe.
Args:
recipe: 0: incompressible, 1: heat transfer.
"""
_cls = cls()
if recipe == 0:
# steady incompressible
_values = {
'solvers': {'p_rgh': None, 'T': None},
'SIMPLE': {'residualControl': {'p_rgh': None, 'T': None}},
'relaxationFactors': {'p_rgh': None, 'T': None}
}
elif recipe == 1:
# heat transfer
_values = {
'solvers': {'p': None,
'p_rgh': {'solver': 'PCG',
'preconditioner': 'DIC',
'tolerance': '1e-08',
'relTol': '0.01'},
'T': {'relTol': '0.1', 'tolerance': '1e-8',
'nSweeps': '1', 'smoother': 'GaussSeidel',
'solver': 'smoothSolver'}},
'SIMPLE': {'residualControl': {'p': None, 'p_rgh': '1e-4',
'T': '1e-4'},
'pRefPoint': '(0 0 0)', 'pRefValue': '0'},
'relaxationFactors': {'p': None, 'p_rgh': '0.3', 'T': '0.5'}}
# update values based on the recipe.
_cls.update_values(_values, mute=True)
return _cls