단일 세포 유전체 분석(Single-Cell RNA-seq), 초고속 디지털 PCR, 그리고 균일한 구형 약물 전달 미소캡슐 제조를 가능하게 하는 핵심 미세유체 기술은 플로우 포커싱(Flow-Focusing) 노즐에서 연속상 오일과 분산상 수용액이 만나 피코리터(pL) 단위의 균일한 액적(Droplet)을 초당 수천 개씩 생성하는 기술입니다. 점성 전단력과 계면장력 간의 경쟁을 나타내는 무차원 모세관수(Capillary Number, Ca) 및 웨버수(We)에 의해 결정되는 스퀴징(Squeezing), 드립핑(Dripping), 제팅(Jetting)의 다상 유동 영역 전이를 1,000Hz 주기로 0-Alloc C# 수치해석하는 랩온어칩 시뮬레이터를 공개합니다.

1. 2022 개정 교육과정 교과 연계 분석

  • 물리학 (표면장력, 영-라플라스 법칙, 나비에-스톡스 점성 유동): 곡률 반경 $R$에 따른 계면 압력차 $\Delta P = 2\gamma / R$, 저레이놀즈수($Re \ll 1$) 스토크스 유동에서의 점성 전단 응력 $\tau = \mu \frac{\partial u}{\partial y}$.
  • 화학/생명과학 (미셀 형성, 계면활성제 흡착 및 액적 단분산성): 불소계 오일 내 계면활성제(Fluorosurfactant)의 농도 및 동적 계면장력 $\gamma(t)$ 저하에 따른 액적 병합(Coalescence) 억제 및 생체분자 캡슐화.
  • 수학 (다상 유동 무차원수 스케일링 법칙 및 비선형 멱함수 관계): 유량비 $q = Q_d / Q_c$ 및 모세관수 $Ca$에 대한 액적 체적 $V_{drop} \propto w_{ch}^3 \cdot q^\alpha Ca^{-\beta}$ 멱함수 해석 및 생성 주파수 $f = Q_d / V_{drop}$.
  • 정보 (무할당 실시간 1,000Hz 드롭렛 체적 피드백 및 노즐 차압 보정 코어): 압력 제어기 텔레메트리를 1ms마다 읽어 가비지 컬렉터 없이 실시간 액적 직경 변동계수(CV < 1%)를 0-Alloc 유지하는 C# 온디바이스 엔진.

2. 플로우 포커싱 액적 생성 및 모세관수 수식

연속상 점도 $\mu_c$, 오리피스 협착부 평균 속도 $U_c$, 계면장력 $\gamma$에 대해 모세관수 $Ca$는 다음과 같이 정의됩니다:

$$Ca = \frac{\mu_c U_c}{\gamma}$$

분산상 유량 $Q_d$와 연속상 유량 $Q_c$의 유량비 $q = Q_d / Q_c$에 대해, 드립핑(Dripping) 영역에서 생성되는 정규화 액적 직경 $d_{drop} / w$은 스케일링 법칙을 따릅니다:

$$\frac{d_{drop}}{w} \approx C \cdot Ca^{-m} \cdot q^n$$

초당 액적 생성 주파수 $f$ ($\text{Hz}$)와 개별 액적 체적 $V_{drop}$은 체적 보존 법칙에 의해 결정됩니다:

$$V_{drop} = \frac{\pi}{6} d_{drop}^3, \quad f = \frac{Q_d}{V_{drop}}$$

3. 1,000Hz 0-Alloc C# 미세액적 생성 해석 코어

using System;
using System.Runtime.CompilerServices;

namespace ZeliDesk.Education.StemBio.Microfluidics
{
    public readonly record struct MicrofluidicNozzleConfig(
        float OrificeWidthUm,       // 협착 노즐 폭 w (um, 예: 40.0 um)
        float ContinuousViscosityCp,// 연속상 점도 (cP, 오일: 3.5 cP)
        float InterfacialTensionMnM,// 계면장력 (mN/m, 예: 4.5 mN/m)
        float ContinuousFlowRateUlH,// 연속상 유량 Qc (uL/hr, 예: 300.0)
        float DispersedFlowRateUlH  // 분산상 유량 Qd (uL/hr, 예: 60.0)
    );

    public ref struct DropletTelemetry
    {
        public float CapillaryNumber;
        public float FlowRateRatio;
        public string RegimeMode;
        public float DropletDiameterUm;
        public float DropletVolumePicoLiter;
        public float GenerationFrequencyHz;
        public float CoefficientOfVariationPercent;
    }

    public static class DropletGeneratorEngineCore
    {
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static void CalculateDropletDynamics(
            in MicrofluidicNozzleConfig config,
            ref DropletTelemetry telemetry)
        {
            // 1. SI 단위계 변환 (0-Alloc)
            float wM = config.OrificeWidthUm * 1e-6f;
            float areaM2 = wM * wM; // 정사각형 채널 단면 근사
            float muC = config.ContinuousViscosityCp * 1e-3f; // Pa*s
            float gamma = config.InterfacialTensionMnM * 1e-3f; // N/m

            // uL/hr -> m^3/s (1 uL/hr = 1e-9 m^3 / 3600 s)
            float qcM3s = (config.ContinuousFlowRateUlH * 1e-9f) / 3600.0f;
            float qdM3s = (config.DispersedFlowRateUlH * 1e-9f) / 3600.0f;

            // 2. 오리피스 평균 유속 및 모세관수 Ca 계산
            float uC = (qcM3s + qdM3s) / areaM2;
            float ca = (muC * uC) / MathF.Max(1e-6f, gamma);
            telemetry.CapillaryNumber = ca;

            float qRatio = qdM3s / MathF.Max(1e-15f, qcM3s);
            telemetry.FlowRateRatio = qRatio;

            // 3. 유동 영역 판별: Squeezing, Dripping, Jetting
            if (ca < 0.015f)
            {
                telemetry.RegimeMode = "Squeezing";
            }
            else if (ca < 0.12f)
            {
                telemetry.RegimeMode = "Dripping";
            }
            else
            {
                telemetry.RegimeMode = "Jetting";
            }

            // 4. 드립핑 스케일링 직경 산출 d / w = 1.35 * Ca^(-0.28) * q^(0.22)
            float normDiam = 1.35f * MathF.Pow(ca, -0.28f) * MathF.Pow(qRatio, 0.22f);
            float diamM = normDiam * wM;
            diamM = MathF.Max(wM * 0.4f, MathF.Min(wM * 3.5f, diamM));
            telemetry.DropletDiameterUm = diamM * 1e6f;

            // 5. 구형 액적 체적 (pL) 및 생성 주파수 (Hz)
            // V = pi / 6 * d^3 (m^3) -> 1 m^3 = 1e15 pL
            float volM3 = (MathF.PI / 6.0f) * (diamM * diamM * diamM);
            float volPicoLiter = volM3 * 1e15f;
            telemetry.DropletVolumePicoLiter = volPicoLiter;

            float freqHz = qdM3s / MathF.Max(1e-25f, volM3);
            telemetry.GenerationFrequencyHz = freqHz;

            // 단분산성 변동계수 CV (%) (드립핑 모드에서 최저 < 1.2%)
            float cv = 0.85f + (MathF.Abs(ca - 0.045f) * 12.0f);
            telemetry.CoefficientOfVariationPercent = MathF.Min(5.5f, cv);
        }
    }
}

4. 교육 및 연구 현장 활용 제언

본 시뮬레이터는 한국기초과학지원연구원(KBSI) 미세유체 랩 및 방통대 우호성 교수 연구실의 바이오칩 엔지니어링 직무연수에서 2상 유동의 무차원수와 플로우 포커싱 액적 생성 영역을 탐구하는 교구로 활용될 수 있습니다. 교사와 학생들은 오일과 수용액 유량비를 미세 조절하며 단일 세포 분석에 최적화된 고속·균일 액적이 피코리터 정밀도로 형성되는 유체역학적 메커니즘을 1,000Hz 실시간으로 검증할 수 있습니다.