pyfebio package
Submodules
pyfebio.boundary module
- class pyfebio.boundary.BCLinearConstraint(**data)
Bases:
BaseXmlModel- dof: Literal['x', 'y', 'z', 'p']
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node: int
- type: Literal['linear constraint']
- class pyfebio.boundary.BCNormalDisplacement(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- surface: str
- surface_hint: Literal[0, 1]
- type: Literal['normal displacement']
- class pyfebio.boundary.BCPrescribedConcentration(**data)
Bases:
BaseXmlModelAssign a prescribed concentration of a solute to a node set. Hint: dof should be a string of the form “c{solute id}” e.g. “c1”, “c2”, etc.
- dof: str
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- relative: Literal[0, 1]
- type: Literal['prescribed concentration']
- class pyfebio.boundary.BCPrescribedDeformation(**data)
Bases:
BaseXmlModel- F: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- relative: Literal[0, 1]
- type: Literal['prescribed deformation']
- class pyfebio.boundary.BCPrescribedDisplacement(**data)
Bases:
BaseXmlModel- dof: Literal['x', 'y', 'z']
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- relative: Literal[0, 1]
- type: Literal['prescribed displacement']
- class pyfebio.boundary.BCPrescribedFluidPressure(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- relative: Literal[0, 1]
- type: Literal['prescribed fluid pressure']
- class pyfebio.boundary.BCPrescribedShellDisplacement(**data)
Bases:
BaseXmlModel- dof: Literal['sx', 'sy', 'sz']
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- relative: Literal[0, 1]
- type: Literal['prescribed shell displacement']
- class pyfebio.boundary.BCRigid(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- node_set: str
- rb: str
- type: Literal['rigid']
- class pyfebio.boundary.BCRigidDeformation(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- pos: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- relative: Literal[0, 1]
- type: Literal['rigid deformation']
- class pyfebio.boundary.BCZeroConcentration(**data)
Bases:
BaseXmlModelAssign a zero concentration boundary condition for a solute to a node set. Hint: c_dof should be a string of the form “c{solute id}” e.g. “c1”, “c2”, etc.
- c_dof: str
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- type: Literal['zero concentration']
- class pyfebio.boundary.BCZeroDisplacement(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- type: Literal['zero displacement']
- x_dof: Literal[0, 1]
- y_dof: Literal[0, 1]
- z_dof: Literal[0, 1]
- class pyfebio.boundary.BCZeroFluidPressure(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- type: Literal['zero fluid pressure']
- class pyfebio.boundary.BCZeroShellDisplacement(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- sx_dof: Literal[0, 1]
- sy_dof: Literal[0, 1]
- sz_dof: Literal[0, 1]
- type: Literal['zero shell displacement']
- class pyfebio.boundary.Boundary(**data)
Bases:
BaseXmlModel- add_bc(new_bc)
- all_bcs: list[BCZeroDisplacement | BCZeroShellDisplacement | BCZeroFluidPressure | BCPrescribedDisplacement | BCPrescribedShellDisplacement | BCPrescribedFluidPressure | BCPrescribedDeformation | BCRigid | BCRigidDeformation | BCNormalDisplacement | BCZeroConcentration | BCPrescribedConcentration | BCLinearConstraint]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class pyfebio.boundary.ChildDof(**data)
Bases:
BaseXmlModel- dof: Literal['x', 'y', 'z', 'p']
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node: int
- value: float
- class pyfebio.boundary.MatchingOsmCoefficient(**data)
Bases:
BaseXmlModel- ambient_osmolarity: float
- ambient_pressure: float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- shell_bottom: Literal[0, 1]
- surface: str
- type: Literal['matching_osm_coef']
- class pyfebio.boundary.Value(**data)
Bases:
BaseXmlModel- lc: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float | ~typing.Annotated[str, ~pydantic.types.StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?,[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?,[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$, ascii_only=None)]
pyfebio.constraints module
- class pyfebio.constraints.ConstraintInSituStretch(**data)
Bases:
BaseXmlModel- isochoric: Literal[0, 1]
- max_iters: int
- max_stretch: Literal[0] | float
- min_iters: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- tolerance: Literal[0] | float
- type: Literal['in-situ stretch']
- update: Literal[0, 1]
- class pyfebio.constraints.ConstraintPrestrain(**data)
Bases:
BaseXmlModel- max_iters: int
- min_iters: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- tolerance: Literal[0] | float
- type: Literal['prestrain']
- update: Literal[0, 1]
- class pyfebio.constraints.ConstraintSymmetryPlane(**data)
Bases:
BaseXmlModel- laugon: Literal[0, 1]
- maxaug: int
- minaug: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- penalty: float
- rhs: float
- tol: float
- type: Literal['symmetry plane']
- class pyfebio.constraints.Constraints(**data)
Bases:
BaseXmlModel- add_constraint(new_constraint)
- all_constraints: list[ConstraintSymmetryPlane | ConstraintInSituStretch | ConstraintPrestrain]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
pyfebio.contact module
- class pyfebio.contact.Contact(**data)
Bases:
BaseXmlModel- add_contact(new_contact)
- all_contact_interfaces: list[SlidingElastic | SlidingFacetOnFacet | SlidingNodeOnFacet | SlidingBiphasic | Sliding2 | ContactPotential | TiedElastic | TiedFacetOnFacet | TiedNodeOnFacet | TiedBiphasic]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class pyfebio.contact.ContactPotential(**data)
Bases:
BaseXmlModel- R0_min: Literal[0] | float
- R_in: float
- R_out: float
- check_intersections: Literal[0, 1]
- integration_rule: Literal['default', 'higher-order']
- kc: float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- p: int
- surface_pair: str
- type: Literal['contact potential']
- w_tol: Literal[0] | float
- class pyfebio.contact.Sliding2(**data)
Bases:
SlidingBase- dual_proj: Literal[0, 1]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pressure_penalty: float
- ptol: Literal[0] | float
- search_radius: Literal[0] | float
- smooth_aug: int
- symmetric_stiffness: Literal[0, 1]
- type: Literal['sliding2']
- class pyfebio.contact.SlidingBase(**data)
Bases:
BaseXmlModel- auto_penalty: Literal[0, 1]
- gaptol: Literal[0] | float
- knmult: float
- laugon: Literal['PENALTY', 'AUGLAG']
- maxaug: int
- minaug: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str | None
- node_reloc: Literal[0, 1]
- penalty: float
- search_radius: Literal[0] | float
- search_tol: float
- seg_up: int
- surface_pair: str
- tolerance: float
- two_pass: Literal[0, 1]
- update_penalty: Literal[0, 1]
- class pyfebio.contact.SlidingBiphasic(**data)
Bases:
SlidingBase- contact_frac: float
- flip_primary: Literal[0, 1]
- flip_secondary: Literal[0, 1]
- fric_coeff: Literal[0] | float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pressure_penalty: float
- ptol: Literal[0] | float
- search_radius: Literal[0] | float
- shell_bottom_primary: Literal[0, 1]
- shell_bottom_secondary: Literal[0, 1]
- smooth_aug: int
- smooth_fls: int
- symmetric_stiffness: Literal[0, 1]
- type: Literal['sliding-biphasic']
- class pyfebio.contact.SlidingElastic(**data)
Bases:
SlidingBase- flip_primary: Literal[0, 1]
- flip_secondary: Literal[0, 1]
- fric_coeff: Literal[0] | float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- offset: Literal[0] | float
- search_radius: Literal[0] | float
- shell_bottom_primary: Literal[0, 1]
- shell_bottom_secondary: Literal[0, 1]
- smooth_aug: int
- symmetric_stiffness: Literal[0, 1]
- tension: Literal[0, 1]
- type: Literal['sliding-elastic']
- class pyfebio.contact.SlidingFacetOnFacet(**data)
Bases:
SlidingBase- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- smooth_aug: int
- type: Literal['sliding-facet-on-facet']
- class pyfebio.contact.SlidingNodeOnFacet(**data)
Bases:
SlidingBase- fric_coeff: Literal[0] | float
- fric_penalty: Literal[0] | float
- ktmult: Literal[0] | float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['sliding-node-on-facet']
- class pyfebio.contact.TiedBase(**data)
Bases:
BaseXmlModel- laugon: Literal['PENALTY', 'AUGLAG']
- maxaug: int
- minaug: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- penalty: float
- surface_pair: str
- tolerance: float
- class pyfebio.contact.TiedBiphasic(**data)
Bases:
TiedBase- auto_penalty: Literal[0, 1]
- gaptol: float
- knmult: float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pressure_penalty: float
- ptol: float
- search_radius: float
- search_tol: float
- symmetric_stiffness: Literal[0, 1]
- two_pass: Literal[0, 1]
- type: Literal['tied-biphasic']
- update_penalty: Literal[0, 1]
- class pyfebio.contact.TiedElastic(**data)
Bases:
TiedBase- auto_penalty: Literal[0, 1]
- gaptol: float
- knmult: float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- search_radius: float
- search_tol: float
- symmetric_stiffness: Literal[0, 1]
- two_pass: Literal[0, 1]
- type: Literal['tied-elastic']
- update_penalty: Literal[0, 1]
- class pyfebio.contact.TiedFacetOnFacet(**data)
Bases:
TiedBase- gap_offset: Literal[0, 1]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- search_tolerance: float
- tolerance: float
- type: Literal['tied-facet-on-facet']
- class pyfebio.contact.TiedNodeOnFacet(**data)
Bases:
TiedBase- max_distance: Literal[0] | float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_reloc: Literal[0, 1]
- offset_shells: Literal[0, 1]
- search_tolerance: float
- special: Literal[0, 1]
- tolerance: float
- type: Literal['tied-node-on-facet']
pyfebio.control module
- class pyfebio.control.Control(**data)
Bases:
BaseXmlModel- adaptor_re_solve: int
- analysis: Literal['STATIC', 'DYNAMIC', 'STEADY-STATE', 'TRANSIENT']
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- output_level: Literal['OUTPUT_NEVER', 'OUTPUT_MAJOR_ITRS', 'OUTPUT_MINOR_ITRS', 'OUTPUT_MUST_POINTS', 'OUTPUT_FINAL']
- output_stride: int
- plot_level: Literal['PLOT_NEVER', 'PLOT_MAJOR_ITRS', 'PLOT_MINOR_ITRS', 'PLOT_MUST_POINTS']
- plot_range: str
- plot_stride: int
- plot_zero_state: Literal[0, 1]
- solver: Solver | ExplicitSolver
- step_size: float
- time_stepper: TimeStepper | None
- time_steps: int
- class pyfebio.control.ExplicitSolver(**data)
Bases:
BaseXmlModel- dyn_damping: Literal[1] | float
- mass_lumping: Literal[1, 2]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['explicit-solid']
- class pyfebio.control.LinearSolver(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['pardiso', 'mkl_dss']
- class pyfebio.control.QuasiNewtonMethod(**data)
Bases:
BaseXmlModel- cmax: float
- cycle_buffer: Literal[0, 1]
- max_buffer_size: int
- max_ups: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['BFGS', 'Broyden', 'Full Newton', 'JFNK', 'Modified Newton']
- class pyfebio.control.Solver(**data)
Bases:
BaseXmlModelClass for Non-Linear Solver settings. Currently, only supporting “solid” and “biphasic” analyses, and direct linear solvers “pardiso” and “mkl_dss”.
More nuanced parameters can be added as needed.
- ctol: float | None
- diverge_reform: Literal[0, 1]
- dtol: float
- equation_order: Literal['default', 'reverse', 'febio2']
- equation_scheme: Literal['staggered', 'block']
- etol: float
- force_positive_concentrations: Literal[0, 1] | None
- linear_solver: LinearSolver
- lsiter: int
- lsmin: float
- lstol: float
- max_refs: int
- min_residual: float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- optimize_bw: Literal[0, 1]
- ptol: float | None
- qn_method: QuasiNewtonMethod
- rtol: float
- symmetric_stiffness: Literal['symmetric', 'non-symmetric', 'symmetric-structure']
- type: Literal['solid', 'biphasic', 'multiphasic']
- class pyfebio.control.TimeStepValue(**data)
Bases:
BaseXmlModel- lc: int | None
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float
- class pyfebio.control.TimeStepper(**data)
Bases:
BaseXmlModel- aggressiveness: Literal[0, 1]
- cutback: float
- dtforce: Literal[0, 1]
- dtmax: TimeStepValue
- dtmin: float
- max_retries: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- opt_iter: int
- type: Literal['default']
pyfebio.discrete module
- class pyfebio.discrete.Discrete(**data)
Bases:
BaseXmlModel- add_discrete_element(new_element)
- add_discrete_material(new_material)
- discrete_elements: list[DiscreteEntry]
- discrete_materials: list[NonlinearSpring | Spring | TensionOnlyLinearSpring | HillElement | ExperimentalSpring]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class pyfebio.discrete.DiscreteEntry(**data)
Bases:
BaseXmlModel- discrete_set: str
- dmat: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class pyfebio.discrete.ExperimentalSpring(**data)
Bases:
BaseXmlModel- E: float
- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- sM: Annotated[float, Gt(gt=0)] | Annotated[float, Lt(lt=0)]
- sm: Annotated[float, Gt(gt=0)] | Annotated[float, Lt(lt=0)]
- type: Literal['experimental spring']
- class pyfebio.discrete.HillElement(**data)
Bases:
BaseXmlModel- Fmax: float
- Ksh: float
- L0: Literal[0] | float
- Lmax: float
- Vmax: float
- ac: float
- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- type: Literal['Hill']
- class pyfebio.discrete.NonlinearSpring(**data)
Bases:
BaseXmlModel- force: NonlinearSpringForce
- id: int
- measure: Literal['elongation', 'strain', 'stretch']
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- scale: float
- type: Literal['nonlinear spring']
- class pyfebio.discrete.NonlinearSpringForce(**data)
Bases:
BaseXmlModel- math: str
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['math']
- class pyfebio.discrete.Scale(**data)
Bases:
BaseXmlModelAll parameters are set to None initially, to handle all customization. We add a validitor to ensure consistency.
- interpolate: Literal['linear', 'smooth'] | None
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- points: ScalePoints | None
- type: Literal['point', 'const'] | None
- validate_options()
- value: float | None
- class pyfebio.discrete.ScalePoints(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pt: list[~typing.Annotated[str, ~pydantic.types.StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?,[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$, ascii_only=None)]]
- class pyfebio.discrete.Spring(**data)
Bases:
BaseXmlModel- E: float
- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- type: str
- class pyfebio.discrete.TensionOnlyLinearSpring(**data)
Bases:
BaseXmlModel- E: float
- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- type: Literal['tension-only linear spring']
pyfebio.globals module
- class pyfebio.globals.Constants(**data)
Bases:
BaseXmlModel- Fc: float
- P: float
- R: float
- T: float
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class pyfebio.globals.Globals(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- solid_bound_molecules: SolidBoundMolecules | None
- class pyfebio.globals.SolidBoundMolecule(**data)
Bases:
BaseXmlModel- charge_number: int
- density: float
- id: int
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- molar_mass: float
- name: str | None
- class pyfebio.globals.SolidBoundMolecules(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- solid_bound: list[SolidBoundMolecule]
- class pyfebio.globals.Solute(**data)
Bases:
BaseXmlModel- charge_number: int
- density: float
- id: int
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- molar_mass: float
- name: str | None
pyfebio.include module
pyfebio.initial module
- class pyfebio.initial.Initial(**data)
Bases:
BaseXmlModel- add_initial_condition(new_initial_condition)
- all_initial_conditions: list[InitialVelocity | InitialPrestrain | InitialConcentration | InitialFluidPressure]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class pyfebio.initial.InitialConcentration(**data)
Bases:
BaseXmlModel- dof: str
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- type: Literal['initial concentration']
- value: float
- class pyfebio.initial.InitialFluidPressure(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- type: Literal['initial fluid pressure']
- value: float
- class pyfebio.initial.InitialPrestrain(**data)
Bases:
BaseXmlModel- init: Literal[0, 1]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- reset: Literal[0, 1]
- type: Literal['prestrain']
- class pyfebio.initial.InitialVelocity(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- type: Literal['velocity', 'shell_velocity', 'initial fluid velocity']
- value: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
pyfebio.loaddata module
- class pyfebio.loaddata.CurvePoints(**data)
Bases:
BaseXmlModel- add_point(new_point)
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- points: list[~typing.Annotated[str, ~pydantic.types.StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?,[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$, ascii_only=None)]]
- class pyfebio.loaddata.LoadCurve(**data)
Bases:
BaseXmlModel- extend: Literal['CONSTANT', 'EXTRAPOLATE', 'REPEAT', 'REPEAT OFFSET']
- id: int
- interpolate: Literal['LINEAR', 'STEP', 'SMOOTH']
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- points: CurvePoints
- type: Literal['loadcurve']
- class pyfebio.loaddata.LoadData(**data)
Bases:
BaseXmlModel- add_load_curve(new_load_curve)
- add_math_controller(new_math_controller)
- add_pid_controller(new_pid_controller)
- load_controllers: list[LoadCurve | PIDController | MathController]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class pyfebio.loaddata.MathController(**data)
Bases:
BaseXmlModel- id: int
- math: str
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['math']
- class pyfebio.loaddata.PIDController(**data)
Bases:
BaseXmlModel- Kd: float
- Ki: float
- Kp: float
- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- target: float
- type: Literal['PID']
- var: str
pyfebio.loads module
- class pyfebio.loads.CentrifugalBodyForce(**data)
Bases:
BaseXmlModel- angular_speed: float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rotation_axis: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- rotation_center: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- type: Literal['centrifugal']
- class pyfebio.loads.ConstantBodyForce(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['const']
- class pyfebio.loads.FluidFlux(**data)
Bases:
BaseXmlModel- linear: Literal[0, 1]
- mixture: Literal[0, 1]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- surface: str
- type: Literal['fluidflux']
- class pyfebio.loads.FluidPressure(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- surface: str
- type: Literal['fluid pressure']
- class pyfebio.loads.Loads(**data)
Bases:
BaseXmlModel- add_body_load(new_load)
- add_nodal_load(new_load)
- add_surface_load(new_load)
- all_body_loads: list[ConstantBodyForce | NonConstantBodyForce | CentrifugalBodyForce | MovingFrame | MassDamping]
- all_nodal_loads: list[NodalLoad | NodalForce | NodalTargetForce | NodalFluidFlux]
- all_surface_loads: list[TractionLoad | PressureLoad | FluidFlux | FluidPressure]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class pyfebio.loads.MassDamping(**data)
Bases:
BaseXmlModel- C: float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['mass damping']
- class pyfebio.loads.MovingFrame(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['moving frame']
- class pyfebio.loads.NodalFluidFlux(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- relative: Literal[0, 1]
- type: Literal['nodal fluidflux']
- class pyfebio.loads.NodalForce(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- relative: Literal[0, 1]
- type: Literal['nodal_force']
- class pyfebio.loads.NodalLoad(**data)
Bases:
BaseXmlModel- dof: Literal['x', 'y', 'z', 'p']
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- relative: Literal[0, 1]
- type: Literal['nodal_load']
- class pyfebio.loads.NodalTargetForce(**data)
Bases:
BaseXmlModel- force: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- node_set: str
- type: Literal['nodal_target_force']
- class pyfebio.loads.NonConstantBodyForce(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['non-const']
- class pyfebio.loads.PressureLoad(**data)
Bases:
BaseXmlModel- linear: Literal[0, 1]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- shell_bottom: Literal[0, 1]
- surface: str
- symmetric_stiffness: Literal[0, 1]
- type: Literal['pressure']
- class pyfebio.loads.Scale(**data)
Bases:
BaseXmlModel- lc: int | None
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float | ~typing.Annotated[str, ~pydantic.types.StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?,[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?,[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$, ascii_only=None)]
- class pyfebio.loads.ScaleMath(**data)
Bases:
BaseXmlModel- lc: int | None
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float | str
- class pyfebio.loads.TractionLoad(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- surface: str
- traction: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- type: Literal['traction']
pyfebio.material module
- class pyfebio.material.ActiveContraction(**data)
Bases:
BaseXmlModel- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- ca0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- l0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- refl: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['active contraction']
- class pyfebio.material.ArrudaBoyce(**data)
Bases:
MaterialBase- N: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_int)]
- kappa: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- n_term: int
- type: Literal['Arruda-Boyce unconstrained']
- class pyfebio.material.ArrudaBoyceUC(**data)
Bases:
MaterialBase- N: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- mu: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['Arruda-Boyce']
- class pyfebio.material.BiphasicMaterial(**data)
Bases:
MaterialBaseNoDensity- active_supply: MaterialParameter | None
- fluid_density: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- permeability: ConstantIsoPerm | ExponentialIsoPerm | HolmesMowPerm | RefIsoPerm | RefOrthoPerm | RefTransIsoPerm
- phi0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- solid: ArrudaBoyce | CoupledMooneyRivlin | CoupledVerondaWestmann | CubicCLE | EllipsoidalFiberDistributionNeoHookean | FungOrthotropicCompressible | GentCompressible | HolmesMow | HolzapfelGasserOgdenUnconstrained | IsotropicElastic | IsotropicHencky | LargePoissonRatioLigament | Lung | NaturalNeoHookean | NeoHookean | PorousNeoHookean | OrthotropicElastic | OrthotropicCLE | ShenoyWang | TransIsoMooneyRivlin | TransIsoVerondaWestmann | UnconstrainedOgden | ArrudaBoyceUC | EllipsoidalFiberDistributionMooneyRivlinUC | EllipsoidalFiberDistributionVerondaWestmannUC | FungOrthotropicUC | GentUC | HolmesMowUC | HolzapfelGasserOgdenUC | MooneyRivlinUC | MuscleUC | OgdenUC | TendonUC | TensionCompressionNonlinearOrthoUC | TransIsoMooneyRivlinUC | TransIsoVerondaWestmannUC | MooneyRivlinVonMisesFibersUC | LeeSacksUC | Yeoh | SolidMixture | SolidMixtureUC
- solvent_supply: SolventSupply | None
- tau: Annotated[float, Ge(ge=0)] | None
- type: Literal['biphasic']
- class pyfebio.material.BiphasicSoluteMaterial(**data)
Bases:
MaterialBaseNoDensity- add_solute(new_solute)
- fluid_density: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- osmotic_coefficient: OsmoticCoefficientConst | OsmoticCoefficientManning
- permeability: ConstantIsoPerm | ExponentialIsoPerm | HolmesMowPerm | RefIsoPerm | RefOrthoPerm | RefTransIsoPerm
- phi0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- solid: ArrudaBoyce | CoupledMooneyRivlin | CoupledVerondaWestmann | CubicCLE | EllipsoidalFiberDistributionNeoHookean | FungOrthotropicCompressible | GentCompressible | HolmesMow | HolzapfelGasserOgdenUnconstrained | IsotropicElastic | IsotropicHencky | LargePoissonRatioLigament | Lung | NaturalNeoHookean | NeoHookean | PorousNeoHookean | OrthotropicElastic | OrthotropicCLE | ShenoyWang | TransIsoMooneyRivlin | TransIsoVerondaWestmann | UnconstrainedOgden | ArrudaBoyceUC | EllipsoidalFiberDistributionMooneyRivlinUC | EllipsoidalFiberDistributionVerondaWestmannUC | FungOrthotropicUC | GentUC | HolmesMowUC | HolzapfelGasserOgdenUC | MooneyRivlinUC | MuscleUC | OgdenUC | TendonUC | TensionCompressionNonlinearOrthoUC | TransIsoMooneyRivlinUC | TransIsoVerondaWestmannUC | MooneyRivlinVonMisesFibersUC | LeeSacksUC | Yeoh | SolidMixture | SolidMixtureUC
- solvent_supply: SolventSupply | None
- type: Literal['biphasic-solute']
- class pyfebio.material.CFDCircular(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['circular']
- class pyfebio.material.CFDEllipsoidal(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- spa: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- type: Literal['ellipsoidal']
- class pyfebio.material.CFDElliptical(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- spa1: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- spa2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- type: Literal['elliptical']
- class pyfebio.material.CFDSpherical(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['spherical']
- class pyfebio.material.CFDVonMises2d(**data)
Bases:
BaseXmlModel- b: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['von-Mises-2d']
- class pyfebio.material.CFDVonMises3d(**data)
Bases:
BaseXmlModel- b: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['von-Mises-3d']
- class pyfebio.material.CarterHayes(**data)
Bases:
MaterialBase- E0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- gamma: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rho0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- sbm: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_int)]
- type: Literal['Carter-Hayes']
- v: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- class pyfebio.material.CellGrowth(**data)
Bases:
MaterialBase- ce: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- cr: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- phir: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['cell growth']
- class pyfebio.material.ConstantIsoPerm(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- perm: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['perm-const-iso']
- class pyfebio.material.ContinuousFiberDistribution(**data)
Bases:
BaseXmlModel- distribution: CFDCircular | CFDSpherical | CFDVonMises3d | CFDVonMises2d | CFDEllipsoidal
- fibers: FiberNeoHookean | FiberNaturalNeoHookean | FiberToeLinear | FiberEntropyChain | FiberExponentialPower | FiberExponentialLinear
- mat_axis: MaterialAxisVector | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['continuous fiber distribution']
- class pyfebio.material.ContinuousFiberDistributionUC(**data)
Bases:
BaseXmlModel- distribution: CFDCircular | CFDSpherical | CFDVonMises3d | CFDVonMises2d | CFDEllipsoidal
- fibers: FiberToeLinearUC | FiberKiousisUC | FiberExponentialPowerUC | FiberExponentialLinearUC | FiberEntropyChainUC
- mat_axis: MaterialAxisVector | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['continuous fiber distribution uncoupled']
- class pyfebio.material.CoupledMooneyRivlin(**data)
Bases:
MaterialBase- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['coupled Mooney-Rivlin']
- class pyfebio.material.CoupledVerondaWestmann(**data)
Bases:
MaterialBase- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['coupled Veronda-Westmann']
- class pyfebio.material.CubicCLE(**data)
Bases:
MaterialBase- l2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lm1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lp1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- mu: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['cubic CLE']
- class pyfebio.material.Diffusivity(**data)
Bases:
BaseXmlModel- diff: MaterialParameter
- free_diff: MaterialParameter
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- type: Literal['diff-const-iso']
- class pyfebio.material.DonnanEquilibrium(**data)
Bases:
BaseXmlModel- bosm: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- cF0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- phiw0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['Donnan equilibrium']
- class pyfebio.material.DynamicMaterialParameter(**data)
Bases:
BaseXmlModel- lc: int
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float | int | str
- type: Literal['map', 'math'] | None
- class pyfebio.material.EllipsoidalFiberDistribution(**data)
Bases:
BaseXmlModel- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['ellipsoidal fiber distribution']
- class pyfebio.material.EllipsoidalFiberDistributionDonnanEquilibrium(**data)
Bases:
MaterialBase- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- bosm: MaterialParameter
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- phiw0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['EFD Donnan equilibrium']
- class pyfebio.material.EllipsoidalFiberDistributionMooneyRivlinUC(**data)
Bases:
MaterialBase- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['EFD Mooney-Rivlin']
- class pyfebio.material.EllipsoidalFiberDistributionNeoHookean(**data)
Bases:
MaterialBase- E: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['EFD neo-Hookean']
- v: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- class pyfebio.material.EllipsoidalFiberDistributionUC(**data)
Bases:
MaterialBaseNoDensity- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['EFD uncoupled']
- class pyfebio.material.EllipsoidalFiberDistributionVerondaWestmannUC(**data)
Bases:
MaterialBase- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['EFD Veronda-Westmann']
- class pyfebio.material.ExponentialIsoPerm(**data)
Bases:
BaseXmlModel- M: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- perm: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['perm-exp-iso']
- class pyfebio.material.FiberEntropyChain(**data)
Bases:
BaseXmlModel- N: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- fiber: FiberVector | None
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- n_term: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_int)]
- type: str
- class pyfebio.material.FiberEntropyChainUC(**data)
Bases:
BaseXmlModel- N: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- fiber: FiberVector | None
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- n_term: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_int)]
- type: str
- class pyfebio.material.FiberExponentialLinear(**data)
Bases:
BaseXmlModel- c3: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- c4: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c5: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- fiber: FiberVector | None
- lam0: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: str
- class pyfebio.material.FiberExponentialLinearUC(**data)
Bases:
BaseXmlModel- c3: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- c4: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c5: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- fiber: FiberVector | None
- lam0: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: str
- class pyfebio.material.FiberExponentialPower(**data)
Bases:
BaseXmlModel- alpha: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_gte_two_float)]
- fiber: FiberVector | None
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lam0: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: str
- class pyfebio.material.FiberExponentialPowerLinear(**data)
Bases:
BaseXmlModel- E: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- alpha: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_gte_two_float)]
- fiber: FiberVector | None
- lam0: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: str
- class pyfebio.material.FiberExponentialPowerUC(**data)
Bases:
BaseXmlModel- alpha: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_gte_two_float)]
- fiber: FiberVector | None
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: str
- class pyfebio.material.FiberKiousisUC(**data)
Bases:
BaseXmlModel- d1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- d2: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- fiber: FiberVector | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- n: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- type: str
- class pyfebio.material.FiberNaturalNeoHookean(**data)
Bases:
BaseXmlModel- fiber: FiberVector | None
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lam0: Annotated[MaterialParameter, AfterValidator(func=mat_is_gte_one_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: str
- class pyfebio.material.FiberNeoHookean(**data)
Bases:
BaseXmlModel- fiber: FiberVector | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- mu: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: str
- class pyfebio.material.FiberToeLinear(**data)
Bases:
BaseXmlModel- E: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_gte_two_float)]
- fiber: FiberVector | None
- lam0: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: str
- class pyfebio.material.FiberToeLinearUC(**data)
Bases:
BaseXmlModel- E: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_gte_two_float)]
- fiber: FiberVector | None
- lam0: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: str
- class pyfebio.material.FiberVector(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- type: Literal['vector']
- class pyfebio.material.FiniteElementIntegration(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- resolution: Literal[20, 34, 60, 74, 196, 210, 396, 410, 596, 610, 796, 810, 996, 1010, 1196, 1210, 1396, 1410, 1596, 1610, 1796]
- type: Literal['fibers-3d-fei']
- class pyfebio.material.FungOrthotropicCompressible(**data)
Bases:
MaterialBase- E1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- E2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- E3: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- G12: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- G23: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- G31: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['Fung-ortho-compressible']
- v12: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- v23: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- v31: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- class pyfebio.material.FungOrthotropicUC(**data)
Bases:
MaterialBase- E1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- E2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- E3: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- G12: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- G23: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- G31: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['Fung orthotropic']
- v12: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- v23: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- v31: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- class pyfebio.material.GaussKronrodTrapezoidalIntegration(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- nph: Literal[7, 11, 15, 19, 23, 27]
- nth: Annotated[int, Gt(gt=0)]
- type: Literal['fibers-3d-gkt']
- class pyfebio.material.GentCompressible(**data)
Bases:
MaterialBase- G: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- Jm: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- K: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['compressible Gent']
- class pyfebio.material.GentUC(**data)
Bases:
MaterialBase- G: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- Jm: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['Gent']
- class pyfebio.material.HolmesMow(**data)
Bases:
MaterialBase- E: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['Holmes-Mow']
- v: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- class pyfebio.material.HolmesMowPerm(**data)
Bases:
BaseXmlModel- M: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- alpha: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- perm: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['perm-Holmes-Mow']
- class pyfebio.material.HolmesMowUC(**data)
Bases:
MaterialBase- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- mu: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['uncoupled Holmes-Mow']
- class pyfebio.material.HolzapfelGasserOgdenUC(**data)
Bases:
MaterialBase- c: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- fiber: FiberVector | None
- gamma: Annotated[MaterialParameter, AfterValidator(func=mat_is_lte_90_gte_0)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- k1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- k2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- kappa: Annotated[MaterialParameter, AfterValidator(func=mat_is_lte_onethird_gte_zero)]
- mat_axis: MaterialAxisVector | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['Holzapfel-Gasser-Ogden']
- class pyfebio.material.HolzapfelGasserOgdenUnconstrained(**data)
Bases:
MaterialBase- c: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- fiber: FiberVector | None
- gamma: Annotated[MaterialParameter, AfterValidator(func=mat_is_lte_90_gte_0)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- k1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- k2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- kappa: Annotated[MaterialParameter, AfterValidator(func=mat_is_lte_onethird_gte_zero)]
- mat_axis: MaterialAxisVector | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['HGO unconstrained']
- class pyfebio.material.InSituStretch(**data)
Bases:
BaseXmlModel- lc: int
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: str | float
- type: Literal['map', 'math'] | None
- class pyfebio.material.IsotropicElastic(**data)
Bases:
MaterialBase- E: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['isotropic elastic']
- v: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- class pyfebio.material.IsotropicHencky(**data)
Bases:
MaterialBase- E: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['isotropic Hencky']
- v: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- class pyfebio.material.KinematicGrowth(**data)
Bases:
MaterialBase- elastic: str
- growth: Literal['volume', 'growth', 'area growth', 'fiber growth']
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class pyfebio.material.LargePoissonRatioLigament(**data)
Bases:
MaterialBase- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- m: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- mu: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['PRLig']
- v0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- class pyfebio.material.LeeSacksUC(**data)
Bases:
MaterialBase- c0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- tangent_scale: Annotated[MaterialParameter, AfterValidator(func=mat_is_gte_one_float)]
- type: Literal['uncoupled isotropic Lee-Sacks']
- class pyfebio.material.Lung(**data)
Bases:
MaterialBase- E: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c3: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- d1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- d3: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['lung']
- v: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- class pyfebio.material.Material(**data)
Bases:
BaseXmlModel- add_material(material)
- all_materials: list[ArrudaBoyce | CoupledMooneyRivlin | CoupledVerondaWestmann | CubicCLE | EllipsoidalFiberDistributionNeoHookean | FungOrthotropicCompressible | GentCompressible | HolmesMow | HolzapfelGasserOgdenUnconstrained | IsotropicElastic | IsotropicHencky | LargePoissonRatioLigament | Lung | NaturalNeoHookean | NeoHookean | PorousNeoHookean | OrthotropicElastic | OrthotropicCLE | ShenoyWang | TransIsoMooneyRivlin | TransIsoVerondaWestmann | UnconstrainedOgden | EllipsoidalFiberDistributionDonnanEquilibrium | CellGrowth | OsmoticVirialPressure | PerfectOsmometer | ArrudaBoyceUC | EllipsoidalFiberDistributionMooneyRivlinUC | EllipsoidalFiberDistributionVerondaWestmannUC | FungOrthotropicUC | GentUC | HolmesMowUC | HolzapfelGasserOgdenUC | MooneyRivlinUC | MuscleUC | OgdenUC | TendonUC | TensionCompressionNonlinearOrthoUC | TransIsoMooneyRivlinUC | TransIsoVerondaWestmannUC | MooneyRivlinVonMisesFibersUC | LeeSacksUC | Yeoh | RigidBody | SolidMixture | SolidMixtureUC | BiphasicMaterial | ViscoelasticMaterial | ViscoelasticMaterialUC | BiphasicSoluteMaterial | MultiphasicMaterial]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class pyfebio.material.MaterialAxisVector(**data)
Bases:
BaseXmlModel- a: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- d: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['vector']
- class pyfebio.material.MaterialBase(**data)
Bases:
BaseXmlModel- density: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- id: int | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str | None
- class pyfebio.material.MaterialBaseNoDensity(**data)
Bases:
BaseXmlModel- id: int | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str | None
- class pyfebio.material.MaterialParameter(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float | int | str
- type: Literal['map', 'math'] | None
- class pyfebio.material.MooneyRivlinUC(**data)
Bases:
MaterialBase- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['Mooney-Rivlin']
- class pyfebio.material.MooneyRivlinVonMisesFibersUC(**data)
Bases:
MaterialBase- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- c3: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c4: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c5: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- gipt: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_int_mult10)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- kf: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- mat_axis: MaterialAxisVector
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- tp: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- type: Literal['Mooney-Rivlin von Mises Fibers']
- var_n: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- vmc: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- class pyfebio.material.MultiphasicMaterial(**data)
Bases:
MaterialBaseNoDensity- add_sbm(new_sbm)
- add_solute(new_solute)
- fixed_charge_density: MaterialParameter | DynamicMaterialParameter
- fluid_density: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- osmotic_coefficient: OsmoticCoefficientConst | OsmoticCoefficientManning
- permeability: ConstantIsoPerm | ExponentialIsoPerm | HolmesMowPerm | RefIsoPerm | RefOrthoPerm | RefTransIsoPerm
- phi0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- solid: ArrudaBoyce | CoupledMooneyRivlin | CoupledVerondaWestmann | CubicCLE | EllipsoidalFiberDistributionNeoHookean | FungOrthotropicCompressible | GentCompressible | HolmesMow | HolzapfelGasserOgdenUnconstrained | IsotropicElastic | IsotropicHencky | LargePoissonRatioLigament | Lung | NaturalNeoHookean | NeoHookean | PorousNeoHookean | OrthotropicElastic | OrthotropicCLE | ShenoyWang | TransIsoMooneyRivlin | TransIsoVerondaWestmann | UnconstrainedOgden | ArrudaBoyceUC | EllipsoidalFiberDistributionMooneyRivlinUC | EllipsoidalFiberDistributionVerondaWestmannUC | FungOrthotropicUC | GentUC | HolmesMowUC | HolzapfelGasserOgdenUC | MooneyRivlinUC | MuscleUC | OgdenUC | TendonUC | TensionCompressionNonlinearOrthoUC | TransIsoMooneyRivlinUC | TransIsoVerondaWestmannUC | MooneyRivlinVonMisesFibersUC | LeeSacksUC | Yeoh | SolidMixture | SolidMixtureUC
- solid_bound: list[SolidBoundMolecule] | None
- solvent_supply: SolventSupply | None
- type: Literal['multiphasic']
- class pyfebio.material.MuscleUC(**data)
Bases:
MaterialBase- Lofl: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- fiber: FiberVector
- g1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- g2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- lam_max: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- p1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- p2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- smax: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['muscle material']
- class pyfebio.material.NaturalNeoHookean(**data)
Bases:
MaterialBase- E: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['natural neo-Hookean']
- v: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- class pyfebio.material.NeoHookean(**data)
Bases:
MaterialBase- E: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['neo-Hookean']
- v: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- class pyfebio.material.OgdenUC(**data)
Bases:
MaterialBase- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- c3: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- c4: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- c5: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- c6: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- m1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- m2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- m3: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- m4: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- m5: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- m6: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['Ogden']
- class pyfebio.material.OrthotropicCLE(**data)
Bases:
MaterialBase- l12: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- l23: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- l31: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lm11: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lm22: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lm33: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lp11: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lp22: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lp33: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- mu1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- mu2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- mu3: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['orthotropic CLE']
- class pyfebio.material.OrthotropicElastic(**data)
Bases:
MaterialBase- E1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- E2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- E3: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- G12: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- G23: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- G31: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- mat_axis: MaterialAxisVector | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['orthotropic elastic']
- v12: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- v23: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- v31: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- class pyfebio.material.OsmoticCoefficientConst(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- osmcoef: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['osm-coef-const']
- class pyfebio.material.OsmoticCoefficientManning(**data)
Bases:
BaseXmlModel- co_ion: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['osm-coef-Manning']
- class pyfebio.material.OsmoticVirialPressure(**data)
Bases:
MaterialBaseNoDensity- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- phiw0: MaterialParameter
- type: Literal['osmotic virial expansion']
- class pyfebio.material.PerfectOsmometer(**data)
Bases:
MaterialBaseNoDensity- iosm: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- phiw0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['perfect osmometer']
- class pyfebio.material.PorousNeoHookean(**data)
Bases:
MaterialBase- E: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- phi0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['porous neo-Hookean']
- class pyfebio.material.PrestrainElastic(**data)
Bases:
MaterialBaseNoDensity- elastic: ArrudaBoyce | CoupledMooneyRivlin | CoupledVerondaWestmann | CubicCLE | EllipsoidalFiberDistributionNeoHookean | FungOrthotropicCompressible | GentCompressible | HolmesMow | HolzapfelGasserOgdenUnconstrained | IsotropicElastic | IsotropicHencky | LargePoissonRatioLigament | Lung | NaturalNeoHookean | NeoHookean | PorousNeoHookean | OrthotropicElastic | OrthotropicCLE | ShenoyWang | TransIsoMooneyRivlin | TransIsoVerondaWestmann | UnconstrainedOgden | SolidMixture
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- prestrain: PrestrainInSituStretch | PrestrainGradient
- type: Literal['prestrain elastic']
- class pyfebio.material.PrestrainElasticUC(**data)
Bases:
MaterialBaseNoDensity- elastic: ArrudaBoyceUC | EllipsoidalFiberDistributionMooneyRivlinUC | EllipsoidalFiberDistributionVerondaWestmannUC | FungOrthotropicUC | GentUC | HolmesMowUC | HolzapfelGasserOgdenUC | MooneyRivlinUC | MuscleUC | OgdenUC | TendonUC | TensionCompressionNonlinearOrthoUC | TransIsoMooneyRivlinUC | TransIsoVerondaWestmannUC | MooneyRivlinVonMisesFibersUC | LeeSacksUC | Yeoh | SolidMixtureUC
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- prestrain: PrestrainInSituStretch | PrestrainGradient
- type: Literal['prestrain elastic']
- class pyfebio.material.PrestrainGradient(**data)
Bases:
BaseXmlModel- F0: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec9)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- ramp: PrestrainRamp
- type: Literal['prestrain gradient']
- class pyfebio.material.PrestrainInSituStretch(**data)
Bases:
BaseXmlModel- ischoric: Literal[0, 1]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stretch: InSituStretch
- type: Literal['in-situ stretch']
- class pyfebio.material.PrestrainRamp(**data)
Bases:
BaseXmlModel- lc: int
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float
- class pyfebio.material.RefIsoPerm(**data)
Bases:
BaseXmlModel- M: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- alpha: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- perm0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- perm1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- perm2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['perm-ref-iso']
- class pyfebio.material.RefOrthoPerm(**data)
Bases:
BaseXmlModel- M: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- M0: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- alpha: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- alpha0: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- perm0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- perm1: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- perm2: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- type: Literal['perm-ref-ortho']
- class pyfebio.material.RefTransIsoPerm(**data)
Bases:
BaseXmlModel- M0: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- MA: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- MT: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- alpha0: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- alphaA: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- alphaT: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- perm0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- perm1A: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- perm1T: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- perm2A: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- perm2T: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['perm-ref-trans-iso']
- class pyfebio.material.RigidBody(**data)
Bases:
MaterialBase- E: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- center_of_mass: \d+)([eE][+-]?\d+)?$, ascii_only=None)] | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['rigid body']
- v: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- class pyfebio.material.ShenoyWang(**data)
Bases:
MaterialBase- Ef: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lam_c: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lam_t: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- m: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- mu: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- n: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['Shenoy']
- class pyfebio.material.SolidBoundMolecule(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rho0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- rhomax: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- rhomin: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- sbm: int
- class pyfebio.material.SolidMixture(**data)
Bases:
MaterialBase- add_solid(new_solid)
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- solid_list: list[ArrudaBoyce | CoupledMooneyRivlin | CoupledVerondaWestmann | CubicCLE | EllipsoidalFiberDistributionNeoHookean | FungOrthotropicCompressible | GentCompressible | HolmesMow | HolzapfelGasserOgdenUnconstrained | IsotropicElastic | IsotropicHencky | LargePoissonRatioLigament | Lung | NaturalNeoHookean | NeoHookean | PorousNeoHookean | OrthotropicElastic | OrthotropicCLE | ShenoyWang | TransIsoMooneyRivlin | TransIsoVerondaWestmann | UnconstrainedOgden | FiberNeoHookean | FiberNaturalNeoHookean | FiberToeLinear | FiberEntropyChain | FiberExponentialPower | FiberExponentialLinear | ContinuousFiberDistribution | EllipsoidalFiberDistributionDonnanEquilibrium | CellGrowth | OsmoticVirialPressure | PerfectOsmometer]
- type: Literal['solid mixture']
- class pyfebio.material.SolidMixtureUC(**data)
Bases:
MaterialBase- add_solid(new_solid)
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- solid_list: list[ArrudaBoyceUC | EllipsoidalFiberDistributionMooneyRivlinUC | EllipsoidalFiberDistributionVerondaWestmannUC | FungOrthotropicUC | GentUC | HolmesMowUC | HolzapfelGasserOgdenUC | MooneyRivlinUC | MuscleUC | OgdenUC | TendonUC | TensionCompressionNonlinearOrthoUC | TransIsoMooneyRivlinUC | TransIsoVerondaWestmannUC | MooneyRivlinVonMisesFibersUC | LeeSacksUC | Yeoh | FiberToeLinearUC | FiberKiousisUC | FiberExponentialPowerUC | FiberExponentialLinearUC | FiberEntropyChainUC | ContinuousFiberDistributionUC]
- type: Literal['solid mixture']
- class pyfebio.material.Solubility(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- solub: MaterialParameter
- type: Literal['solub-const']
- class pyfebio.material.Solute(**data)
Bases:
BaseXmlModel- diffusivity: Diffusivity
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- sol: int
- solubility: Solubility
- class pyfebio.material.SolventSupply(**data)
Bases:
BaseXmlModel- kp: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pv: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['Starling']
- class pyfebio.material.SphericalFiberDistribution(**data)
Bases:
MaterialBaseNoDensity- alpha: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_gte_two_float)]
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['spherical fiber distribution']
- class pyfebio.material.SphericalFiberDistributionSBM(**data)
Bases:
MaterialBaseNoDensity- alpha: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_gte_two_float)]
- gamma: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- ksi0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rho0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- sbm: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_int)]
- type: Literal['spherical fiber distribution']
- class pyfebio.material.TendonUC(**data)
Bases:
MaterialBase- fiber: FiberVector
- g1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- g2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- l1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- l2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lam_max: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['tendon material']
- class pyfebio.material.TensionCompressionNonlinearOrthoUC(**data)
Bases:
MaterialBase- beta: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- ksi: Annotated[MaterialParameter, AfterValidator(func=mat_is_string_float_vec3)]
- mat_axis: MaterialAxisVector
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['TC nonlinear orthotropic']
- class pyfebio.material.TransIsoMooneyRivlin(**data)
Bases:
MaterialBase- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- c3: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- c4: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c5: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- fiber: FiberVector | None
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lam_max: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['coupled trans-iso Mooney-Rivlin']
- class pyfebio.material.TransIsoMooneyRivlinUC(**data)
Bases:
MaterialBase- active_contraction: ActiveContraction | None
- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- c3: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- c4: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c5: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- fiber: FiberVector | None
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- lam_max: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['trans iso Mooney-Rivlin']
- class pyfebio.material.TransIsoVerondaWestmann(**data)
Bases:
MaterialBase- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- c3: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- c4: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c5: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- fiber: FiberVector | None
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- lam_max: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['coupled trans-iso Veronda-Westmann']
- class pyfebio.material.TransIsoVerondaWestmannUC(**data)
Bases:
MaterialBase- active_contraction: ActiveContraction | None
- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- c3: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- c4: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c5: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- fiber: FiberVector | None
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- lam_max: Annotated[MaterialParameter, AfterValidator(func=mat_is_gt_one_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['trans iso Veronda-Westmann']
- class pyfebio.material.TrapezoidalRuleIntegration(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- nth: Annotated[int, Gt(gt=0)]
- type: Literal['fibers-2d-trapezoidal']
- class pyfebio.material.UnconstrainedOgden(**data)
Bases:
MaterialBase- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- c3: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- c4: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- c5: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- c6: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- m1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- m2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- m3: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- m4: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- m5: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- m6: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['Ogden unconstrained']
- class pyfebio.material.VerondaWestmannUC(**data)
Bases:
MaterialBase- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['Veronda-Westmann']
- class pyfebio.material.ViscoelasticMaterial(**data)
Bases:
MaterialBase- elastic: ArrudaBoyce | CoupledMooneyRivlin | CoupledVerondaWestmann | CubicCLE | EllipsoidalFiberDistributionNeoHookean | FungOrthotropicCompressible | GentCompressible | HolmesMow | HolzapfelGasserOgdenUnconstrained | IsotropicElastic | IsotropicHencky | LargePoissonRatioLigament | Lung | NaturalNeoHookean | NeoHookean | PorousNeoHookean | OrthotropicElastic | OrthotropicCLE | ShenoyWang | TransIsoMooneyRivlin | TransIsoVerondaWestmann | UnconstrainedOgden | SolidMixture
- g0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- g1: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- g2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- g3: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- g4: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- g5: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- g6: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- t1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- t2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- t3: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- t4: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- t5: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- t6: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['viscoelastic']
- class pyfebio.material.ViscoelasticMaterialUC(**data)
Bases:
MaterialBase- elastic: ArrudaBoyceUC | EllipsoidalFiberDistributionMooneyRivlinUC | EllipsoidalFiberDistributionVerondaWestmannUC | FungOrthotropicUC | GentUC | HolmesMowUC | HolzapfelGasserOgdenUC | MooneyRivlinUC | MuscleUC | OgdenUC | TendonUC | TensionCompressionNonlinearOrthoUC | TransIsoMooneyRivlinUC | TransIsoVerondaWestmannUC | MooneyRivlinVonMisesFibersUC | LeeSacksUC | Yeoh | SolidMixtureUC
- g0: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- g1: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- g2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- g3: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- g4: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- g5: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- g6: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)]
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- t1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- t2: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- t3: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- t4: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- t5: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- t6: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- type: Literal['uncoupled viscoelastic']
- class pyfebio.material.Yeoh(**data)
Bases:
MaterialBase- c1: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)]
- c2: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)] | None
- c3: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)] | None
- c4: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)] | None
- c5: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)] | None
- c6: Annotated[MaterialParameter, AfterValidator(func=mat_is_non_negative_float)] | None
- k: Annotated[MaterialParameter, AfterValidator(func=mat_is_positive_float)] | None
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['Yeoh']
- pyfebio.material.mat_is_gt_one_float(parameter)
- Return type:
- pyfebio.material.mat_is_gte_one_float(parameter)
- Return type:
- pyfebio.material.mat_is_gte_two_float(parameter)
- Return type:
- pyfebio.material.mat_is_lte_90_gte_0(parameter)
- Return type:
- pyfebio.material.mat_is_lte_onethird_gte_zero(parameter)
- Return type:
- pyfebio.material.mat_is_non_negative_float(parameter)
- Return type:
- pyfebio.material.mat_is_positive_float(parameter)
- Return type:
- pyfebio.material.mat_is_positive_int(parameter)
- Return type:
- pyfebio.material.mat_is_positive_int_mult10(parameter)
- Return type:
- pyfebio.material.mat_is_string_float_vec3(parameter)
- Return type:
- pyfebio.material.mat_is_string_float_vec9(parameter)
- Return type:
- pyfebio.material.tension_only_nonlinear_spring(slack, e0, k)
Blankevoort 1991 ligament model
- Parameters:
slack (
float) – engineering strain representing amount of slack (will not produce force until slack strain is reached)e0 (
float) – engineering strain where fibers are fully straigtened (start of linear region)k (
float) – elastic modulus of linear region
- Return type:
str- Returns:
A string expression of fiber force equation compatible with FEBio math interpreter
pyfebio.mesh module
- class pyfebio.mesh.DiscreteElement(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.DiscreteSet(**data)
Bases:
BaseXmlModel- add_element(new_element)
- elements: list[DiscreteElement]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- class pyfebio.mesh.Edge(**data)
Bases:
BaseXmlModel- add_line2(new_line2)
- add_line3(new_line3)
- all_line2: list[Line2Element]
- all_line3: list[Line3Element]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- class pyfebio.mesh.ElementSet(**data)
Bases:
BaseXmlModel- add_element(new_element_id)
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^(?:\d+)(?:,(?:\d+))*$, ascii_only=None)]
- class pyfebio.mesh.Elements(**data)
Bases:
BaseXmlModel- add_element(new_element)
- all_elements: list[Tet4Element | Tet10Element | Tet15Element | Hex8Element | Hex20Element | Hex27Element | Penta6Element | Penta15Element | Pyra5Element | Tri3Element | Tri6Element | Quad4Element | Quad8Element | Quad9Element | Line2Element | Line3Element]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- type: Literal['tet4', 'tet10', 'tet15', 'hex8', 'hex20', 'hex27', 'penta6', 'penta15', 'pyra5', 'tri3', 'tri6', 'quad4', 'quad8', 'quad9', 'q4ans', 'q4eas', 'line2', 'line3']
- validate_elements()
- class pyfebio.mesh.Hex20Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Hex27Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Hex8Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Line2Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Line3Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Mesh(**data)
Bases:
BaseXmlModel- add_discrete_set(new_discrete_set)
- add_edge(new_edge)
- add_element_domain(new_element_domain)
- add_element_set(new_element_set)
- add_node_domain(new_node_domain)
- add_node_set(new_node_set)
- add_surface(new_surface)
- add_surface_pair(new_surface_pair)
- discrete_sets: list[DiscreteSet]
- element_sets: list[ElementSet]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- surface_pairs: list[SurfacePair]
- class pyfebio.mesh.Node(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- class pyfebio.mesh.NodeSet(**data)
Bases:
BaseXmlModel- add_node(new_node_id)
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^(?:\d+)(?:,(?:\d+))*$, ascii_only=None)]
- class pyfebio.mesh.Nodes(**data)
Bases:
BaseXmlModel- add_node(new_node)
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- class pyfebio.mesh.Penta15Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Penta6Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+,\d+,\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Pyra5Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+,\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Quad4Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Quad8Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Quad9Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Surface(**data)
Bases:
BaseXmlModel- add_quad4(new_quad)
- add_quad8(new_quad)
- add_quad9(new_quad)
- add_tri3(new_tri)
- add_tri6(new_tri)
- all_quad4: list[Quad4Element]
- all_quad8: list[Quad8Element]
- all_quad9: list[Quad9Element]
- all_tri3: list[Tri3Element]
- all_tri6: list[Tri6Element]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- class pyfebio.mesh.SurfacePair(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- primary: str
- secondary: str
- class pyfebio.mesh.Tet10Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Tet15Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Tet4Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Tri3Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+$, ascii_only=None)]
- class pyfebio.mesh.Tri6Element(**data)
Bases:
BaseXmlModel- id: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^\d+,\d+,\d+,\d+,\d+,\d+$, ascii_only=None)]
- pyfebio.mesh.numpy_to_elements(elements, element_type, name='Part', offset=0)
- Return type:
- pyfebio.mesh.numpy_to_surface_list(facets, element_type, offset=0)
- Return type:
list[Literal['tri3','tri6','quad4','quad8','quad9','q4ans','q4eas']]
pyfebio.meshdata module
- class pyfebio.meshdata.ElementData(**data)
Bases:
BaseXmlModel- add_element(new_element)
- all_elements: list[ElementDataElement]
- data_type: Literal['scalar', 'vec3']
- elem_set: str
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- class pyfebio.meshdata.ElementDataElement(**data)
Bases:
BaseXmlModel- lid: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float | ~typing.Annotated[str, ~pydantic.types.StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?,[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?,[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$, ascii_only=None)]
- class pyfebio.meshdata.MeshData(**data)
Bases:
BaseXmlModel- add_element_data(new_element_data)
- add_node_data(new_node_data)
- element_data: list[ElementData]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class pyfebio.meshdata.NodeData(**data)
Bases:
BaseXmlModel- add_node(new_node)
- all_nodes: list[NodeDataNode]
- data_type: Literal['scalar', 'vec3']
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- node_set: str
- class pyfebio.meshdata.NodeDataNode(**data)
Bases:
BaseXmlModel- lid: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float | ~typing.Annotated[str, ~pydantic.types.StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?,[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?,[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$, ascii_only=None)]
pyfebio.meshdomains module
- class pyfebio.meshdomains.BeamDomain(**data)
Bases:
BaseXmlModel- cross_sectional_area: float | None
- mat: str
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- type: Literal['linear-truss', 'elastic-truss', 'linear-beam']
- v: float | None
- validate_material()
- class pyfebio.meshdomains.MeshDomains(**data)
Bases:
BaseXmlModel- add_beam_domain(new_beam_domain)
- add_shell_domain(new_shell_domain)
- add_solid_domain(new_solid_domain)
- beam_domains: list[BeamDomain]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- shell_domains: list[ShellDomain]
- solid_domains: list[SolidDomain]
- class pyfebio.meshdomains.ShellDomain(**data)
Bases:
BaseXmlModel- mat: str
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- shell_thickness: float
- type: Literal['elastic-shell', 'three-field-shell', 'rigid-shell', 'elastic-shell-old', 'elastic-shell-eas', 'elastic-shell-ans'] | None
- class pyfebio.meshdomains.SolidDomain(**data)
Bases:
BaseXmlModel- alpha: float | None
- elem_type: Literal['HEX8G6', 'HEX8G8', 'HEX20G8', 'TET4G1', 'TET4G4', 'TET10G4', 'TET10G8', 'TET10GL11', 'TET15G8', 'TET15G11', 'TET15G15', 'PENTA15G8'] | None
- iso_stab: Literal[0, 1] | None
- mat: str
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- type: Literal['elastic-solid', 'three-field-solid', 'rigid-solid', 'udg-hex', 'sri-solid', 'remodelling-solid', 'ut4-solid'] | None
pyfebio.model module
- class pyfebio.model.BiphasicModel(**data)
Bases:
Model- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class pyfebio.model.FEBioRoot(**data)
Bases:
BaseXmlModel- add_section(section)
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- save(filename)
- sections: list[Module | Globals | Control | Material | RigidBody | MeshDomains | Mesh | MeshData | Discrete | LoadData | Loads | Rigid | Initial | Boundary | Contact | Constraints | Step | Output | Include]
- version: str
- class pyfebio.model.Model(**data)
Bases:
BaseXmlModel- add_simple_rigid_body(origin, name)
- constraints_: Constraints
- meshadaptor_: MeshAdaptor
- meshdomains_: MeshDomains
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- save(filename)
- version: str
- class pyfebio.model.MultiphasicModel(**data)
Bases:
Model- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pyfebio.model.run_model(filepath, silent=False)
- Return type:
int
pyfebio.module module
- class pyfebio.module.Module(**data)
Bases:
BaseXmlModelFEBio module – currently, only supporting “solid” and “biphasic”.
Unsupported modules: “solute”, “heat”, “fluid”, “fluid-FSI”
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['solid', 'biphasic', 'multiphasic']
pyfebio.output module
- class pyfebio.output.DataEntry(**data)
Bases:
BaseXmlModel- data: str
- delim: str
- file: str | None
- format: str | None
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: str | None
- class pyfebio.output.ElementDataEnum(*values)
Bases:
str,Enum- devaiatoric_strain_energy_density = 'devsed'
- fluid_pressure = 'p'
- p1_strain = 'E1'
- p1_stress = 's1'
- p2_strain = 'E2'
- p2_stress = 's2'
- p3_strain = 'E3'
- p3_stress = 's3'
- strain_energy_density = 'sed'
- x_coordinate = 'x'
- x_flux = 'wx'
- x_strain = 'Ex'
- x_stress = 'sx'
- xy_strain = 'Exy'
- xy_stress = 'sxy'
- xz_strain = 'Exz'
- xz_stress = 'sxz'
- y_coordinate = 'y'
- y_flux = 'wy'
- y_strain = 'Ey'
- y_stress = 'sy'
- yz_strain = 'Eyz'
- yz_stress = 'syz'
- z_coordinate = 'z'
- z_flux = 'wz'
- z_strain = 'Ez'
- z_stress = 'sz'
- class pyfebio.output.NodeDataEnum(*values)
Bases:
str,Enum- fluid_pressure = 'p'
- x_acceleration = 'ax'
- x_coordinate = 'x'
- x_displacement = 'ux'
- x_reaction_force = 'Rx'
- x_velocity = 'vx'
- y_acceleration = 'ay'
- y_coordinate = 'y'
- y_displacement = 'uy'
- y_reaction_force = 'Ry'
- y_velocity = 'vy'
- z_acceleration = 'az'
- z_coordinate = 'z'
- z_displacement = 'uz'
- z_reaction_force = 'Rz'
- z_velocity = 'vz'
- class pyfebio.output.Output(**data)
Bases:
BaseXmlModel- add_logfile(new_logfile)
- add_plotfile(new_plotfile)
- logfile: list[OutputLogfile]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- plotfile: list[OutputPlotfile]
- class pyfebio.output.OutputLogfile(**data)
Bases:
BaseXmlModel- add_element_data(new_output)
- add_face_data(new_output)
- add_node_data(new_output)
- add_rigid_body_data(new_output)
- add_rigid_connector_data(new_output)
- file: str | None
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class pyfebio.output.OutputPlotfile(**data)
Bases:
BaseXmlModel- add_var(new_var)
- file: str | None
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['febio', 'vtk']
- class pyfebio.output.RigidBodyDataEnum(*values)
Bases:
str,Enum- x_acceleration = 'ax'
- x_angular_acceleration = 'alx'
- x_angular_velocity = 'omx'
- x_coordinate = 'x'
- x_euler = 'XEuler'
- x_force = 'Fx'
- x_moment = 'Mx'
- x_rotation = 'thx'
- x_velocity = 'vx'
- y_acceleration = 'ay'
- y_angular_acceleration = 'aly'
- y_angular_velocity = 'omy'
- y_coordinate = 'y'
- y_euler = 'YEuler'
- y_force = 'Fy'
- y_moment = 'My'
- y_rotation = 'thy'
- y_velocity = 'vy'
- z_acceleration = 'az'
- z_angular_acceleration = 'alz'
- z_angular_velocity = 'omz'
- z_coordinate = 'z'
- z_euler = 'ZEuler'
- z_force = 'Fz'
- z_moment = 'Mz'
- z_rotation = 'thz'
- z_velocity = 'vz'
- class pyfebio.output.RigidConnectorDataEnum(*values)
Bases:
str,Enum- x_force = 'RCFx'
- x_moment = 'RCMx'
- x_rotation = 'RCthx'
- x_translation = 'RCx'
- y_force = 'RCFy'
- y_moment = 'RCMy'
- y_rotation = 'RCthy'
- y_translation = 'RCy'
- z_force = 'RCFz'
- z_moment = 'RCMz'
- z_rotation = 'RCthz'
- z_translation = 'RCz'
- class pyfebio.output.Var(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['acceleration', 'Almansi strain', 'beam curvature', 'beam reference stress', 'beam reference stress couple', 'beam strain', 'beam stress', 'beam stress couple', 'body force', 'concentration gap', 'contact area', 'contact force', 'contact gap', 'contact penalty', 'contact pressure', 'contact status', 'contact stick', 'contact traction', 'continuous damage', 'continuous damage beta', 'continuous damage D1', 'continuous damage D2', 'continuous damage D2beta', 'continuous damage D3', 'continuous damage Ds', 'continuous damage gamma', 'continuous damage P', 'continuous damage Psi0', 'current density', 'current element angular momentum', 'current element center of mass', 'current element kinetic energy', 'current element linear momentum', 'current element strain energy', 'damage', 'deformation gradient', 'density', 'Deshpande-Fleck stress', 'deviatoric elasticity', 'deviatoric fiber stretch', 'deviatoric strain energy density', 'deviatoric strong bond SED', 'deviatoric weak bond SED', 'dilatation gradient', 'discrte element direction', 'discrete element elongation', 'discrete element force', 'discrete element length', 'discrete element percent elongation', 'discrete element signed force', 'discrete element strain energy', 'discrete element stretch', 'displacement', 'Drucker shear stress', 'Drucker-Prager stress', 'edge contact gap', 'effective elasticity', 'effective fluid pressure', 'effective friction coefficient', 'effective shell fluid pressure', 'effective shell solute concentration', 'effective solute concentration', 'elastic fluid pressure', 'elasticity', 'electric potential', 'element angular momentum', 'element center of mass', 'element kinetic energy', 'element linear momentum', 'element strain energy', 'element stress power', 'enclosed volume', 'enclosed volume change', 'Euler angle', 'facet area', 'fatigue bone fraction', 'fiber stretch', 'fiber vector', 'field', 'fixed charge density', 'fluid acceleration', 'fluid body force', 'fluid bulk modulus', 'fluid density', 'fluid density rate', 'fluid dilatation', 'fluid element angular momentum', 'fluid element center of mass', 'fluid element kinetic energy', 'fluid element linear momentum', 'fluid element strain energy', 'fluid energy density', 'fluid flow rate', 'fluid flux', 'fluid force', 'fluid force2', 'fluid heat supply density', 'fluid kinetic energy density', 'fluid load support', 'fluid mass flow rate', 'fluid pressure', 'fluid pressure tangent strain', 'fluid rate of deformation', 'fluid relative Reynolds number', 'fluid shear stress error', 'fluid shear viscosity', 'fluid specific entropy', 'fluid specific free energy', 'fluid specific free enthalpy', 'fluid specific gauge enthalpy', 'fluid specific internal energy', 'fluid specific strain energy', 'fluid strain energy density', 'fluid stress', 'fluid stress power density', 'fluid surface energy flux', 'fluid surface force', 'fluid surface pressure', 'fluid surface traction power', 'fluid velocity', 'fluid volume ratio', 'fluid volume ratio gradient', 'fluid vorticity', 'growth infinitesimal strain', 'growth Lagrange strain', 'growth left Hencky', 'growth left stretch', 'growth relative volume', 'growth right Hencky', 'growth right stretch', 'ideal gas pressure', 'incremental displacement', 'infinitesimal strain', 'in-situ target stretch', 'intact bond fraction', 'kinetic energy density', 'Lagrange strain', 'left Cauchy-Green', 'left Hencky', 'left stretch', 'local fluid load support', 'material axes', 'mesh_data', 'micro energy', 'mixture deviatoric strain energy density', 'mixture specific strain energy', 'mixture strain energy density', 'mixture stress', 'nodal acceleration', 'nodal contact gap', 'nodal contact pressure', 'nodal contact traction', 'nodal fluid flux', 'nodal fluid velocity', 'nodal shell director', 'nodal strain', 'nodal stress', 'nodal surface traction', 'nodal vector gap', 'nodal veleocity', 'octahedral plastic strain', 'osmolarity', 'osmotic coefficient', 'parameter', 'partition coefficient', 'permeability', 'pid controller', 'PK1 norm', 'PK1 stress', 'PK2 stress', 'plastic yield stress', 'plasticity heat supply density', 'porosity', 'pressure gap', 'prestrain compatibility', 'prestrain correction', 'prestrain stretch', 'prestrain stretch error', 'rate of deformation', 'reaction forces', 'receptor-ligand', 'referential fixed charge density', 'referential solid volume fraction', 'relative fluid velocity', 'relative volume', 'right Cauchy-Green', 'right Hencky', 'right stretch', 'rigid acceleration', 'rigid angular momentum', 'rigid angular position', 'rigid angular velocity', 'rigid force', 'rigid kinetic energy', 'rigid linear momentum', 'rigid position', 'rigid rotation vector', 'rigid torque', 'rigid velocity', 'rotation', 'RVE generations', 'RVE recruitment', 'RVE strain', 's norm', 'sbm areal concentration', 'sbm concentration', 'sbm referential apparent density', 'scalar surface load', 'shell bottom nodal strain', 'shell bottom nodal stress', 'shell bottom strain', 'shell bottom stress', 'shell director', 'shell displacement', 'shell relative volume', 'shell strain', 'shell thickness', 'shell top nodal strain', 'shell top nodal stress', 'shell top strain', 'shell top stress', 'solid stress', 'solid volume fraction', 'solute concentration', 'solute flux', 'solute relative Peclet number', 'solute volumetric flux', 'specific strain energy', 'SPR infinitesimal strain', 'SPR Lagrange strain', 'SPR prestrain correction', 'SPR principal stress', 'SPR relative volume', 'SPR stress', 'SPR-P1 stress', 'strain energy density', 'stress', 'stress error', 'strong bond SED', 'surface area', 'surface reaction force', 'surface reaction moment', 'surface traction', 'total angular momentum', 'total energy', 'total linear momentum', 'truss stretch', 'uncoupled pressure', 'ut4 nodal stress', 'vector gap', 'velocity', 'volume fraction', 'weak bond SED', 'yielded bond fraction']
- pyfebio.output.assemble_data_string(requests)
- Return type:
str
pyfebio.rigid module
- class pyfebio.rigid.Free(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: Literal[0]
- class pyfebio.rigid.Rigid(**data)
Bases:
BaseXmlModel- add_rigid_bc(new_rigid_bc)
- add_rigid_connector(new_rigid_connector)
- add_rigid_initial_condition(new_rigid_initial_condition)
- add_rigid_load(new_rigid_load)
- all_rigid_bcs: list[RigidFixed | RigidPrescribed | RigidBodyRotationVector | RigidBodyEulerAngle]
- all_rigid_connectors: list[RigidSphericalJoint | RigidRevoluteJoint | RigidCylindricalJoint | RigidPrismaticJoint | RigidPlanarJoint | RigidLock | RigidSpring | RigidDamper | RigidAngularDamper | RigidContractileForce]
- all_rigid_initial_conditions: list[RigidInitialVelocity | RigidInitialAngularVelocity]
- all_rigid_loads: list[RigidForceLoad | RigidFollowerForceLoad | RigidMomentLoad | RigidFollowerMomentLoad | RigidCableLoad]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class pyfebio.rigid.RigidAngularDamper(**data)
Bases:
BaseXmlModel- body_a: str
- body_b: str
- c: float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- type: Literal['rigid angular damper']
- class pyfebio.rigid.RigidBodyEulerAngle(**data)
Bases:
BaseXmlModel- class X(**data)
Bases:
BaseXmlModel- lc: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float
- class Y(**data)
Bases:
BaseXmlModel- lc: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float
- class Z(**data)
Bases:
BaseXmlModel- lc: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rb: str
- type: Literal['rigid_euler_angles']
- class pyfebio.rigid.RigidBodyRotationVector(**data)
Bases:
BaseXmlModel- class X(**data)
Bases:
BaseXmlModel- lc: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float
- class Y(**data)
Bases:
BaseXmlModel- lc: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float
- class Z(**data)
Bases:
BaseXmlModel- lc: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rb: str
- type: Literal['rigid_rotation_vector']
- class pyfebio.rigid.RigidCableLoad(**data)
Bases:
BaseXmlModel- class CablePoint(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- position: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- rigid_body_id: str
- force_direction: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- relative: Literal[0, 1]
- rigid_cable_point: list[CablePoint]
- type: Literal['rigid_cable']
- class pyfebio.rigid.RigidConnector(**data)
Bases:
BaseXmlModel- angtol: Literal[0] | float
- auto_penalty: Literal[0, 1]
- body_a: str
- body_b: str
- force_penalty: float
- gaptol: Literal[0] | float
- maxaug: int
- minaug: int
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- moment_penalty: float
- name: str
- tolerance: float
- class pyfebio.rigid.RigidContractileForce(**data)
Bases:
BaseXmlModel- body_a: str
- body_b: str
- insertion_a: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- insertion_b: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- type: Literal['rigid contractile force']
- class pyfebio.rigid.RigidCylindricalJoint(**data)
Bases:
RigidConnector- joint_axis: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- joint_origin: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- laugon: Literal['PENALTY', 'AUGLAG', 'LAGMULT']
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- prescribed_rotation: Literal[0, 1]
- prescribed_translation: Literal[0, 1]
- transverse_axis: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- type: Literal['rigid cylindrical joint']
- class pyfebio.rigid.RigidDamper(**data)
Bases:
BaseXmlModel- body_a: str
- body_b: str
- c: float
- insertion_a: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- insertion_b: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- type: Literal['rigid damper']
- class pyfebio.rigid.RigidFixed(**data)
Bases:
BaseXmlModel- Ru_dof: Literal[0, 1]
- Rv_dof: Literal[0, 1]
- Rw_dof: Literal[0, 1]
- Rx_dof: Literal[0, 1]
- Ry_dof: Literal[0, 1]
- Rz_dof: Literal[0, 1]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rb: str
- type: Literal['rigid_fixed']
- class pyfebio.rigid.RigidFollowerForceLoad(**data)
Bases:
BaseXmlModel- insertion: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rb: str
- relative: Literal[0, 1]
- type: Literal['rigid_follower_force']
- class pyfebio.rigid.RigidFollowerMomentLoad(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rb: str
- type: Literal['rigid_follower_moment']
- class pyfebio.rigid.RigidForceLoad(**data)
Bases:
BaseXmlModel- dof: Literal['Rx', 'Ry', 'Rz']
- load_type: Literal[0, 1, 2]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rb: str
- relative: Literal[0, 1]
- type: Literal['rigid_force']
- class pyfebio.rigid.RigidInitialAngularVelocity(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rb: str
- type: Literal['initial_rigid_angular_velocity']
- value: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- class pyfebio.rigid.RigidInitialVelocity(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rb: str
- type: Literal['initial_rigid_velocity']
- value: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- class pyfebio.rigid.RigidLock(**data)
Bases:
RigidConnector- first_axis: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- joint_origin: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- second_axis: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- type: Literal['rigid lock']
- class pyfebio.rigid.RigidMomentLoad(**data)
Bases:
BaseXmlModel- dof: Literal['Ru', 'Rv', 'Rw']
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rb: str
- relative: Literal[0, 1]
- type: Literal['rigid_moment']
- class pyfebio.rigid.RigidPlanarJoint(**data)
Bases:
RigidConnector- joint_origin: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- prescribed_rotation: Literal[0, 1]
- prescribed_translation_1: Literal[0, 1]
- prescribed_translation_2: Literal[0, 1]
- rotation_axis: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- translation_axis_1: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- type: Literal['rigid planar joint']
- class pyfebio.rigid.RigidPrescribed(**data)
Bases:
BaseXmlModel- dof: Literal['x', 'y', 'z', 'Ru', 'Rv', 'Rw']
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rb: str
- relative: Literal[0, 1]
- type: Literal['rigid_displacement', 'rigid_rotation']
- validate_type()
- class pyfebio.rigid.RigidPrismaticJoint(**data)
Bases:
RigidConnector- joint_origin: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- prescribed_translation: Literal[0, 1]
- translation_axis: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- transverse_axis: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- type: Literal['rigid prismatic joint']
- class pyfebio.rigid.RigidRevoluteJoint(**data)
Bases:
RigidConnector- class Free(**data)
Bases:
BaseXmlModel- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: Literal[0]
- joint_origin: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- laugon: Literal[0, 1]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- prescribed_rotation: Literal[0, 1]
- rotation_axis: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- transverse_axis: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- type: Literal['rigid revolute joint']
- class pyfebio.rigid.RigidSphericalJoint(**data)
Bases:
RigidConnector- joint_origin: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- prescribed_rotation: Literal[0, 1]
- type: Literal['rigid spherical joint']
- class pyfebio.rigid.RigidSpring(**data)
Bases:
BaseXmlModel- body_a: str
- body_b: str
- free_length: Literal[0] | float
- insertion_a: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- insertion_b: \d+)([eE][+-]?\d+)?$, ascii_only=None)]
- k: float
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- type: Literal['rigid spring']
- class pyfebio.rigid.Value(**data)
Bases:
BaseXmlModel- lc: int | None
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- text: float | ~typing.Annotated[str, ~pydantic.types.StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?,[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?,[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$, ascii_only=None)]
pyfebio.step module
- class pyfebio.step.Step(**data)
Bases:
BaseXmlModel- add_step(new_step)
- model_config: ClassVar[ConfigDict] = {'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
pyfebio.xplt module
This module converts XPLT files to HDF5. It can be run from the command line with:
python -m pyfebio.xplt [path/to/xplt_file] Optional[path/to/hdf5_output]
If the output path is not provided it will be set to [path/to/xplt_file] with the extension changed to .hdf5
To use in a script:
from pyfebio import xplt
xplt.to_hdf5("/path/to/xplt_file", "/path/to/hdf5_output")
Note that the xplt module is not imported by default with the pyfebio package, but must be imported explicitly as above.
- We reference:
https://github.com/febiosoftware/FEBioStudio/blob/master/XPLTLib/xpltReader3.h commit: 7c7f171
- as:
xpltReader3.h:LINE_NUMBER
- class pyfebio.xplt.DicItem(*args, **kwargs)
Bases:
object- array_size: int
- iformat: int
- itype: int
- name: str
- units: str | None = None
- class pyfebio.xplt.Xtag(*args, **kwargs)
Bases:
object- format: Literal['float32', 'uint32', 'int32', 'szname', 'node'] = 'int32'
- name: str
- pyname: str
- pyfebio.xplt.check_file_is_febio(buffer)
- pyfebio.xplt.dtypes_to_little_endian(_DTYPES)
Uncommon these days, but if your XPLT file was created on a big-_ENDIAN machine, this will do a byte swap to little-_ENDIAN for all _DTYPES
Note: szname being a byte string type will be unchanged
- pyfebio.xplt.parse_blocks(buffer, f)
- pyfebio.xplt.parse_elementset_section(buffer)
- pyfebio.xplt.parse_mesh(buffer, mesh_cnt, f)
- pyfebio.xplt.parse_nodeset_section(buffer)
- pyfebio.xplt.parse_objects_section(buffer)
- pyfebio.xplt.parse_parts_section(buffer)
- pyfebio.xplt.parse_prefix(buffer)
- Return type:
tuple[int,int]
- pyfebio.xplt.parse_root_header(buffer, f)
- pyfebio.xplt.parse_state(buffer, state_cnt, xdictionary, mesh_dict, f)
- pyfebio.xplt.to_hdf5(inputfile, outputfile=None)