Computes d(U3 U1)/dx1.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(op_obj), | intent(in) | :: | this |
Differential operators utility |
||
| type(eulerian_obj_r), | intent(in) | :: | in1 |
Convecting velocity: Ui |
||
| type(eulerian_obj_r), | intent(in) | :: | in2 |
Velocity Uj |
Result
impure function op_obj_conv33(this,in1,in2) result(out) !> Computes d(U3 U1)/dx1. class(op_obj), intent(in) :: this !! Differential operators utility type(eulerian_obj_r), intent(in) :: in1 !! Convecting velocity: Ui type(eulerian_obj_r), intent(in) :: in2 !! Velocity Uj type(eulerian_obj_r) :: out !! Result ! Work variables type(eulerian_obj_r) :: in1c !! Interpolated Ui from face to cell center integer :: i,j,k,n call in1c%Initialize('in1c', this%block,this%parallel,3 ) call out%Initialize('ddx3(U3U1)',this%block,this%parallel,in2%staggering) out = 0.0_wp in1c = this%intrp3(in1) call in1c%UpdateGhostCells associate (lo => this%block%lo, hi => this%block%hi) do k=lo(3),hi(3) do j=lo(2),hi(2) do i=lo(1),hi(1) do n = -this%st, this%st-1 out%cell(i,j,k) = out%cell(i,j,k) + this%c_d1dx3m(n,k)*in1c%cell(i,j,k+n)* & 0.5_wp*(in2%cell(i,j,k+2*n+1)+in2%cell(i,j,k)) end do end do end do end do end associate return end function op_obj_conv33