Immersed boundary module, based on parallel distance to targets (tracing)
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=FP), | protected | :: | charfun_at_target | = | 0.5_FP |
Value of characteristic immersion function at target |
|
| real(kind=FP), | protected | :: | dphi_max | = | PI |
Maximum distance of tracing |
|
| integer, | protected | :: | immersed_step_order | = | 2 |
Hermite order of transition function |
|
| real(kind=FP), | protected | :: | immersed_trace_width_charfun | = | 0.0_FP |
Parallel transition width of characteristic immersion function |
|
| real(kind=FP), | protected | :: | immersed_trace_width_dirindfun | = | 0.0_FP |
Parallel transition width length of direction indicator function |
|
| real(kind=FP), | protected | :: | trace_max_step_size | = | PI/180.0_FP |
Maximum step size of trace algorithm |
Immersed boundary type based on field line tracing
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=FP), | public, | allocatable, dimension(:) | :: | charfun |
Characteristic function of immersed boundary, commonly referred chi |
||
| real(kind=FP), | public, | allocatable, dimension(:) | :: | dirindfun |
Function indicating direction of magnetic field (towards/away from target), commonly referred xi |
||
| integer, | public, | allocatable, dimension(:) | :: | inds |
Mesh indices which lie in immersed boundary region |
||
| integer, | public | :: | n_inds |
Size of inds |
|||
| integer, | public, | allocatable, dimension(:) | :: | adj_inds |
Mesh indices, which are adjacent to the immersed boundary region |
||
| integer, | public | :: | n_adj_inds |
Size of adj_inds |
| final :: destructor_immersed_trace_t |
| procedure, public :: build_inds | |
| procedure, public :: build_adj_inds | |
| procedure, public :: write_netcdf => write_netcdf_immersed | |
| procedure, public :: read_netcdf => read_netcdf_immersed | |
| procedure, public :: init | |
| procedure, public :: display |
Sigmoid function going from y=0 to y=1 between x=x0-wx/2 to x=x0+wx/2
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=FP), | intent(in) | :: | x0 |
Location of center of sigmoid |
||
| real(kind=FP), | intent(in) | :: | x |
Abscissa |
||
| real(kind=FP), | intent(in) | :: | wx |
Transition width |
||
| integer, | intent(in) | :: | order |
Order of transition |
Finds abscissa, where sigmoid function has value charfun_at_target Used to set charfun_at_target correctly
Auxiliary to get_dphi_shift function
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(aux_sigmoid_func_t), | intent(in) | :: | this |
Instance of test function class |
||
| real(kind=FP), | intent(in) | :: | t | |||
| integer, | intent(in), | dimension(:) | :: | iuser |
Integer inputs |
|
| real(kind=FP), | intent(in), | dimension(:) | :: | ruser |
Dummy, not used |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(immersed_trace_t), | intent(inout) | :: | self | |||
| class(equilibrium_t), | intent(inout) | :: | equi | |||
| type(mesh_cart_t), | intent(in) | :: | mesh | |||
| character(len=*), | intent(in), | optional | :: | filename |
Reads parameters for trace based immersion
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(immersed_trace_t), | intent(inout) | :: | self |
Instance of type |
||
| character(len=*), | intent(in) | :: | filename |
Filename, where to read parameters from |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(immersed_trace_t), | intent(in) | :: | self |
Destructor for immersed_rho_t
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(immersed_trace_t), | intent(inout) | :: | self |