OpenFOAM默认是使用SI单位制,但偶尔可能需要使用自己定义的单位,甚至进行无量纲设置。
无量纲计算设置
在controlDict中,debug Switch中的dimensionSet设置为0,就可以达到不检查单位的目的(未经测试),具体查找思路如下:
- 参见OpenFOAM User Guide里面的描述(见3.6.2 Debug messaging and optimisation switches),可以通过dimensionSet来控制是否检查单位。
- 查看代码,可以发现dimensionSet的debug switch确实是控制了检查单位的开关。('/OpenFOAM/dimensionSet/dimensionSet.C')
- 在'$WM_PROJECT_DIR/etc/controlDict'文件中,dimesnsionSet也默认设置为1
- 但是,需要注意的是,NS方程的无量纲形式与有量纲形式是有区别的,若需求解无量纲的NS方程,需要自己编写/修改求解器。
修改单位制
参见OpenFOAM UserGuide关于dimensional units一节,可以看到在controlDict其实挂载了一个subDict,位于'$WM_PROJECT_DIR/etc/controlDict',具体内容为:
DimensionSets
{
unitSet SI; // USCS
SICoeffs
{
// Basic units
kg kg [1 0 0 0 0 0 0] 1.0;
m m [0 1 0 0 0 0 0] 1.0;
s s [0 0 1 0 0 0 0] 1.0;
K K [0 0 0 1 0 0 0] 1.0;
mol mol [0 0 0 0 1 0 0] 1.0;
A A [0 0 0 0 0 1 0] 1.0;
Cd Cd [0 0 0 0 0 0 1] 1.0;
// Derived units
Hz Hz [s^-1] 1.0;
N N [kg m s^-2] 1.0;
Pa Pa [N m^-2] 1.0;
J J [N m] 1.0;
W W [J s^-1] 1.0;
// Some non-symbolic ones
area area [m^2] 1.0;
volume volume [m^3] 1.0;
density density [kg m^-3] 1.0;
acceleration acceleration [m s^-2] 1.0;
kinematicPressure kinematicPressure [Pa density^-1] 1.0;
// Scaled units. Only allowed in dimensionedType (dimensionedScalar,
// dimensionedVector etc.) and UniformDimensionedField, not
// in DimensionedField or GeometricField
cm cm [m] 1e-2;
mm mm [m] 1e-3;
km km [m] 1e3;
// Set of units used for printing. Can be any basic or derived
// but not scaled (only supported for dimensionedScalar, etc)
// writeUnits (kg m s K mol A Cd);
}
USCSCoeffs
{
// Basic units
lb lb [1 0 0 0 0 0 0] 1.0;
ft ft [0 1 0 0 0 0 0] 1.0;
s s [0 0 1 0 0 0 0] 1.0;
R R [0 0 0 1 0 0 0] 1.0;
mol mol [0 0 0 0 1 0 0] 1.0;
A A [0 0 0 0 0 1 0] 1.0;
Cd Cd [0 0 0 0 0 0 1] 1.0;
// Set of units used for printing. Can be any basic or derived
// but not scaled (only supported for dimensionedScalar, etc)
// writeUnits (lb ft s R mol A Cd);
}
}
可以看到,里面对量纲进行了设置,因此可以自己在controlDict中定义一个新的DimensionSets字典覆盖默认的设置,从而达到修改默认单位。
-----------------------------------------------------------
本文来自博客园,作者:小厨房,转载请注明原文链接:https://www.cnblogs.com/erichf/p/13583242.html,否则视为侵权
如有疑问,请站内留言 或加 QQ:②⑨⓪②② ⑦③⑦⑨
-----------------------------------------------------------