|
VertexCFD
0.0-dev
|
Compute a stable time‑step size for the conduction equation. More...
#include <VertexCFD_Closure_ConductionTimeStepSize.hpp>


Public Types | |
| using | scalar_type = typename EvalType::ScalarT |
| Scalar type used by the evaluation type. More... | |
Public Member Functions | |
| ConductionTimeStepSize (const panzer::IntegrationRule &ir) | |
| Constructor. More... | |
| void | evaluateFields (typename Traits::EvalData workset) override |
| Evaluate the time‑step size on the supplied workset. More... | |
| KOKKOS_INLINE_FUNCTION void | operator() (const Kokkos::TeamPolicy< PHX::exec_space >::member_type &team) const |
| Functor invoked by Kokkos for each team of cells. More... | |
Public Attributes | |
| PHX::MDField< scalar_type, panzer::Cell, panzer::Point > | _local_dt |
| Output field: local time‑step size. More... | |
Compute a stable time‑step size for the conduction equation.
The time‑step is based on a local diffusion CFL condition using the thermal conductivity, specific heat, solid density and element length.
The evaluator produces a scalar field local_dt defined at each cell and integration point. ------------------------------------------------------------------------—//
| using VertexCFD::ClosureModel::ConductionTimeStepSize< EvalType, Traits >::scalar_type = typename EvalType::ScalarT |
Scalar type used by the evaluation type.
Typically this is either double or a Sacado automatic‑differentiation type.
| VertexCFD::ClosureModel::ConductionTimeStepSize< EvalType, Traits >::ConductionTimeStepSize | ( | const panzer::IntegrationRule & | ir | ) |
Constructor.
Registers the fields that this evaluator computes and depends on.
| [in] | ir | Integration rule providing data layout information. |
|
override |
Evaluate the time‑step size on the supplied workset.
This method is called by the Phalanx evaluation engine. It launches a Kokkos team‑level parallel loop that invokes the functor operator().
| [in] | workset | Evaluation data containing the cell range. |
| KOKKOS_INLINE_FUNCTION void VertexCFD::ClosureModel::ConductionTimeStepSize< EvalType, Traits >::operator() | ( | const Kokkos::TeamPolicy< PHX::exec_space >::member_type & | team | ) | const |
Functor invoked by Kokkos for each team of cells.
Computes the local diffusion time‑step size for each cell and integration point using the formula
\[ \Delta t = \frac{\rho c_p \, \Delta x^2}{2 k}, \]
where \(\rho\) is solid density, \(c_p\) is specific heat, \(\Delta x\) is the element length, and \(k\) is thermal conductivity.
| [in] | team | Kokkos team member representing a subset of cells. |
| PHX::MDField<scalar_type, panzer::Cell, panzer::Point> VertexCFD::ClosureModel::ConductionTimeStepSize< EvalType, Traits >::_local_dt |
Output field: local time‑step size.
Dimensions: (Cell, Point)