gmsh_ffi 0.1.0

Safe Rust FFI bindings to the Gmsh SDK
use gmsh_ffi::gmsh::{GmshError, Gmsh, GmshOption as Option, Fltk, GmshOption};
fn main() -> Result<(), GmshError> {
    let gmsh = Gmsh::new_default()?;
    GmshOption::set_number("Mesh.MaxNumThreads1D", 4.0)?;
    GmshOption::set_number("Mesh.MaxNumThreads2D", 4.0)?;
    GmshOption::set_number("Mesh.MaxNumThreads3D", 4.0)?;
    let model = gmsh.add_model("my_model")?;

    // 使用内置几何创建矩形
    model.occ().add_box(0.0,0.0,0.0,1.1,1.1,1.1,-1);
    // ... 完成几何定义
    model.occ().synchronize()?;
    println!("{:?}", model.get_entities(-1));

    // 设置网格选项
    Option::set_number("Mesh.Algorithm", 6.0)?;
    model.mesh().set_size(&model.get_entities(-1)?, 0.1)?;
    model.generate_mesh(3)?;
    let bnd = model.get_boundary(&[(3,1)], true,true,false);
    println!("{:?}", bnd);
    Fltk::run(None);
    model.write("output.msh")?;
    gmsh.finalize()?;
    Ok(())
}