--- a
+++ b/Cobiveco/@cobiveco/computeTransventricular.m
@@ -0,0 +1,27 @@
+function computeTransventricular(o)
+
+if ~o.available.mesh0
+    o.prepareMesh0;
+end
+o.printStatus('Computing transventricular coordinate...');
+t = toc;
+
+idsEndoLv = o.m0.surToVol(o.m0.sur.pointData.class==3);
+idsEndoRv = o.m0.surToVol(o.m0.sur.pointData.class==4);
+
+ids = [idsEndoLv; idsEndoRv];
+val = [zeros(size(idsEndoLv)); ones(size(idsEndoRv))];
+o.m0.tvLaplace = solveLaplace(o.m0.L, ids, val, o.cfg.tol, o.cfg.maxit);
+o.m0.tv = round(o.m0.tvLaplace);
+o.result.pointData.tv = single(o.m0.tv);
+
+if o.cfg.exportLevel > 1
+    o.m0.debug.pointData.tvLaplace = single(o.m0.tvLaplace);
+    o.m0.debug.pointData.tv = single(o.m0.tv);
+    vtkWrite(o.m0.debug, sprintf('%sdebug0.vtu', o.cfg.outPrefix));
+end
+
+o.printStatus(sprintf('%.1f seconds\n', toc-t), true);
+o.available.transventricular = true;
+
+end
\ No newline at end of file