User-defined pillars profile

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

The profile shape of pillars can be defined from the coordinates of vertices with bounding box centered on (0, 0):

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),
    ])
dld = DLD(
    d_c=1.,
    Np=10,
    Nw=8,
    core_shape=shape,
    num_unit=2,
    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': 4005.0444279999997,
 'bb': [(-84.127, -11.355), (2.157, 35.062)],
 'count of 1D arrays of core.DLD': 1,
 'd_c': 1.0,
 'lx': 86.28399999999999,
 'ly': 46.417,
 'performance': {'Flow rate @ 1 bar/area (micro-liter/min/mm-sq)': 1432.772652107327,
                 'die area (mm-sq)': 0.004005044427999999,
                 '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