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

Improve the interface to the svZeroDSolver #254

Open
1 task done
ktbolt opened this issue Aug 27, 2024 · 0 comments
Open
1 task done

Improve the interface to the svZeroDSolver #254

ktbolt opened this issue Aug 27, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@ktbolt
Copy link
Collaborator

ktbolt commented Aug 27, 2024

Use Case

The svFSIplus solver supports a callable interface to the lumped parameter network (LPN) solver.

Problem

Using the svZeroDSolver solver is activated with the

<Couple_to_svZeroD type="SI"> </Couple_to_svZeroD>

solver XML keyword using an ambiguous SI type name (silicon?).

The data needed to setup the svZeroDSolver is stored in a text file with hard-coded name svZeroD_interface.dat

interface library path:
../../../../svZeroDSolver/build/src/interface/libsvzero_interface.dylib

svZeroD input file:
svzerod_3Dcoupling.json

svZeroD external coupling block names to surface IDs (where surface IDs are from *.svpre file):
RCR_coupling 0

Initialize external coupling block flows:
0

External coupling block initial flows (one number is provided, it is applied to all coupling blocks):
0.0

Initialize external coupling block pressures:
1

External coupling block initial pressures (one number is provided, it is applied to all coupling blocks):
0.0

This file uses a custom a format.

Solution

  1. It might be good to introduce a Coupling keyword that defines how boundary conditions are coupled.

  2. The information needed to setup the svZeroDSolver should be defined using XML in the solver input file

<ZeroDSolver name="zd_semi_implicit_coupling">
  <Coupling_type> semi-implicit </Coupling_type>. 
  <Interface_library> svZeroDSolver/build/src/interface/libsvzero_interface.dylib <Interface_library>
  <Input_file> svzerod_3Dcoupling.json </Input_file>
  <Coupling_block>
     <Names_to_surface_ID> RCR_coupling 0 </Names_to_surface_ID>
     <Flows> 
       <Initialize> false </Initialize>
      </Flows> 
     <Pressure> 
        <Initialize> true </Initialize>
        <Value> 0.0 </Value>
      </Pressure> 
  </Coupling_block>
</ZeroDSolver>

This provides a uniform way to represent information.

Maybe add a Time_dependence_coupling keyword to remove the ambiguity of <Time_dependence> Coupling </Time_dependence>

   <Add_BC name="lumen_outlet" >
      <Type> Neu </Type>
      <Time_dependence_coupling>  zd_semi_implicit_coupling </Time_dependence_coupling>
   </Add_BC>

Alternatives considered

Do nothing.

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct and Contributing Guidelines
@ktbolt ktbolt added the enhancement New feature or request label Aug 27, 2024
@ktbolt ktbolt self-assigned this Aug 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant