Philipp-MR / CoilGen

Open source MR coil generator
GNU General Public License v3.0
25 stars 8 forks source link

Gradient coil for small halbach magnet #8

Closed abanerjee123 closed 1 month ago

abanerjee123 commented 2 months ago

Dear Dr. Thanks for the great software. I have a small halbach magnet with 30 mm diameter and 40 mm height. I want to generate x,y,z gradient for this magnet. Is it possible to make such small one? what kind of parameter I should use to get a reasonable coil? It will bea great help if you kindly guide me . I tried but not able to get it.

Thanks abhishek

This is your code for halbach example.

tikonov_factor=10000; num_levels=30; pcb_width=0.002; cut_width=0.025; normal_shift=0.006; min_loop_signifcance=3; %close all;

circular_resolution=10; conductor_width=0.0015; cross_sectional_points=[sin(0:(2pi)/(circular_resolution-1):2pi); cos(0:(2pi)/(circular_resolution-1):2pi)]; cross_sectional_points=cross_sectional_points.*repmat(conductor_width,[2 1]); normal_shift_smooth_factors=[5 5 5];

%% Run the algorithm %try coil_x.out=CoilGen(... 'field_shape_function','x',... % definition of the target field 'coil_mesh_file','create cylinder mesh', ...
'cylinder_mesh_parameter_list',[0.4913 0.154 50 50 0 1 0 pi/2],... % cylinder_height[in m], cylinder_radius[in m], num_circular_divisions, num_longitudinal_divisions, rotation_vector: x,y,z, and rotation_angle [radian] 'surface_is_cylinder_flag',true, ... 'min_loop_signifcance',min_loop_signifcance,... 'target_region_radius',0.1,... % in meter 'levels',num_levels, ... % the number of potential steps that determines the later number of windings (Stream function discretization) 'pot_offset_factor',0.25, ... % a potential offset value for the minimal and maximal contour potential ; must be between 0 and 1 'interconnection_cut_width',cut_width, ... % the width for the interconnections are interconnected; in meter 'conductor_cross_section_width',pcb_width,... %width of the generated pcb tracks 'normal_shift_length',normal_shift, ... % the length for which overlapping return paths will be shifted along the surface normals; in meter 'skip_postprocessing',false,...

Philipp-MR commented 2 months ago

Dear abhishek,

Nice to hear that you like the code. You can generate a coil according to your need. You just need to change the sizes of the cylinder radius and length in the "cylinder_mesh_parameter_list" as well as the DSV size. Also you the may need to update the regularizaion factor, in order to update the sensitivies to the smaller size of the coil.

Best Philipp

abanerjee123 commented 2 months ago

Thanks Philipp for the reply. I will give a try. What is DSV?

abanerjee123 commented 2 months ago

Dear Philipp , I have one more question. How to find the terminal. Looks like circuit is closed. ![Uploading Screenshot from 2024-09-26 19-32-58.png…]()

abanerjee123 commented 2 months ago

where to connect? yshim

Philipp-MR commented 1 month ago

You can cut the wire path at any location and add the terminals. DSV is the diameter of the imaging volume.

abanerjee123 commented 1 month ago

Thanks a lot