Skip to content

ASDEmbeddedNodeElement3D

ASDEmbeddedNodeElement3D

ASDEmbeddedNodeElement3D(ndof: int, rot: bool = False, p: bool = False, K: Optional[float] = None, KP: Optional[float] = None, contact: bool = False, Kn: float = 100000000.0, Kt: float = 100000000.0, mu: float = 0.5, orient: list = None, orient_map: dict = None, int_type: int = 1, **kwargs)

Bases: Element

Embedded-node constraint element for 3D solid domains.

This element constrains one embedded node to a domain defined by four retained nodes forming a tetrahedral interpolation patch. It is intended for 3D embedded-node coupling and is typically used together with the EmbeddedNode interface workflow in Femora.

Tcl form

element ASDEmbeddedNodeElement <eleTag> <Cnode> <Rnode1> <Rnode2> <Rnode3> <Rnode4> [-rot] [-p] [-K K] [-KP KP] [-contact Kn Kt mu [-orient ox oy oz] [-int_type int_type]]

Warning

This element is specialized for 3D embedded-node coupling and can be difficult to use correctly outside the intended interface workflow.

Note
  • Requires five nodes at export: one constrained node followed by four retained nodes.
  • When contact is enabled, normal and tangential penalty stiffness and friction parameters are exported with the element command.

Attributes:

Name Type Description
rot

Whether rotational DOFs at the constrained node are constrained.

p

Whether pressure DOFs are constrained.

K

Optional penalty stiffness for displacement constraints.

KP

Optional penalty stiffness for pressure constraints.

contact

Whether frictional contact behavior is enabled.

Kn

Normal contact penalty stiffness used when contact is enabled.

Kt

Tangential contact penalty stiffness used when contact is enabled.

mu

Friction coefficient used when contact is enabled.

orient

Default contact orientation vector when orient_map is not used.

orient_map

Per-node orientation vectors keyed by constrained node tag.

int_type

Contact integration type (0 implicit, 1 IMPL-EX).

Example
from femora.core.model import Model

model = Model()
ele = model.element.special.asd_embedded_node(
    ndof=6,
    rot=True,
    contact=True,
    Kn=1.0e8,
    Kt=1.0e8,
    mu=0.5,
)
print(ele.tag)

Create an ASDEmbeddedNodeElement3D with validated constraint options.

Parameters:

Name Type Description Default
ndof int

Number of DOFs per node. Must be 3, 4, or 6.

required
rot bool

Whether to constrain rotational DOFs at the embedded node.

False
p bool

Whether to constrain pressure DOFs.

False
K Optional[float]

Optional user-defined penalty stiffness for displacement constraints.

None
KP Optional[float]

Optional user-defined penalty stiffness for pressure constraints.

None
contact bool

Whether to enable frictional contact behavior.

False
Kn float

Normal contact penalty stiffness when contact is enabled.

100000000.0
Kt float

Tangential contact penalty stiffness when contact is enabled.

100000000.0
mu float

Friction coefficient when contact is enabled.

0.5
orient list

Default orientation vector [ox, oy, oz] used when orient_map does not provide a node-specific vector.

None
orient_map dict

Mapping from constrained node tag to orientation vector.

None
int_type int

Contact integration type (0 implicit, 1 IMPL-EX).

1
**kwargs

Additional element parameters stored on the base element.

{}

Raises:

Type Description
ValueError

If ndof is unsupported or if orientation or contact parameters are invalid.