From d80f688afdf68a3786b74c852e138d95e93a1ff1 Mon Sep 17 00:00:00 2001
From: Paul Dechamps <paul.dechamps@uliege.be>
Date: Tue, 25 Mar 2025 02:40:37 +0100
Subject: [PATCH] (fix) Update reset in coupler

---
 blast/blCoupler.py | 39 ++++++++++++++++++++-------------------
 1 file changed, 20 insertions(+), 19 deletions(-)

diff --git a/blast/blCoupler.py b/blast/blCoupler.py
index 8810afb..9d0b1d3 100644
--- a/blast/blCoupler.py
+++ b/blast/blCoupler.py
@@ -177,23 +177,24 @@ class Coupler:
                     side.setBlowingVelocity(np.zeros(side.getnElms()))
             self.isol.setBlowingVelocity()
 
-        for ibody, body in enumerate(self.vsol.bodies):
-            for isec, sec in enumerate(body.sections):
-                for i, reg in enumerate(sec.regions):
-                    if reg.getName() == 'wake':
-                        iReg = 1
-                    elif reg.getName() == 'lower' or reg.getName() == 'upper':
-                        iReg = 0
-                    else:
-                        raise RuntimeError('Invalid region', reg.name)
-                    loc = np.zeros(reg.getnNodes())
-                    for inod, nod in enumerate(reg.nodes):
-                        loc[inod] = nod.xi
-                    self.isol.xxExt[ibody][isec][i] = loc
-                    self.isol.deltaStarExt[ibody][isec][i] = np.zeros(reg.getnNodes())
-                    self.isol.vtExt[ibody][isec][i] = np.zeros(reg.getnNodes())
-                    for inod in range(reg.getnNodes()):
-                        reg.deltaStarExt[inod] = self.isol.deltaStarExt[ibody][isec][i][inod]
-                        reg.nodes[inod].xiExt = self.isol.xxExt[ibody][isec][i][inod]
-                        reg.vtExt[inod] = self.isol.vtExt[ibody][isec][i][inod]
+        if self.isol.vinit:
+            for ibody, body in enumerate(self.vsol.bodies):
+                for isec, sec in enumerate(body.sections):
+                    for i, reg in enumerate(sec.regions):
+                        if reg.getName() == 'wake':
+                            iReg = 1
+                        elif reg.getName() == 'lower' or reg.getName() == 'upper':
+                            iReg = 0
+                        else:
+                            raise RuntimeError('Invalid region', reg.name)
+                        loc = np.zeros(reg.getnNodes())
+                        for inod, nod in enumerate(reg.nodes):
+                            loc[inod] = nod.xi
+                        self.isol.xxExt[ibody][isec][i] = loc
+                        self.isol.deltaStarExt[ibody][isec][i] = np.zeros(reg.getnNodes())
+                        self.isol.vtExt[ibody][isec][i] = np.zeros(reg.getnNodes())
+                        for inod in range(reg.getnNodes()):
+                            reg.deltaStarExt[inod] = self.isol.deltaStarExt[ibody][isec][i][inod]
+                            reg.nodes[inod].xiExt = self.isol.xxExt[ibody][isec][i][inod]
+                            reg.vtExt[inod] = self.isol.vtExt[ibody][isec][i][inod]
         self.isol.vinit = False
-- 
GitLab