|
[Sponsors] |
Confusion about how the implicit coupled interfaces are implemented? |
![]() |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
![]() |
![]() |
#1 |
Member
Di Cheng
Join Date: May 2010
Location: Beijing, China
Posts: 47
Rep Power: 15 ![]() |
Thinking about the matrix
![]() ![]() ![]() ![]() Considering parallism using domain decomposition method. x and b are divided as ![]() ![]() ![]() ![]() ![]() ![]() Now, assume the matrix A can be decomposed as ![]() So every time function `Amul()` is invoked in Krylov type solver. The ![]() ![]() In Foam::lduMatrix, ![]() ![]() ![]() So my question is: where is off-diagonal block ![]() Now, considering a face F. There are several possibilities: 1. F is an internal face, which connect cell O numbered o and cell N numbered n on processor i, so there will be matrix coefficients ![]() ![]() 2. F is a boundary face, which only have an owner cell O numbered as o in processor i. It can only form source term ![]() ![]() 3. If face F is an processor interface, it will have two owner cells. One is owner cell ![]() ![]() I see the parameter list is : Code:
initMatrixInterfaces|updateMatrixInterfaces( add, interfaceBouCoeffs|interfaceIntCoeffs, interfaces, psi, result, cmpt ) processor or coupled patches. The `interfaceBouCoeffs/interfaceIntCoeffs` is the most confusing part. I do not know what it is. I do not know why it is not stored in lduMatrix but in fvMatrix<Type>. 4. If face F is an cyclic-like interface, it will have two `owner` in one processor. So in the so called implicit coupling implementation of cyclicFvPatchField, the function `initInterfaceMatrixUpdate` is empty. However, I still cannot understand why it is implicit. 5. When face F is on a cyclic processor interface... I am still unable to dig into it. ![]() I think the coupling implementation in openfoam is not 'zero halo'. In the terms of domain decomposition, pure 'zero halo' is like Dirichlet-Dirichlet coupling. It is not implicit. |
|
![]() |
![]() |
![]() |
![]() |
#2 |
Member
Di Cheng
Join Date: May 2010
Location: Beijing, China
Posts: 47
Rep Power: 15 ![]() |
I just figured out what is going on in coupled BC.
In openfoam, face addressing (owner, neighbour ) is different from lduAddressing (lower, upper). There are two implementation in OFv1706. One is `fvMeshLduAddressing`, another one is `fvMeshPrimitiveLduAddressing`. 1. in `fvMeshLduAddressing`, lower==owner[0:nInternalFaces], upper==neighbour; 2. in `fvMeshPrimitiveLduAddressing` which is used in overset, there can be more elements in lower and upper. `fvMeshLduAddressing` is most commonly used. Because of LDU addressing, the function of lduMatrix is limited and it is designed to be like that. lduMatrix is a scalar matrix which only stores none zero coefficients in `upper_`, `lower_`, `diag_`. So the coupled BC cannot be represented in lduMatrix because of this limitation. So the coupled BC is implementated like this: the coupled BC related coefficients are stored in fvMatrix<T> as `internalCoeffs_` and `boundaryCoeffs_`. And the type is FieldField<Field,T>. Now all the coefficients can be accessed in fvMatrix<T>. And the coupled BC (both cyclic BC and processor BC) can be handled in an unified manner. However, I am still confusing about how fvVectorMatrix are solved in segrated or coupled manner. The code is very confusing. ![]() |
|
![]() |
![]() |
![]() |
![]() |
#3 | |
Member
Join Date: Oct 2013
Posts: 92
Rep Power: 11 ![]() |
Quote:
I don't get the weight business with gradientInternalCoeffs, valueInternalCoeffs etc. It is irrelevant for me, I exactly know the fvMatrix coefficients in terms of upper, diagnol and source, I just want to run the darn thing in parallel |
||
![]() |
![]() |
![]() |
Tags |
coupled boundary, interface, openfoam |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
DPM Coupled Implicit | Aimara | FLUENT | 0 | April 25, 2007 16:23 |
grid interfaces | kiko | FLUENT | 0 | February 13, 2007 10:28 |
Convergence with coupled implicit solver | Henrik Ström | FLUENT | 1 | October 29, 2005 03:57 |
QUESTIONS about Coupled Implicit | manish | FLUENT | 0 | March 6, 2005 21:05 |
Help! Coupled Vs Implicit - Total temperature | sile | FLUENT | 3 | March 10, 2003 15:58 |