sfepy.discrete.fem.lcbc_operators module¶
Operators for enforcing linear combination boundary conditions in nodal FEM setting.
-
class
sfepy.discrete.fem.lcbc_operators.
EdgeDirectionOperator
(name, regions, dof_names, dof_map_fun, filename, variables, ts=None, functions=None)[source]¶ Transformation matrix operator for edges direction LCBCs.
The substitution (in 3D) is:
[u_1, u_2, u_3]^T = [d_1, d_2, d_3]^T w,
where \ul{d} is an edge direction vector averaged into a node. The new DOF is w.
-
kind
= 'edge_direction'¶
-
-
class
sfepy.discrete.fem.lcbc_operators.
IntegralMeanValueOperator
(name, regions, dof_names, dof_map_fun, variables, ts=None, functions=None)[source]¶ Transformation matrix operator for integral mean value LCBCs. All node DOFs are sumed to the new one.
-
kind
= 'integral_mean_value'¶
-
-
class
sfepy.discrete.fem.lcbc_operators.
LCBCOperator
(name, regions, dof_names, dof_map_fun, variables, functions=None)[source]¶ Base class for LCBC operators.
-
class
sfepy.discrete.fem.lcbc_operators.
LCBCOperators
(name, variables, functions=None)[source]¶ Container holding instances of LCBCOperator subclasses for a single variable.
-
add_from_bc
(bc, ts)[source]¶ Create a new LCBC operator described by bc, and add it to the container.
Parameters: bc : LinearCombinationBC instance
The LCBC condition description.
ts : TimeStepper instance
The time stepper.
-
finalize
()[source]¶ Call this after all LCBCs of the variable have been added.
Initializes the global column indices and DOF counts.
-
make_global_operator
(adi, new_only=False)[source]¶ Assemble all LCBC operators into a single matrix.
Parameters: adi : DofInfo
The active DOF information.
new_only : bool
If True, the operator columns will contain only new DOFs.
Returns: mtx_lc : csr_matrix
The global LCBC operator in the form of a CSR matrix.
rhs_lc : array
The right-hand side for non-homogeneous LCBCs.
lcdi : DofInfo
The global active LCBC-constrained DOF information.
-
-
class
sfepy.discrete.fem.lcbc_operators.
MRLCBCOperator
(name, regions, dof_names, dof_map_fun, variables, functions=None)[source]¶ Base class for model-reduction type LCBC operators.
-
class
sfepy.discrete.fem.lcbc_operators.
NoPenetrationOperator
(name, regions, dof_names, dof_map_fun, filename, variables, ts=None, functions=None)[source]¶ Transformation matrix operator for no-penetration LCBCs.
-
kind
= 'no_penetration'¶
-
-
class
sfepy.discrete.fem.lcbc_operators.
NormalDirectionOperator
(name, regions, dof_names, dof_map_fun, filename, variables, ts=None, functions=None)[source]¶ Transformation matrix operator for normal direction LCBCs.
The substitution (in 3D) is:
[u_1, u_2, u_3]^T = [n_1, n_2, n_3]^T w
The new DOF is w.
-
kind
= 'normal_direction'¶
-