コンテンツにスキップ

bessel

src

bessel はベッセルビームを生成する. アルゴリズムは長谷川らの論文 (Hasegawa et al., 2017) に基づく.

bessel(&geometry, apex, direction, theta, wavelength, &option, &mut dst);
引数 説明
geometry &Geometry デバイス配置
apex Point3<f32> ビームを生成する仮想円錐の頂点座標 [mm]
direction UnitVector3<f32> ビームの方向 (単位ベクトル)
theta Angle 円錐の半頂角 (18.0 * deg など)
wavelength Length 波長
option &BesselOption 追加オプション (下記参照)
dst &mut [[Emission; _]] 出力バッファ
BesselOption {
intensity,
phase_offset,
}
フィールド デフォルト 説明
intensity Intensity Intensity::MAX 全振動子の振幅
phase_offset Phase Phase::ZERO 全振動子へ一律に加算する位相
use autd3_rs::geometry::{Autd3, Geometry, Vector3, offset};
use autd3_rs::units::{deg, m, mm, s};
use autd3_rs::value::{Intensity, Phase};
use autd3_rs_pattern::{BesselOption, bessel, wavelength};
let geometry = Geometry::new(vec![Autd3::default()]);
let mut dst = geometry.pattern_buffer();
bessel(
&geometry,
geometry.center() + offset(0.0 * mm, 0.0 * mm, 150.0 * mm),
Vector3::z_axis(),
18.0 * deg,
wavelength(340.0 * m / s),
&BesselOption {
intensity: Intensity::MAX,
phase_offset: Phase::ZERO,
},
&mut dst,
);