pub struct Config {Show 17 fields
pub linear_problem: bool,
pub transient: bool,
pub dynamics: bool,
pub constant_tangent: bool,
pub control: Control,
pub gravity: Option<FnTime>,
pub axisymmetric: bool,
pub plane_stress: bool,
pub thickness: f64,
pub total_stress: bool,
pub initialization: Init,
pub param_fluids: Option<ParamFluids>,
pub n_integ_point: HashMap<CellAttribute, usize>,
pub sym_jacobian: bool,
pub sym_pos_def_jacobian: bool,
pub lin_sol_genie: Genie,
pub lin_sol_params: LinSolParams,
}Expand description
Holds configuration parameters
Fields§
§linear_problem: boolLinear problem
transient: boolTransient analysis (with first time derivative of primary variables)
dynamics: boolDynamics analysis (with second time derivative of primary variables)
constant_tangent: boolPseudo-Newton method with constant-tangent operator
control: ControlHolds control variables for the (pseudo) time integration over the simulation period
gravity: Option<FnTime>Gravity acceleration (positive variable)
Note: The corresponding acceleration vector will be directed against y in 2D or z in 3D;
e.g., a_gravity = {0, -GRAVITY}ᵀ in 2D or a_gravity = {0, 0, -GRAVITY}ᵀ in 3D.
Example:
const GRAVITY: f64 = 10.0;
config.gravity = Some(|_| GRAVITY);axisymmetric: boolAxisymmetric problem represented in 2D (instead of plane-strain)
plane_stress: boolPlane-stress problem instead of plane-strain iff 2D
thickness: f64Thickness for plane-stress or 1.0 otherwise
total_stress: boolTotal stress analysis (instead of effective stresses)
initialization: InitOption to initialize stress state
param_fluids: Option<ParamFluids>Parameters for fluids
n_integ_point: HashMap<CellAttribute, usize>Number of integration points
sym_jacobian: boolThe Jacobian (stiffness matrix) is symmetric
sym_pos_def_jacobian: boolThe Jacobian (stiffness matrix) is symmetric and positive definite
lin_sol_genie: GenieLinear solver type
lin_sol_params: LinSolParamsParameters for the sparse solver
Implementations§
Source§impl Config
impl Config
Sourcepub fn validate(&self, ndim: usize) -> Option<String>
pub fn validate(&self, ndim: usize) -> Option<String>
Validates all data
Returns a message with the inconsistent data, or returns None if everything is all right.
Sourcepub fn validate_or_panic(&self, ndim: usize, verbose: bool)
pub fn validate_or_panic(&self, ndim: usize, verbose: bool)
Validate data or panics
Sourcepub fn initial_overburden_stress(&self) -> f64
pub fn initial_overburden_stress(&self) -> f64
Returns the initial overburden stress (negative means compression)
Sourcepub fn integ_point_data(&self, cell: &Cell) -> Result<IntegPointData, StrError>
pub fn integ_point_data(&self, cell: &Cell) -> Result<IntegPointData, StrError>
Returns the integration (Gauss) points data
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnsafeUnpin for Config
impl UnwindSafe for Config
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>
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>
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