upml: critical bug in upml grading function
wrong upml grading function has made the pml unstable or fail for small mesh delta unitspull/1/head
parent
a6d5d79ced
commit
ca8c5eeee4
|
@ -25,7 +25,7 @@ Operator_Ext_UPML::Operator_Ext_UPML(Operator* op) : Operator_Extension(op)
|
|||
{
|
||||
m_GradingFunction = new FunctionParser();
|
||||
//default grading function
|
||||
SetGradingFunction(" -log(1e-6)*log(2.5)/(2*dl*pow(2.5,W/dl)-1) * pow(2.5, D/dl) / Z ");
|
||||
SetGradingFunction(" -log(1e-6)*log(2.5)/(2*dl*Z*(pow(2.5,W/dl)-1)) * pow(2.5, D/dl) ");
|
||||
|
||||
for (int n=0; n<6; ++n)
|
||||
{
|
||||
|
|
|
@ -54,7 +54,7 @@ public:
|
|||
W = width (length) of the pml in meter
|
||||
N = number of cells for the pml
|
||||
Z = wave impedance at the current depth and position
|
||||
example: SetGradingFunction("-log(1e-6)*log(2.5)/(2*dl*pow(2.5,W/dl)-1) * pow(2.5, D/dl) / Z");
|
||||
example: SetGradingFunction(" -log(1e-6)*log(2.5)/(2*dl*Z*(pow(2.5,W/dl)-1)) * pow(2.5, D/dl) ");
|
||||
|
||||
An empty function string will be ignored.
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue