Prepares object for use in solvers.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(collision_obj), | intent(inout) | :: | this |
Collision utility |
||
| type(timer_obj), | intent(in), | target | :: | timer |
Timer utility |
|
| type(parser_obj), | intent(in), | target | :: | parser |
Parser for input file |
|
| type(monitor_set), | intent(in), | target | :: | monitors |
Monitors to print to stdout and files |
impure subroutine collision_obj_Prepare(this,timer,parser,monitors) !> Prepares object for use in solvers. implicit none class(collision_obj), intent(inout) :: this !! Collision utility type(timer_obj), intent(in), & target :: timer !! Timer utility type(parser_obj), intent(in), & target :: parser !! Parser for input file type(monitor_set), intent(in), & target :: monitors !! Monitors to print to stdout and files ! Associate pointers this%timer => timer this%parser => parser this%monitors => monitors ! Get parameters from input file call this%parser%Get('Collision time', this%tcol) call this%parser%Get('Dry normal restitution coef', this%edry) call this%parser%Get('Coulomb friction coef', this%muc) ! Collisions with walls call this%parser%Get('Wall normal direction', this%wall_dir, default = 0) call this%parser%Get('Wall top position', this%wall_top, default = 1e-3_wp*huge(1.0_wp)) call this%parser%Get('Wall bottom position', this%wall_bottom, default =-1e-3_wp*huge(1.0_wp)) if (this%wall_dir.ne.0) this%use_wall = .true. return end subroutine collision_obj_Prepare