Skip to content
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

Mapping values from fluid to solid mesh in FSI #66

Closed
mrp089 opened this issue Mar 2, 2022 · 3 comments
Closed

Mapping values from fluid to solid mesh in FSI #66

mrp089 opened this issue Mar 2, 2022 · 3 comments
Labels
help wanted Extra attention is needed

Comments

@mrp089
Copy link
Member

mrp089 commented Mar 2, 2022

For a monolithic FSG approach using #32, I need to map WSS from the fluid interface to the solid interface.

I found the code that sets up the projection from the face pair given in the input file:

CALL SETPROJECTOR(list, avNds)
DO iM=1, nMsh
DO a=1, msh(iM)%gnNo
IF (msh(iM)%gN(a) .EQ. 0) THEN
IF (PULLSTACK(avNds,i)) THEN
msh(iM)%gN(a) = i
ELSE
gtnNo = gtnNo + 1
msh(iM)%gN(a) = gtnNo
END IF
END IF
IF (ALLOCATED(msh(iM)%gpN))
2 msh(iM)%gpN(a) = msh(iM)%gN(a)

It looks like this information is stored here:

! Global nodes maping nNo --> tnNo
INTEGER(KIND=IKIND), ALLOCATABLE :: gN(:)
! GLobal projected nodes mapping
! projected -> unprojected mapping
INTEGER(KIND=IKIND), ALLOCATABLE :: gpN(:)

Unfortunately, I can't find code anywhere else that maps values between fluid and solid mesh on the interface. @vvedula22 Do you have an idea how to perform this mapping? Thank you!

@vvedula22
Copy link
Contributor

@mrp089 Once the interface is projected between fluid and solid domains, they both are treated as identical. So, I don't think you would need to remap quantities to the solid nodes as both the fluid and solid nodes are treated as the same at the interface. Can you be more specific about how you plan to use the mapped WSS? Would it be in the form of a vtp file? or are you creating this map internally and using it for the G&R calculations?

@mrp089 mrp089 added the help wanted Extra attention is needed label Mar 3, 2022
@mrp089
Copy link
Member Author

mrp089 commented Mar 9, 2022

Thanks for the hint @vvedula22 Like you said, the node numbering of solid and fluid msh(i)%gnNo is overlapping (i.e. containing the same ids in both, which correspond to the interface). I wrote code that finds the interface by searching for ids that are contained in both domains.

Can you be more specific about how you plan to use the mapped WSS?

Every solid Gauss point is assigned a (transmurally constant) WSS which is used in the G&R model (compared to WSS during prestress).

Would it be in the form of a vtp file?

After each FSI Newton step inside svFSI, I post-process WSS and map it onto the solid domain. To read the interface-ids and update WSS in the solid domain, I use varwallprops by @schwarz-e (#52).

or are you creating this map internally and using it for the G&R calculations?

I assign an "interface-id" to each node on the fluid-solid interface. Every node in the interior of the solid domain also has an interface-id, which is constant transmurally. So I can map every interface node to an interior node.

@mrp089 mrp089 closed this as completed Mar 9, 2022
@vvedula22
Copy link
Contributor

I wrote code that finds the interface by searching for ids that are contained in both domains.

This is probably not required because, after the projection step, the fa(iFa)%gN and fa(jFa)%gN at the interface map to the same global node number in the range 1:tnNo.

Every solid Gauss point is assigned a (transmurally constant) WSS which is used in the G&R model (compared to WSS during prestress).

After each FSI Newton step inside svFSI, I post-process WSS and map it onto the solid domain. To read the interface-ids and update WSS in the solid domain, I use varwallprops by @schwarz-e (#52).

It appears that you want to calculate WSS at the interface from the fluid domain and access this value from the solid domain. To achieve this, you may do the following:

  1. Compute WSS only at the interface as done currently in BPOST.f and store it in a global container of size tnNo (similar to sF in the subroutine BPOST). Let us say the interface here is characterized by iFa and iM that represents the fluid domain.
  2. Now, on the solid side of the interface (characterized by jFa, jM), you may access the same WSS using fa(jFa)%gN as both these nodes are using the same id.

I assign an "interface-id" to each node on the fluid-solid interface. Every node in the interior of the solid domain also has an interface-id, which is constant transmurally. So I can map every interface node to an interior node.

I am not sure how you transfer the quantity at the face through the thickness of the solid. It might not be a trivial problem when you have an unstructured mesh with more than one element spanning the thickness. Shouldn't you solve a Laplace problem or use a transmural distance metric to tag face quantity through all the internal elements?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants