pub struct MMSPDEProblem<F: IntegrateFloat, S: ExactSolution<F>> { /* private fields */ }Expand description
Manufactured PDE problem for verification
Implementations§
Source§impl<F: IntegrateFloat, S: ExactSolution<F>> MMSPDEProblem<F, S>
impl<F: IntegrateFloat, S: ExactSolution<F>> MMSPDEProblem<F, S>
Sourcepub fn new_poisson_2d(
exact_solution: S,
domain_x: [F; 2],
domainy: [F; 2],
) -> Self
pub fn new_poisson_2d( exact_solution: S, domain_x: [F; 2], domainy: [F; 2], ) -> Self
Create manufactured 2D Poisson problem: -∇²u = f
Sourcepub fn new_poisson_3d(
exact_solution: S,
domain_x: [F; 2],
domain_y: [F; 2],
domain_z: [F; 2],
) -> Self
pub fn new_poisson_3d( exact_solution: S, domain_x: [F; 2], domain_y: [F; 2], domain_z: [F; 2], ) -> Self
Create manufactured 3D Poisson problem: -∇²u = f
Sourcepub fn new_diffusion_2d(
exact_solution: S,
domain_x: [F; 2],
domain_y: [F; 2],
diffusion_coeff: F,
) -> Self
pub fn new_diffusion_2d( exact_solution: S, domain_x: [F; 2], domain_y: [F; 2], diffusion_coeff: F, ) -> Self
Create manufactured 2D diffusion problem: ∂u/∂t = α∇²u + f
Sourcepub fn new_wave_2d(
exact_solution: S,
domain_x: [F; 2],
domain_y: [F; 2],
wave_speed: F,
) -> Self
pub fn new_wave_2d( exact_solution: S, domain_x: [F; 2], domain_y: [F; 2], wave_speed: F, ) -> Self
Create manufactured 2D wave problem: ∂²u/∂t² = c²∇²u + f
Sourcepub fn new_helmholtz_2d(
exact_solution: S,
domain_x: [F; 2],
domainy: [F; 2],
k: F,
) -> Self
pub fn new_helmholtz_2d( exact_solution: S, domain_x: [F; 2], domainy: [F; 2], k: F, ) -> Self
Create manufactured 2D Helmholtz problem: ∇²u + k²u = f
Sourcepub fn source_term(&self, coordinates: &[F]) -> F
pub fn source_term(&self, coordinates: &[F]) -> F
Get manufactured source term for the PDE
Sourcepub fn boundary_condition(&self, x: F, y: F) -> F
pub fn boundary_condition(&self, x: F, y: F) -> F
Get boundary condition from exact solution (2D)
Sourcepub fn boundary_condition_3d(&self, x: F, y: F, z: F) -> F
pub fn boundary_condition_3d(&self, x: F, y: F, z: F) -> F
Get boundary condition from exact solution (3D)
Sourcepub fn exact_at_3d(&self, x: F, y: F, z: F) -> F
pub fn exact_at_3d(&self, x: F, y: F, z: F) -> F
Evaluate exact solution (3D)
Sourcepub fn parameters(&self) -> &PDEParameters<F>
pub fn parameters(&self) -> &PDEParameters<F>
Get PDE parameters
Trait Implementations§
Source§impl<F: Debug + IntegrateFloat, S: Debug + ExactSolution<F>> Debug for MMSPDEProblem<F, S>
impl<F: Debug + IntegrateFloat, S: Debug + ExactSolution<F>> Debug for MMSPDEProblem<F, S>
Auto Trait Implementations§
impl<F, S> Freeze for MMSPDEProblem<F, S>
impl<F, S> RefUnwindSafe for MMSPDEProblem<F, S>where
S: RefUnwindSafe,
F: RefUnwindSafe,
impl<F, S> Send for MMSPDEProblem<F, S>
impl<F, S> Sync for MMSPDEProblem<F, S>
impl<F, S> Unpin for MMSPDEProblem<F, S>
impl<F, S> UnwindSafe for MMSPDEProblem<F, S>where
S: UnwindSafe,
F: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more