Definition of classes and methods specific to Fraggle: Fragment generation that conserves angular momentum (L) and energy (E)
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=DP), | public | :: | Mrat | ||||
| real(kind=DP), | public | :: | Mslr | ||||
| integer(kind=I4B), | public, | parameter | :: | NFRAGMIN | = | iMrem+2 | |
| integer(kind=I4B), | public, | parameter | :: | iMlr | = | 1 | |
| integer(kind=I4B), | public, | parameter | :: | iMrem | = | 3 | |
| integer(kind=I4B), | public, | parameter | :: | iMslr | = | 2 | |
| integer(kind=I4B), | public | :: | nfrag |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(collision_fraggle), | intent(inout) | :: | self | Fraggle fragment system object |
||
| class(base_nbody_system), | intent(inout) | :: | nbody_system | Swiftest nbody system object |
||
| class(base_parameters), | intent(inout) | :: | param | Current run configuration parameters |
||
| real(kind=DP), | intent(in) | :: | t | The time of the collision |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(collision_fraggle), | intent(inout) | :: | self | Fraggle system object |
||
| class(base_nbody_system), | intent(inout) | :: | nbody_system | Swiftest nbody system object |
||
| class(base_parameters), | intent(inout) | :: | param | Current run configuration parameters |
||
| real(kind=DP), | intent(in) | :: | t | Time of collision |
||
| logical, | intent(out) | :: | lfailure | True if Fraggle could not satisfy all constraints. |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(collision_fraggle), | intent(inout) | :: | self | Fraggle system object |
||
| class(base_nbody_system), | intent(inout) | :: | nbody_system | Swiftest nbody system object |
||
| class(base_parameters), | intent(inout) | :: | param | Current run configuration parameters with SyMBA additions |
||
| real(kind=DP), | intent(in) | :: | t | Time of collision |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(collision_fraggle), | intent(inout) | :: | self | Fraggle system object |
||
| class(base_nbody_system), | intent(inout) | :: | nbody_system | Swiftest nbody system object |
||
| class(base_parameters), | intent(inout) | :: | param | Current run configuration parameters |
||
| real(kind=DP), | intent(in) | :: | t | The time of the collision |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(collision_fraggle), | intent(inout) | :: | collider | Fraggle collision system object |
||
| class(swiftest_nbody_system), | intent(inout) | :: | nbody_system | Swiftest nbody system object |
||
| class(swiftest_parameters), | intent(inout) | :: | param | Current run configuration parameters |
||
| logical, | intent(out) | :: | lfailure | Did the velocity computation fail? |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(collision_fraggle), | intent(inout) | :: | collider | Collision system object |
||
| class(swiftest_nbody_system), | intent(inout) | :: | nbody_system | Swiftest nbody system object |
||
| class(swiftest_parameters), | intent(inout) | :: | param | Current run configuration parameters |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(collision_fraggle), | intent(inout) | :: | collider | Fraggle collision system object |
||
| class(swiftest_nbody_system), | intent(inout) | :: | nbody_system | Swiftest nbody system object |
||
| class(swiftest_parameters), | intent(inout) | :: | param | Current run configuration parameters |
||
| logical, | intent(out) | :: | lfailure | Did the velocity computation fail? |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(collision_fraggle), | intent(inout) | :: | self | Fraggle collision system object |
||
| class(swiftest_nbody_system), | intent(inout) | :: | nbody_system | Swiftest nbody system object |
||
| class(swiftest_parameters), | intent(inout) | :: | param | Current run configuration parameters |
||
| logical, | intent(out) | :: | lfailure | Did the computation fail? |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(collision_fraggle), | intent(inout) | :: | self | Fraggle collision object |
||
| class(swiftest_parameters), | intent(in) | :: | param | Current Swiftest run configuration parameters |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=DP), | intent(in) | :: | x |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=DP), | public | :: | Escale | = | 1.0_DP | Angular momentum scale factor (a convenience unit that is derived from dscale, tscale, and mscale) |
|
| real(kind=DP), | public, | dimension(NDIM,2) | :: | L_orbit | Before/after rotational angular momentum |
||
| real(kind=DP), | public, | dimension(NDIM,2) | :: | L_rot | Before/after total nbody_system angular momentum |
||
| real(kind=DP), | public, | dimension(NDIM,2) | :: | L_total | Before/after orbital kinetic energy |
||
| real(kind=DP), | public | :: | Lscale | = | 1.0_DP | Before/after orbital angular momentum fers to the entire n-body system in its pre-collisional state and index 2 refers to the system in its post-collisional state |
|
| class(base_nbody_system), | public, | allocatable | :: | after | Status flag to pass to the collision list once the collision has been resolved |
||
| real(kind=DP), | public, | dimension(2) | :: | be | Before/after total system energy |
||
| class(base_nbody_system), | public, | allocatable | :: | before | A snapshot of the subset of the nbody_system containing products of the collision |
||
| integer(kind=I4B), | public | :: | collision_id | The current maximum collision id number |
|||
| real(kind=DP), | public | :: | dscale | = | 1.0_DP | Mass scale factor |
|
| real(kind=DP), | public | :: | fail_scale | Scale factor to apply to distance values in the position model when overlaps occur. |
|||
| class(collision_fragments), | public, | allocatable | :: | fragments | Object containing information on the post-collision system |
||
| class(collision_impactors), | public, | allocatable | :: | impactors | A snapshot of the subset of the nbody_system involved in the collision |
||
| real(kind=DP), | public, | dimension(2) | :: | ke_orbit | Before/after rotational kinetic energy |
||
| real(kind=DP), | public, | dimension(2) | :: | ke_rot | Before/after potential energy |
||
| real(kind=DP), | public | :: | max_rot | = | 0.0_DP | Distance dimension scale factor |
|
| integer(kind=I4B), | public | :: | maxid_collision | = | 0 | Minimum fragment mass |
|
| real(kind=DP), | public | :: | min_mfrag | = | 0.0_DP | Maximum rotation rate (in system or natural units, depending on ) |
|
| real(kind=DP), | public | :: | mscale | = | 1.0_DP | Time scale factor |
|
| real(kind=DP), | public, | dimension(2) | :: | pe | Before/after binding energy |
||
| integer(kind=I4B), | public | :: | status | ID number of this collision event |
|||
| real(kind=DP), | public, | dimension(2) | :: | te | |||
| real(kind=DP), | public | :: | tscale | = | 1.0_DP | Velocity scale factor (a convenience unit that is derived from dscale and tscale) |
|
| real(kind=DP), | public | :: | vscale | = | 1.0_DP | Energy scale factor (a convenience unit that is derived from dscale, tscale, and mscale) |
| procedure, public :: add_fragments => collision_util_add_fragments_to_collider | Add fragments to nbody_system |
| procedure, public :: dealloc => collision_util_dealloc_basic | Deallocates all allocatables |
| procedure, public :: disrupt => fraggle_generate_disrupt | Generates a system of fragments in barycentric coordinates that conserves energy and momentum. |
| procedure, public :: generate => fraggle_generate | A simple disruption models that does not constrain energy loss in collisions |
| procedure, public :: get_energy_and_momentum => collision_util_get_energy_and_momentum | Calculates total nbody_system energy in either the pre-collision outcome state (lbefore = .true.) or the post-collision outcome state (lbefore = .false.) |
| procedure, public :: get_regime => collision_regime_collider | Determine which fragmentation regime the set of impactors will be |
| procedure, public :: hitandrun => fraggle_generate_hitandrun | Generates either a pure hit and run, or one in which the runner is disrupted |
| procedure, public :: merge => fraggle_generate_merge | Merges bodies unless the rotation would be too high, then it switches to pure hit and run. |
| procedure, public :: restructure => fraggle_util_restructure | Restructures the fragment distribution after a failure to converge on a solution |
| procedure, public :: set_coordinate_system => collision_util_set_coordinate_collider | Sets the coordinate system of the collisional system |
| procedure, public :: set_mass_dist => fraggle_util_set_mass_dist | Sets the distribution of mass among the fragments depending on the regime type |
| procedure, public :: set_natural_scale => collision_util_set_natural_scale_factors | Scales dimenional quantities to ~O(1) with respect to the collisional system. |
| procedure, public :: set_original_scale => collision_util_set_original_scale_factors | Restores dimenional quantities back to the original system units |
| procedure, public :: setup => collision_util_setup_collider | Initializer for the encounter collision system and the before/after snapshots |
| procedure, public :: setup_fragments => collision_util_setup_fragments_collider | Initializer for the fragments of the collision system. |
| procedure, public :: setup_impactors => collision_util_setup_impactors_collider | Initializer for the impactors for the encounter collision system. Deallocates old impactors before creating new ones |