Rotation of pillars

import numpy as np
from mnflow.mfda.cad.dld.theme.block import DLD

Let us use the following profile for pillars:

shape = np.array([
    (0.34, 0.),
    (0.5, 0.25),
    (0.17, 0.25),
    (0., 0.5),
    (-0.17, 0.25),
    (-0.5, 0.25),
    (-0.34, 0.),
    (-0.5, -0.25),
    (-0.17, -0.25),
    (0., -0.5),
    (0.17, -0.25),
    (0.5, -0.25),
    ])

We can apply rotation to pillars by passing core_shape_rot_angle:

dld = DLD(
    d_c=1.,
    Np=10,
    Nw=8,
    core_shape=shape,
    num_unit=2,
    core_shape_rot_angle=30,
    rotation_angle_deg_before_array=90,
    # constraints OFF
    turn_off_constraints=True,
    # image
    opt_save_image=True,
    img_dpu=20,
)
----------------------------------------
core.DLD___Np:10_Nw:8_gap_w:2.157_pitch_w:4.314_gap_a:2.157_pitch_a:4.314_height:8.628_boundary_treatment:pow_3
block.DLD___num_unit:2_opt_mirror:False_array_counts:[1, 1]_opt_mirror_before_array:[False, False]
----------------------------------------
{'Np': 10,
 'Nw': 8,
 'area': 3957.7607959999996,
 'bb': [(-84.127, -11.355), (2.157, 34.514)],
 'count of 1D arrays of core.DLD': 1,
 'd_c': 1.0,
 'lx': 86.28399999999999,
 'ly': 45.869,
 'performance': {'Flow rate @ 1 bar/area (micro-liter/min/mm-sq)': 1449.890082471076,
                 'die area (mm-sq)': 0.003957760796,
                 'gap over crit. dia.': 2.157108371715726,
                 'volumetric flow rate at 1 bar (micro-liter/min)': 5.7383181269132315},
 'resistance (Pa.sec/m^3)': 1045602538461480.0,
 'volumetric flow rate at 1 bar (m^3/sec)': 9.563863544855386e-11,
 'volumetric flow rate at 1 bar (milli-liter/hr)': 0.3442990876147939}

Output layout:

Layout