changeset 841:006defd0247b

Fix bug in +scheme.bcSetup outputs of parseDate(...) were not set correctly which caused a chrash in the case when no data was provided for the BC
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 20 Sep 2018 11:45:40 +0200
parents a4669d961d26
children 18162a0a5bb5 95993ad2bd70 92cb03e64ca4
files +scheme/bcSetup.m
diffstat 1 files changed, 7 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
diff -r a4669d961d26 -r 006defd0247b +scheme/bcSetup.m
--- a/+scheme/bcSetup.m	Tue Sep 18 15:48:36 2018 +0200
+++ b/+scheme/bcSetup.m	Thu Sep 20 11:45:40 2018 +0200
@@ -28,14 +28,14 @@
         [localClosure, penalty] = diffOp.boundary_condition(bcs{i}.boundary, bcs{i}.type);
         closure = closure + localClosure;
 
-        [ok, isSym, data] = parseData(bcs{i}, penalty, diffOp.grid);
+        [ok, isSymbolic, data] = parseData(bcs{i}, penalty, diffOp.grid);
 
         if ~ok
             % There was no data
             continue
         end
 
-        if isSym
+        if isSymbolic
             symbolicData{end+1} = data;
         else
             gridData{end+1} = data;
@@ -85,8 +85,10 @@
     end
 end
 
-function [ok, isSym, dataStruct] = parseData(bc, penalty, grid)
+function [ok, isSymbolic, dataStruct] = parseData(bc, penalty, grid)
     if ~isfield(bc,'data') || isempty(bc.data)
+        isSymbolic = [];
+        dataStruct = struct();
         ok = false;
         return
     end
@@ -96,14 +98,14 @@
 
     if nArg > 1
         % Symbolic data
-        isSym = true;
+        isSymbolic = true;
         coord = grid.getBoundary(bc.boundary);
         dataStruct.penalty = penalty;
         dataStruct.func = bc.data;
         dataStruct.coords = num2cell(coord, 1);
     else
         % Grid data
-        isSym = false;
+        isSymbolic = false;
         dataStruct.penalty = penalty;
         dataStruct.func = bcs{i}.data;
     end