pub struct DeviceFvmState<T: FvmScalar, B: AcceleratorBackend> { /* private fields */ }Expand description
Persistent scalar fields used by the two-kernel conservative FVM path.
Implementations§
Source§impl<T: FvmScalar, B: AcceleratorBackend> DeviceFvmState<T, B>
impl<T: FvmScalar, B: AcceleratorBackend> DeviceFvmState<T, B>
Sourcepub fn upload(
backend: &B,
plan: &DeviceFvmPlan<B>,
cell_values: &[T],
face_mass_flux: &[T],
boundary_values: &[T],
) -> Result<Self, AcceleratorError>
pub fn upload( backend: &B, plan: &DeviceFvmPlan<B>, cell_values: &[T], face_mass_flux: &[T], boundary_values: &[T], ) -> Result<Self, AcceleratorError>
Upload persistent field data and allocate flux/residual workspaces.
Sourcepub fn upload_components(
backend: &B,
plan: &DeviceFvmPlan<B>,
components: usize,
cell_values: &[T],
face_mass_flux: &[T],
boundary_values: &[T],
) -> Result<Self, AcceleratorError>
pub fn upload_components( backend: &B, plan: &DeviceFvmPlan<B>, components: usize, cell_values: &[T], face_mass_flux: &[T], boundary_values: &[T], ) -> Result<Self, AcceleratorError>
Upload component-major state and allocate persistent workspaces.
Sourcepub fn upload_sources(
&mut self,
backend: &B,
face_source: &[T],
cell_source: &[T],
) -> Result<(), AcceleratorError>
pub fn upload_sources( &mut self, backend: &B, face_source: &[T], cell_source: &[T], ) -> Result<(), AcceleratorError>
Refresh explicit component-major face and cell source arrays.
Sourcepub fn upload_boundary_overrides(
&mut self,
backend: &B,
values: &[T],
) -> Result<(), AcceleratorError>
pub fn upload_boundary_overrides( &mut self, backend: &B, values: &[T], ) -> Result<(), AcceleratorError>
Enable explicit per-component Dirichlet overrides for every boundary face.
Operator evaluations normally use the values packed in the boundary policy. This method is the explicit opt-in for component-dependent Dirichlet data.
Sourcepub fn clear_boundary_overrides(
&mut self,
backend: &B,
) -> Result<(), AcceleratorError>
pub fn clear_boundary_overrides( &mut self, backend: &B, ) -> Result<(), AcceleratorError>
Disable all explicit per-component Dirichlet overrides.
Sourcepub fn components(&self) -> usize
pub fn components(&self) -> usize
Number of component-major fields in this state.
Sourcepub fn cell_values(&self) -> &B::Buffer<T>
pub fn cell_values(&self) -> &B::Buffer<T>
Read-only resident cell values.
Sourcepub fn face_mass_flux(&self) -> &B::Buffer<T>
pub fn face_mass_flux(&self) -> &B::Buffer<T>
Read-only resident face mass fluxes.
Sourcepub fn gradient_x(&self) -> &B::Buffer<T>
pub fn gradient_x(&self) -> &B::Buffer<T>
Read-only resident x-gradient values.
Sourcepub fn upload_cell_values(
&mut self,
backend: &B,
values: &[T],
) -> Result<(), AcceleratorError>
pub fn upload_cell_values( &mut self, backend: &B, values: &[T], ) -> Result<(), AcceleratorError>
Refresh all component-major cell values.
Sourcepub fn upload_face_mass_flux(
&mut self,
backend: &B,
values: &[T],
) -> Result<(), AcceleratorError>
pub fn upload_face_mass_flux( &mut self, backend: &B, values: &[T], ) -> Result<(), AcceleratorError>
Refresh the shared face mass-flux field.
Sourcepub fn download_residual(&self, backend: &B) -> Result<Vec<T>, AcceleratorError>
pub fn download_residual(&self, backend: &B) -> Result<Vec<T>, AcceleratorError>
Download the gathered residual vector.