Skip to content

Feature/111 inflow outflow bcs #112

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: v0.1.0-dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
609 changes: 609 additions & 0 deletions src/SELF_CIGLES3D_t.f90

Large diffs are not rendered by default.

54 changes: 54 additions & 0 deletions src/SELF_DGModel2D_t.f90
Original file line number Diff line number Diff line change
Expand Up @@ -479,6 +479,33 @@
this%hbc2d_NoNormalFlow(this%solution%boundary(i,j,iEl,1:this%nvar),nhat)
enddo

elseif(bcid == SELF_BC_INFLOW) then

do i = 1,this%solution%interp%N+1 ! Loop over quadrature points
nhat = this%geometry%nhat%boundary(i,j,iEl,1,1:2)

Check warning on line 485 in src/SELF_DGModel2D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel2D_t.f90#L484-L485

Added lines #L484 - L485 were not covered by tests

this%solution%extBoundary(i,j,iEl,1:this%nvar) = &
this%hbc2d_Inflow(this%solution%boundary(i,j,iEl,1:this%nvar),nhat)

Check warning on line 488 in src/SELF_DGModel2D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel2D_t.f90#L487-L488

Added lines #L487 - L488 were not covered by tests
enddo

elseif(bcid == SELF_BC_OUTFLOW) then

do i = 1,this%solution%interp%N+1 ! Loop over quadrature points
nhat = this%geometry%nhat%boundary(i,j,iEl,1,1:2)

Check warning on line 494 in src/SELF_DGModel2D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel2D_t.f90#L493-L494

Added lines #L493 - L494 were not covered by tests

this%solution%extBoundary(i,j,iEl,1:this%nvar) = &
this%hbc2d_Outflow(this%solution%boundary(i,j,iEl,1:this%nvar),nhat)

Check warning on line 497 in src/SELF_DGModel2D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel2D_t.f90#L496-L497

Added lines #L496 - L497 were not covered by tests
enddo

elseif(bcid == SELF_BC_NOSLIP) then

do i = 1,this%solution%interp%N+1 ! Loop over quadrature points
nhat = this%geometry%nhat%boundary(i,j,iEl,1,1:2)

Check warning on line 503 in src/SELF_DGModel2D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel2D_t.f90#L502-L503

Added lines #L502 - L503 were not covered by tests

this%solution%extBoundary(i,j,iEl,1:this%nvar) = &
this%hbc2d_noslip(this%solution%boundary(i,j,iEl,1:this%nvar),nhat)

Check warning on line 506 in src/SELF_DGModel2D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel2D_t.f90#L505-L506

Added lines #L505 - L506 were not covered by tests
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capitalize for consistency

Suggested change
this%hbc2d_noslip(this%solution%boundary(i,j,iEl,1:this%nvar),nhat)
this%hbc2d_NoSlip(this%solution%boundary(i,j,iEl,1:this%nvar),nhat)

enddo

endif
endif

Expand Down Expand Up @@ -534,6 +561,33 @@
this%pbc2d_NoNormalFlow(dsdx,nhat)
enddo

elseif(bcid == SELF_BC_INFLOW) then

do i = 1,this%solution%interp%N+1 ! Loop over quadrature points
nhat = this%geometry%nhat%boundary(i,j,iEl,1,1:2)

Check warning on line 567 in src/SELF_DGModel2D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel2D_t.f90#L566-L567

Added lines #L566 - L567 were not covered by tests

this%solutiongradient%extBoundary(i,j,iEl,1:this%nvar,1:2) = &
this%pbc2d_Inflow(this%solution%boundary(i,j,iEl,1:this%nvar),nhat)

Check warning on line 570 in src/SELF_DGModel2D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel2D_t.f90#L569-L570

Added lines #L569 - L570 were not covered by tests
enddo

elseif(bcid == SELF_BC_OUTFLOW) then

do i = 1,this%solution%interp%N+1 ! Loop over quadrature points
nhat = this%geometry%nhat%boundary(i,j,iEl,1,1:2)

Check warning on line 576 in src/SELF_DGModel2D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel2D_t.f90#L575-L576

Added lines #L575 - L576 were not covered by tests

this%solutiongradient%extBoundary(i,j,iEl,1:this%nvar,1:2) = &
this%pbc2d_Outflow(this%solution%boundary(i,j,iEl,1:this%nvar),nhat)

Check warning on line 579 in src/SELF_DGModel2D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel2D_t.f90#L578-L579

Added lines #L578 - L579 were not covered by tests
enddo

elseif(bcid == SELF_BC_NOSLIP) then

do i = 1,this%solution%interp%N+1 ! Loop over quadrature points
nhat = this%geometry%nhat%boundary(i,j,iEl,1,1:2)

Check warning on line 585 in src/SELF_DGModel2D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel2D_t.f90#L584-L585

Added lines #L584 - L585 were not covered by tests

this%solutiongradient%extBoundary(i,j,iEl,1:this%nvar,1:2) = &
this%pbc2d_noslip(this%solution%boundary(i,j,iEl,1:this%nvar),nhat)

Check warning on line 588 in src/SELF_DGModel2D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel2D_t.f90#L587-L588

Added lines #L587 - L588 were not covered by tests
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
this%pbc2d_noslip(this%solution%boundary(i,j,iEl,1:this%nvar),nhat)
this%pbc2d_NoSlip(this%solution%boundary(i,j,iEl,1:this%nvar),nhat)

enddo

endif
endif

Expand Down
72 changes: 72 additions & 0 deletions src/SELF_DGModel3D_t.f90
Original file line number Diff line number Diff line change
Expand Up @@ -481,6 +481,39 @@
enddo
enddo

elseif(bcid == SELF_BC_INFLOW) then

do j = 1,this%solution%interp%N+1 ! Loop over quadrature points
do i = 1,this%solution%interp%N+1 ! Loop over quadrature points
nhat = this%geometry%nhat%boundary(i,j,k,iEl,1,1:3)

Check warning on line 488 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L486-L488

Added lines #L486 - L488 were not covered by tests

this%solution%extBoundary(i,j,k,iEl,1:this%nvar) = &
this%hbc3d_Inflow(this%solution%boundary(i,j,k,iEl,1:this%nvar),nhat)

Check warning on line 491 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L490-L491

Added lines #L490 - L491 were not covered by tests
enddo
enddo

elseif(bcid == SELF_BC_OUTFLOW) then

do j = 1,this%solution%interp%N+1 ! Loop over quadrature points
do i = 1,this%solution%interp%N+1 ! Loop over quadrature points
nhat = this%geometry%nhat%boundary(i,j,k,iEl,1,1:3)

Check warning on line 499 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L497-L499

Added lines #L497 - L499 were not covered by tests

this%solution%extBoundary(i,j,k,iEl,1:this%nvar) = &
this%hbc3d_Outflow(this%solution%boundary(i,j,k,iEl,1:this%nvar),nhat)

Check warning on line 502 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L501-L502

Added lines #L501 - L502 were not covered by tests
enddo
enddo

elseif(bcid == SELF_BC_NOSLIP) then

do j = 1,this%solution%interp%N+1 ! Loop over quadrature points
do i = 1,this%solution%interp%N+1 ! Loop over quadrature points
nhat = this%geometry%nhat%boundary(i,j,k,iEl,1,1:3)

Check warning on line 510 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L508-L510

Added lines #L508 - L510 were not covered by tests

this%solution%extBoundary(i,j,k,iEl,1:this%nvar) = &
this%hbc3d_NoSlip(this%solution%boundary(i,j,k,iEl,1:this%nvar),nhat)

Check warning on line 513 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L512-L513

Added lines #L512 - L513 were not covered by tests
enddo
enddo

endif
endif

Expand Down Expand Up @@ -542,6 +575,45 @@
enddo
enddo

elseif(bcid == SELF_BC_INFLOW) then

do j = 1,this%solutiongradient%interp%N+1 ! Loop over quadrature points
do i = 1,this%solutiongradient%interp%N+1 ! Loop over quadrature points
nhat = this%geometry%nhat%boundary(i,j,k,iEl,1,1:3)

Check warning on line 582 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L580-L582

Added lines #L580 - L582 were not covered by tests

dsdx = this%solutiongradient%boundary(i,j,k,iEl,1:this%nvar,1:3)

Check warning on line 584 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L584

Added line #L584 was not covered by tests

this%solutiongradient%extBoundary(i,j,k,iEl,1:this%nvar,1:3) = &
this%pbc3d_Inflow(dsdx,nhat)

Check warning on line 587 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L586-L587

Added lines #L586 - L587 were not covered by tests
enddo
enddo

elseif(bcid == SELF_BC_OUTFLOW) then

do j = 1,this%solutiongradient%interp%N+1 ! Loop over quadrature points
do i = 1,this%solutiongradient%interp%N+1 ! Loop over quadrature points
nhat = this%geometry%nhat%boundary(i,j,k,iEl,1,1:3)

Check warning on line 595 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L593-L595

Added lines #L593 - L595 were not covered by tests

dsdx = this%solutiongradient%boundary(i,j,k,iEl,1:this%nvar,1:3)

Check warning on line 597 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L597

Added line #L597 was not covered by tests

this%solutiongradient%extBoundary(i,j,k,iEl,1:this%nvar,1:3) = &
this%pbc3d_Outflow(dsdx,nhat)

Check warning on line 600 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L599-L600

Added lines #L599 - L600 were not covered by tests
enddo
enddo

elseif(bcid == SELF_BC_NOSLIP) then

do j = 1,this%solutiongradient%interp%N+1 ! Loop over quadrature points
do i = 1,this%solutiongradient%interp%N+1 ! Loop over quadrature points
nhat = this%geometry%nhat%boundary(i,j,k,iEl,1,1:3)

Check warning on line 608 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L606-L608

Added lines #L606 - L608 were not covered by tests

dsdx = this%solutiongradient%boundary(i,j,k,iEl,1:this%nvar,1:3)

Check warning on line 610 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L610

Added line #L610 was not covered by tests

this%solutiongradient%extBoundary(i,j,k,iEl,1:this%nvar,1:3) = &
this%pbc3d_NoSlip(dsdx,nhat)

Check warning on line 613 in src/SELF_DGModel3D_t.f90

View check run for this annotation

Codecov / codecov/patch

src/SELF_DGModel3D_t.f90#L612-L613

Added lines #L612 - L613 were not covered by tests
enddo
enddo

endif
endif

Expand Down
6 changes: 5 additions & 1 deletion src/SELF_Mesh.f90
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,13 @@ subroutine SELF_FreeMesh(this)
integer,parameter :: SELF_BC_PRESCRIBED = 100
integer,parameter :: SELF_BC_RADIATION = 101
integer,parameter :: SELF_BC_NONORMALFLOW = 102
integer,parameter :: SELF_BC_INFLOW = 103
integer,parameter :: SELF_BC_OUTFLOW = 104
integer,parameter :: SELF_BC_NOSLIP = 105

! Conditions on the solution gradients
integer,parameter :: SELF_BC_PRESCRIBED_STRESS = 200
integer,parameter :: SELF_BC_NOSTRESS = 201
integer,parameter :: SELF_BC_NOSTRESS = 201 ! Defaults to setting the external gradient field as the negative of the internal gradient field so the average is zero.
integer,parameter :: SELF_BC_STRESS = 202 ! Defaults to prolonging the internal gradient field to the external gradient field

endmodule SELF_Mesh
3 changes: 2 additions & 1 deletion src/SELF_Mesh_3D_t.f90
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,8 @@ module SELF_Mesh_3D_t
! 2 - Global Side ID
! 3 - Neighbor Element ID
! 4 - 10*( neighbor local side ) + flip
! 5 - Boundary Condition ID
! 5 - Boundary Condition ID (hyperbolic part)
! 6 - Boundary Condition ID (parabolic part) ! TODO
!
!
! ========================================================================= !
Expand Down
12 changes: 12 additions & 0 deletions src/SELF_Model.f90
Original file line number Diff line number Diff line change
Expand Up @@ -160,9 +160,15 @@ module SELF_Model
procedure :: hbc2d_Prescribed => hbc2d_Prescribed_Model
procedure :: hbc2d_Radiation => hbc2d_Generic_Model
procedure :: hbc2d_NoNormalFlow => hbc2d_Generic_Model
procedure :: hbc2d_Inflow => hbc2d_Generic_Model
procedure :: hbc2d_Outflow => hbc2d_Generic_Model
procedure :: hbc2d_NoSlip => hbc2d_Generic_Model
procedure :: hbc3d_Prescribed => hbc3d_Prescribed_Model
procedure :: hbc3d_Radiation => hbc3d_Generic_Model
procedure :: hbc3d_NoNormalFlow => hbc3d_Generic_Model
procedure :: hbc3d_Inflow => hbc3d_Generic_Model
procedure :: hbc3d_Outflow => hbc3d_Generic_Model
procedure :: hbc3d_NoSlip => hbc3d_Generic_Model

! Boundary condition functions (parabolic)
procedure :: pbc1d_Prescribed => pbc1d_Prescribed_Model
Expand All @@ -171,9 +177,15 @@ module SELF_Model
procedure :: pbc2d_Prescribed => pbc2d_Prescribed_Model
procedure :: pbc2d_Radiation => pbc2d_Generic_Model
procedure :: pbc2d_NoNormalFlow => pbc2d_Generic_Model
procedure :: pbc2d_Inflow => pbc2d_Generic_Model
procedure :: pbc2d_Outflow => pbc2d_Generic_Model
procedure :: pbc2d_NoSlip => pbc2d_Generic_Model
procedure :: pbc3d_Prescribed => pbc3d_Prescribed_Model
procedure :: pbc3d_Radiation => pbc3d_Generic_Model
procedure :: pbc3d_NoNormalFlow => pbc3d_Generic_Model
procedure :: pbc3d_Inflow => pbc3d_Generic_Model
procedure :: pbc3d_Outflow => pbc3d_Generic_Model
procedure :: pbc3d_NoSlip => pbc3d_Generic_Model

procedure :: ReportEntropy => ReportEntropy_Model
procedure :: ReportMetrics => ReportMetrics_Model
Expand Down
36 changes: 36 additions & 0 deletions src/cpu/SELF_CIGLES3D.f90
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
! //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// !
!
! Maintainers : support@fluidnumerics.com
! Official Repository : https://github.com/FluidNumerics/self/
!
! Copyright © 2024 Fluid Numerics LLC
!
! Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
!
! 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
!
! 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in
! the documentation and/or other materials provided with the distribution.
!
! 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from
! this software without specific prior written permission.
!
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
! LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
! HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
! LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
! THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
! THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
!
! //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// !

module self_CIGLES3D

use self_CIGLES3D_t

implicit none

type,extends(CIGLES3D_t) :: CIGLES3D
endtype CIGLES3D

endmodule self_CIGLES3D

Check warning on line 36 in src/cpu/SELF_CIGLES3D.f90

View check run for this annotation

Codecov / codecov/patch

src/cpu/SELF_CIGLES3D.f90#L36

Added line #L36 was not covered by tests
151 changes: 151 additions & 0 deletions src/gpu/SELF_CIGLES3D.f90
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
! //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// !
!
! Maintainers : support@fluidnumerics.com
! Official Repository : https://github.com/FluidNumerics/self/
!
! Copyright © 2024 Fluid Numerics LLC
!
! Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
!
! 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
!
! 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in
! the documentation and/or other materials provided with the distribution.
!
! 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from
! this software without specific prior written permission.
!
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
! LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
! HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
! LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
! THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
! THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
!
! //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// !

module self_CIGLES3D

use self_CIGLES3D_t

implicit none

type,extends(CIGLES3D_t) :: CIGLES3D
contains
! procedure :: setboundarycondition => setboundarycondition_CIGLES3D
! procedure :: boundaryflux => boundaryflux_CIGLES3D
! procedure :: fluxmethod => fluxmethod_CIGLES3D

endtype CIGLES3D

! interface
! subroutine setboundarycondition_CIGLES3D_gpu(extboundary,boundary,sideinfo,nhat,N,nel) &
! bind(c,name="setboundarycondition_CIGLES3D_gpu")
! use iso_c_binding
! type(c_ptr),value :: extboundary,boundary,sideinfo,nhat
! integer(c_int),value :: N,nel
! endsubroutine setboundarycondition_CIGLES3D_gpu
! endinterface

! interface
! subroutine fluxmethod_CIGLES3D_gpu(solution,flux,rho0,c,N,nel,nvar) &
! bind(c,name="fluxmethod_CIGLES3D_gpu")
! use iso_c_binding
! use SELF_Constants
! type(c_ptr),value :: solution,flux
! real(c_prec),value :: rho0,c
! integer(c_int),value :: N,nel,nvar
! endsubroutine fluxmethod_CIGLES3D_gpu
! endinterface

! interface
! subroutine boundaryflux_CIGLES3D_gpu(fb,fextb,nhat,nscale,flux,rho0,c,N,nel) &
! bind(c,name="boundaryflux_CIGLES3D_gpu")
! use iso_c_binding
! use SELF_Constants
! type(c_ptr),value :: fb,fextb,flux,nhat,nscale
! real(c_prec),value :: rho0,c
! integer(c_int),value :: N,nel
! endsubroutine boundaryflux_CIGLES3D_gpu
! endinterface

contains

! subroutine boundaryflux_CIGLES3D(this)
! implicit none
! class(CIGLES3D),intent(inout) :: this

! call boundaryflux_CIGLES3D_gpu(this%solution%boundary_gpu, &
! this%solution%extBoundary_gpu, &
! this%geometry%nhat%boundary_gpu, &
! this%geometry%nscale%boundary_gpu, &
! this%flux%boundarynormal_gpu, &
! this%rho0,this%c,this%solution%interp%N, &
! this%solution%nelem)

! endsubroutine boundaryflux_CIGLES3D

! subroutine fluxmethod_CIGLES3D(this)
! implicit none
! class(CIGLES3D),intent(inout) :: this

! call fluxmethod_CIGLES3D_gpu(this%solution%interior_gpu, &
! this%flux%interior_gpu, &
! this%rho0,this%c,this%solution%interp%N,this%solution%nelem, &
! this%solution%nvar)

! endsubroutine fluxmethod_CIGLES3D

! subroutine setboundarycondition_CIGLES3D(this)
! !! Boundary conditions are set to periodic boundary conditions
! implicit none
! class(CIGLES3D),intent(inout) :: this
! ! local
! integer :: i,iEl,j,k,e2,bcid
! real(prec) :: x(1:3)

! if(this%prescribed_bcs_enabled) then
! call gpuCheck(hipMemcpy(c_loc(this%solution%extboundary), &
! this%solution%extboundary_gpu,sizeof(this%solution%extboundary), &
! hipMemcpyDeviceToHost))

! ! Prescribed boundaries are still done on the CPU
! do iEl = 1,this%solution%nElem ! Loop over all elements
! do k = 1,6 ! Loop over all sides

! bcid = this%mesh%sideInfo(5,j,iEl) ! Boundary Condition ID
! e2 = this%mesh%sideInfo(3,j,iEl) ! Neighboring Element ID

! if(e2 == 0) then
! if(bcid == SELF_BC_PRESCRIBED) then

! do j = 1,this%solution%interp%N+1 ! Loop over quadrature points
! do i = 1,this%solution%interp%N+1 ! Loop over quadrature points
! x = this%geometry%x%boundary(i,j,k,iEl,1,1:3)

! this%solution%extBoundary(i,j,k,iEl,1:this%nvar) = &
! this%hbc3D_Prescribed(x,this%t)
! enddo
! enddo

! endif
! endif

! enddo
! enddo

! call gpuCheck(hipMemcpy(this%solution%extBoundary_gpu, &
! c_loc(this%solution%extBoundary), &
! sizeof(this%solution%extBoundary), &
! hipMemcpyHostToDevice))
! endif
! call setboundarycondition_CIGLES3D_gpu(this%solution%extboundary_gpu, &
! this%solution%boundary_gpu, &
! this%mesh%sideInfo_gpu, &
! this%geometry%nhat%boundary_gpu, &
! this%solution%interp%N, &
! this%solution%nelem)

! endsubroutine setboundarycondition_CIGLES3D

endmodule self_CIGLES3D
Loading