LUscalarMatrix = matrices/gpuLUscalarMatrix
$(LUscalarMatrix)/gpuLUscalarMatrix.C
$(LUscalarMatrix)/procgpuLduMatrix.C
$(LUscalarMatrix)/procgpuLduInterface.C

lduMatrix = matrices/gpulduMatrix
$(lduMatrix)/gpulduMatrix/gpulduMatrix.C
$(lduMatrix)/gpulduMatrix/gpulduMatrixOperations.C
$(lduMatrix)/gpulduMatrix/gpulduMatrixATmul.C
$(lduMatrix)/gpulduMatrix/gpulduMatrixUpdateMatrixInterfaces.C
$(lduMatrix)/gpulduMatrix/gpulduMatrixSolver.C
$(lduMatrix)/gpulduMatrix/gpulduMatrixSmoother.C
$(lduMatrix)/gpulduMatrix/gpulduMatrixPreconditioner.C
$(lduMatrix)/gpulduMatrix/lduMatrixSolutionCache.C

$(lduMatrix)/solvers/GdiagonalSolver/GdiagonalSolver.C
$(lduMatrix)/solvers/GsmoothSolver/GsmoothSolver.C
$(lduMatrix)/solvers/GPCG/GPCG.C
$(lduMatrix)/solvers/GPBiCG/GPBiCG.C
$(lduMatrix)/solvers/GPBiCGStab/GPBiCGStab.C
$(lduMatrix)/solvers/PCGCache/PCGCache.C
$(lduMatrix)/solvers/GPPCG/GPPCG.C
$(lduMatrix)/solvers/GPPCR/GPPCR.C

$(lduMatrix)/smoothers/Jacobi/JacobiSmoother.C

$(lduMatrix)/preconditioners/GdiagonalPreconditioner/GdiagonalPreconditioner.C
$(lduMatrix)/preconditioners/AINVPreconditioner/AINVPreconditioner.C

lduAddressing = $(lduMatrix)/gpulduAddressing
$(lduAddressing)/gpulduAddressing.C
$(lduAddressing)/gpulduInterface/gpulduInterface.C
$(lduAddressing)/gpulduInterface/processorgpuLduInterface.C
$(lduAddressing)/gpulduInterface/cyclicgpuLduInterface.C
$(lduAddressing)/gpulduInterface/gpulduPrimitiveProcessorInterface.C
$(lduAddressing)/gpulduInterface/cyclicAMIgpuLduInterface.C
$(lduAddressing)/gpulduInterface/cyclicACMIgpuLduInterface.C

lduInterfaceFields = $(lduAddressing)/lduInterfacegpuFields
$(lduInterfaceFields)/lduInterfacegpuField/lduInterfacegpuField.C
$(lduInterfaceFields)/processorLduInterfacegpuField/processorLduInterfacegpuField.C
$(lduInterfaceFields)/cyclicLduInterfacegpuField/cyclicLduInterfacegpuField.C
$(lduInterfaceFields)/cyclicAMILduInterfacegpuField/cyclicAMILduInterfacegpuField.C
$(lduInterfaceFields)/cyclicACMILduInterfacegpuField/cyclicACMILduInterfacegpuField.C

$(lduAddressing)/LduInterfacegpuField/LduInterfacegpuFields.C

GAMG = $(lduMatrix)/solvers/GGAMG
$(GAMG)/GGAMGSolver.C
$(GAMG)/GAMGSolverAgglomerateMatrix.C
$(GAMG)/GAMGSolverInterpolate.C
$(GAMG)/GAMGSolverScale.C
$(GAMG)/GAMGSolverSolve.C

GAMGInterfaces = $(GAMG)/interfaces
$(GAMGInterfaces)/GAMGInterface/GGAMGInterface.C
$(GAMGInterfaces)/GAMGInterface/GAMGInterfaceNew.C
$(GAMGInterfaces)/processorGAMGInterface/processorGGAMGInterface.C
$(GAMGInterfaces)/processorCyclicGAMGInterface/processorCyclicGGAMGInterface.C
$(GAMGInterfaces)/cyclicGAMGInterface/cyclicGGAMGInterface.C

GAMGInterfaceFields = $(GAMG)/interfaceFields
$(GAMGInterfaceFields)/GAMGInterfaceField/GGAMGInterfaceField.C
$(GAMGInterfaceFields)/GAMGInterfaceField/GAMGInterfaceFieldNew.C
$(GAMGInterfaceFields)/processorGAMGInterfaceField/processorGGAMGInterfaceField.C
$(GAMGInterfaceFields)/processorCyclicGAMGInterfaceField/processorCyclicGGAMGInterfaceField.C
$(GAMGInterfaceFields)/cyclicGAMGInterfaceField/cyclicGGAMGInterfaceField.C

GAMGAgglomerations = $(GAMG)/GAMGAgglomerations

GAMGAgglomeration = $(GAMGAgglomerations)/GAMGAgglomeration
$(GAMGAgglomeration)/GGAMGAgglomeration.C
$(GAMGAgglomeration)/GAMGAgglomerateLduAddressing.C

pairGAMGAgglomeration = $(GAMGAgglomerations)/pairGAMGAgglomeration
$(pairGAMGAgglomeration)/pairGGAMGAgglomeration.C
$(pairGAMGAgglomeration)/pairGAMGAgglomerate.C

algebraicPairGAMGAgglomeration = $(GAMGAgglomerations)/algebraicPairGAMGAgglomeration
$(algebraicPairGAMGAgglomeration)/algebraicPairGGAMGAgglomeration.C

dummyAgglomeration = $(GAMGAgglomerations)/dummyAgglomeration
$(dummyAgglomeration)/dummyGAgglomeration.C

meshes/gpulduMesh/gpulduMesh.C
meshes/gpulduMesh/gpulduPrimitiveMesh.C

LIB = $(FOAM_LIBBIN)/libgpuOpenFOAM
