NeoN
A framework for CFD software
Loading...
Searching...
No Matches
Public Member Functions | List of all members
NeoN::dsl::DivLapOptimizer< ExpressionType > Class Template Reference

Fuses separate implicit divergence and Laplacian operators into a single GaussGreenDivLaplacian kernel. More...

#include <optimizer.hpp>

Inheritance diagram for NeoN::dsl::DivLapOptimizer< ExpressionType >:
NeoN::dsl::Optimizer< ExpressionType >

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
 

Detailed Description

template<typename ExpressionType>
class NeoN::dsl::DivLapOptimizer< ExpressionType >

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.

Template Parameters
ExpressionTypeThe DSL expression type being optimized.

Definition at line 55 of file optimizer.hpp.

Constructor & Destructor Documentation

◆ ~DivLapOptimizer()

template<typename ExpressionType >
NeoN::dsl::DivLapOptimizer< ExpressionType >::~DivLapOptimizer ( )
inline

Definition at line 59 of file optimizer.hpp.

Member Function Documentation

◆ optimize()

template<typename ExpressionType >
ExpressionType NeoN::dsl::DivLapOptimizer< ExpressionType >::optimize ( const ExpressionType &  expr) const
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.


The documentation for this class was generated from the following file: