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'¶
-

