Bessel
Bessel
ではBessel beamを生成する.
このGain
は長谷川らの論文1に基づく.
use autd3::prelude::*;
fn main() {
let x = 0.;
let y = 0.;
let z = 0.;
let nx = 0.;
let ny = 0.;
let nz = 0.;
let theta = 0. * rad;
let _ =
Bessel {
pos: Point3::new(x, y, z),
dir: UnitVector3::new_normalize(Vector3::new(nx, ny, nz)),
theta,
option: BesselOption {
intensity: EmitIntensity::MAX,
phase_offset: Phase::ZERO,
},
};
}
#include<autd3.hpp>
int main() {
using namespace autd3;
const auto x = 0.0;
const auto y = 0.0;
const auto z = 0.0;
const auto nx = 0.0;
const auto ny = 0.0;
const auto nz = 1.0;
const auto theta = 0.0;
Bessel(Point3(x, y, z), Vector3(nx, ny, nz), theta* rad,
BesselOption{
.intensity = std::numeric_limits<EmitIntensity>::max(),
.phase_offset = Phase::zero(),
});
return 0; }
using AUTD3Sharp;
using AUTD3Sharp.Utils;
using AUTD3Sharp.Gain;
using static AUTD3Sharp.Units;
var x = 0.0f;
var y = 0.0f;
var z = 0.0f;
var nx = 0.0f;
var ny = 0.0f;
var nz = 1.0f;
var theta = 0.0f;
new Bessel(
pos: new Point3(x, y, z),
dir: new Vector3(nx, ny, nz),
theta: theta * rad,
option: new BesselOption
{
Intensity = EmitIntensity.Max,
PhaseOffset = Phase.Zero
}
);
from pyautd3 import Bessel, BesselOption, EmitIntensity, Phase, rad
x = 0.0
y = 0.0
z = 0.0
nx = 1.0
ny = 0.0
nz = 0.0
theta = 0.0
Bessel(
pos=[x, y, z],
direction=[nx, ny, nz],
theta=theta * rad,
option=BesselOption(
intensity=EmitIntensity.MAX,
phase_offset=Phase.ZERO,
),
)
ここで, pos
はビームを生成する仮想円錐 (下図の点線) の頂点であり, dir
はビームの方向, theta
はビームに垂直な面とビームを生成する仮想円錐の側面となす角度である (下図の).

オプションにて, 出力振幅と位相オフセットを指定できる. デフォルト値は上記の通り.
1
Hasegawa, Keisuke, et al. “Electronically steerable ultrasound-driven long narrow air stream.” Applied Physics Letters 111.6 (2017): 064104.