sfepy.discrete.common.dof_info module¶
Classes holding information on global DOFs and mapping of all DOFs - equations (active DOFs).
Helper functions for the equation mapping.
-
class
sfepy.discrete.common.dof_info.
DofInfo
(name)[source]¶ Global DOF information, i.e. ordering of DOFs of the state (unknown) variables in the global state vector.
-
append_raw
(name, n_dof)[source]¶ Append raw DOFs.
- Parameters
- namestr
The name of variable the DOFs correspond to.
- n_dofint
The number of DOFs.
-
append_variable
(var, active=False)[source]¶ Append DOFs of the given variable.
- Parameters
- varVariable instance
The variable to append.
- activebool, optional
When True, only active (non-constrained) DOFs are considered.
-
get_info
(var_name)[source]¶ Return information on DOFs of the given variable.
- Parameters
- var_namestr
The name of the variable.
-
-
class
sfepy.discrete.common.dof_info.
EquationMap
(name, dof_names, var_di)[source]¶ Map all DOFs to equations for active DOFs.
-
get_operator
()[source]¶ Get the matrix operator
corresponding to the equation mapping, such that the restricted matrix
can be obtained from the full matrix
by
. All the matrices are w.r.t. a single variables that uses this mapping.
- Returns
- mtxcoo_matrix
The matrix
.
-
map_equations
(bcs, field, ts, functions, problem=None, warn=False)[source]¶ Create the mapping of active DOFs from/to all DOFs.
- Parameters
- bcsConditions instance
The Dirichlet or periodic boundary conditions (single condition instances). The dof names in the conditions must already be canonized.
- fieldField instance
The field of the variable holding the DOFs.
- tsTimeStepper instance
The time stepper.
- functionsFunctions instance
The registered functions.
- problemProblem instance, optional
The problem that can be passed to user functions as a context.
- warnbool, optional
If True, warn about BC on non-existent nodes.
- Returns
- active_bcsset
The set of boundary conditions active in the current time.
Notes
Periodic bc: master and slave DOFs must belong to the same field (variables can differ, though).
-
-
sfepy.discrete.common.dof_info.
expand_nodes_to_dofs
(nods, n_dof_per_node)[source]¶ Expand DOF node indices into DOFs given a constant number of DOFs per node.
-
sfepy.discrete.common.dof_info.
expand_nodes_to_equations
(nods, dof_names, all_dof_names)[source]¶ Expand vector of node indices to equations (DOF indices) based on the DOF-per-node count.
DOF names must be already canonized.
- Returns
- eqarray
The equations/DOF indices in the node-by-node order.