|
NeoN
A framework for CFD software
|
Fuses separate implicit divergence and Laplacian operators into a single GaussGreenDivLaplacian kernel.
More...
#include <optimizer.hpp>
Public Member Functions | |
| ~DivLapOptimizer () | |
| ExpressionType | optimize (const ExpressionType &expr) const override |
Return an optimized copy of expr. | |
Public Member Functions inherited from NeoN::dsl::Optimizer< ExpressionType > | |
| virtual | ~Optimizer ()=default |
Fuses separate implicit divergence and Laplacian operators into a single GaussGreenDivLaplacian kernel.
When an expression contains both an implicit DivOperator and an implicit LaplacianOperator, this optimizer replaces them with the combined GaussGreenDivLaplacian operator. The fused operator performs a single face loop instead of two, reducing memory traffic. If either operator is absent the expression is returned unchanged.
| ExpressionType | The DSL expression type being optimized. |
Definition at line 55 of file optimizer.hpp.
|
inline |
Definition at line 59 of file optimizer.hpp.
|
inlineoverridevirtual |
Return an optimized copy of expr.
Implementations must not mutate expr; they return a new expression.
Implements NeoN::dsl::Optimizer< ExpressionType >.
Definition at line 61 of file optimizer.hpp.