Table of Contents

Ex-4: Planar Orthotropic Materials: Transformation Workflow

🧰The Rhino and Grasshopper files used in this example can be downloaded below: orthotropic_transformation.zip

This example demonstrates a workflow for correctly orienting fiber directions to arbitrary geometries using grasshopper transformation matrices. Following this, a basic static simulation setup is provided with the transformed orthotropic material.

Geometry Setup

Transformations

Note, that there are many ways to approach getting a transformation for an input to an orthotropic material block, and only two quick options are shown here. The most important part is that the end transformation result must represent the total transformation from the standard global XYZ to whatever the desired orientation is. If multiple transformations are done sequentially the corresponding matrices will need to be multiplied in the correct order, as described here.

Transformation Multiplication:

[C] = [A]*[B]

where,

In this setup, the final transformation matrix, [C] would flip the geometry about an axis THEN rotate the geometry. Note that the multiplication is in the opposite order of how the transformations are done. To explain a bit more, we are mapping a vector {x} where [C]*{x} does the transform/mapping we want. This is the same as [A]*[B]*{x} where [B], the flip, operates first on vector {x} to yield {x'} and [A], the rotation, operates second on this new vector {x'}.

Manual Transformation

For the first method, we can set a “Plane” component by selecting 3 points inside of Rhino

  1. Create a “Plane” component
  2. Right-click and select “Set one Plane”
  3. Select an origin point
  4. Select a X-axis direction point (fiber direction)
  5. Select a Y-axis direction point (follow right-hand rule so the Z-axis/normal points where you want)
  6. Connect this plane component to the target plane of the “Orient” component where the source plane is the world XY.
  7. This transformation can then be used for an orthotropic material or the matrix can be stored and multiplied if needed.

These steps are demonstrated in a short video here along with some additional visualization.

Automated Transformation

Now, here is a second method of obtaining the transformation matrix for an orthotropic material on an arbitrarily oriented plane. This method is essentially just getting two direction vectors, one for normal direction (z' axis) and one for the fiber direction (x' axis)

  1. Extract surface/plane and use the “Evaluate Surface” component to get the normal and flip the direction if needed. (*here the list item component is used as the geometry is a simple box)
  2. Repeat this process for the surface/plane where the normal is aligned with the fiber direction (can get these vectors in many other ways as well)
  3. Create a “Plane Normal” component, and attach the normal vector to the Z-axis. (A)
  4. Attach this plane to the “Align Plane” and also attach the fiber direction vector to the direction input. (B)
  5. Use the “Orient” component again with the source as the world XY and this new plane as the target. (C)
  6. This will yield the transformation matrix as before, remaining steps are the same as for the manual method.

Multiple Transformations

As described in the transformation multiplication section, if we have successive transformations we need to multiply them together. An example is given here:

  1. Attach the transformations to the “Display Matrix” component
  2. Attach the matrices to the multiply component in the correct order (check the multiplication section or use visualization as a check)
  3. Use the resultant/total matrix as the transformation input in simulations.

Here the resultant matrix [B]=[A2]*[A1] where [A2] is rotating about the newly oriented z' axis and [A1] is aligning the xyz' axis to the fiber direction. Note that with this ordering the xyz' axis is oriented first then we rotate that oriented system for simulating alternate fiber orientations such as [-45, 45] plies.

Visualization

Lastly, the oriented system can be visualized as seen in previous sections via a “Deconstruct Matrix” component and list items. The first column of the matrix corresponds to the x-axis, the second column corresponds to the y-axis, and the last column corresponds to the z-axis. The grasshopper setup is shown here and could be converted to a cluster for ease-of-use in future simulations.

Example Simulation Setup

With these transformations, we can set up a quick example simulation using orthotropic materials. The details of the simulation are described below along with an image of the grasshopper setup. The key difference here is that the “Orthotropic Material” component is used, everything else remains similar in terms of solver resolution/settings and components/restraints/loads.

Specifically, the orthotropic material component requires the transformation to be connected from the previous workflow. This transformation aligns the stronger “E1/Ex” material properties to the rotated x-axis and the other properties to the y and z axes respectively.

Solver and Visualization Setup

Hide CAD Model

The displacement distribution resulting from this static simulation example is displayed below. The maximum displacement is near 0.07 mm for fibers aligned along the x' (no second rotation). For the 45-degree CW rotation, it should be closer to 0.53 mm. To load the simulation results later, create a simulation reader block, right-click, select the simulation, and connect it to a visualize block.