ParallelTable complaining while Table executes
- To: mathgroup at smc.vnet.net
- Subject: [mg127628] ParallelTable complaining while Table executes
- From: narducci60 at gmail.com
- Date: Wed, 8 Aug 2012 03:17:25 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
I'm having trouble parallelizing a simple code. Table[] executes it without any problem but if I try to use ParallelTable something seems to go wrong. Here is the snippet: Table[Show[ Plot3D[h2Dbreak[xx, yy, t, -1], {xx, 0, 10}, {yy, 0, 10}, PlotStyle -> Yellow, ColorFunctionScaling -> False, BoxRatios -> {1, 1, .5}, MaxRecursion -> 7, Mesh -> None, Filling -> \[Phi]2D[0, 0, t], FillingStyle -> psau, Axes -> False, Ticks -> None, Boxed -> False, PlotRange -> {{0, 10}, {0, 10}, {-5, 1.5}}], Plot3D[\[Phi]2Dbreak[xx, yy, t, -1], {xx, 0, 10}, {yy, 0, 10}, PlotStyle -> ps, BoxRatios -> {1, 1, 2}, MaxRecursion -> 7, Mesh -> None, Filling -> Bottom, FillingStyle -> psbulk, Axes -> False, Ticks -> None, Boxed -> False, PlotRange -> {{0, 10}, {0, 10}, {-5, 1.5}}] ], {t, 0, .02, .01}] where \[Phi]2Dbreak[x_, y_, t_, nabla2\[Phi]crit_] := If[t < tbreak[x, y, nabla2\[Phi]crit], \[Phi]2D[x, y, t], \[Phi]2D[x, y, tbreak[x, y, nabla2\[Phi]crit]]] h2Dbreak[x_, y_, t_, nabla2\[Phi]crit_] := If[nabla2\[Phi][x, y, t] < nabla2\[Phi]crit, Indeterminate, h2D[x, y, t]] tbreak[x_, y_, nabla2\[Phi]crit_] := If[tbreaktmp[x, y, nabla2\[Phi]crit] > 0, tbreaktmp[x, y, nabla2\[Phi]crit], 1000] tbreaktmp[x_, y_, nabla2\[Phi]crit_] := t //. FindRoot[ nabla2\[Phi][x, y, t] == nabla2\[Phi]crit, {t, 0.1, 2}] h2Dbreak[x_, y_, t_, nabla2\[Phi]crit_] := If[nabla2\[Phi][x, y, t] < nabla2\[Phi]crit, Indeterminate, h2D[x, y, t]] Needs["VectorAnalysis`"] nabla2\[Phi][x_, y_, t_] := Laplacian[\[Phi]2D[Xx, Yy, t]] //. {Xx -> x, Yy -> y} Table[...] works fine while ParallelTable complains: FindRoot::nlnum: The function value {0.5 +VectorAnalysis`Laplacian[-0.2]} is not a list of numbers with dimensions {1} at {t} = {0.1}. FindRoot::nlnum: The function value {0.5 +VectorAnalysis`Laplacian[-0.2]} is not a list of numbers with dimensions {1} at {t} = {0.1}. ReplaceRepeated::reps: {FindRoot[nabla2\[Phi][0.000715,0.000715,t]==-0.5,{t,0.1,2}]} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. ReplaceRepeated::reps: {FindRoot[nabla2\[Phi][0.000715,0.000715,t]==-0.5,{t,0.1,2}]} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. FindRoot::nlnum: The function value {0.5 +VectorAnalysis`Laplacian[-0.2]} is not a list of numbers with dimensions {1} at {t} = {0.1}. FindRoot::nlnum: The function value {0.5 +VectorAnalysis`Laplacian[-0.2]} is not a list of numbers with dimensions {1} at {t} = {0.1}. FindRoot::nlnum: The function value {0.5 +VectorAnalysis`Laplacian[-0.2]} is not a list of numbers with dimensions {1} at {t} = {0.1}. FindRoot::nlnum: The function value {0.5 +VectorAnalysis`Laplacian[-0.2]} is not a list of numbers with dimensions {1} at {t} = {0.1}. ReplaceRepeated::reps: {FindRoot[nabla2\[Phi][0.000715,0.000715,t]==-0.5,{t,0.1,2}]} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. FindRoot::nlnum: The function value {0.5 +VectorAnalysis`Laplacian[-0.2]} is not a list of numbers with dimensions {1} at {t} = {0.1}. General::stop: Further output of FindRoot::nlnum will be suppressed during this calculation. FindRoot::nlnum: The function value {0.5 +VectorAnalysis`Laplacian[-0.2]} is not a list of numbers with dimensions {1} at {t} = {0.1}. General::stop: Further output of FindRoot::nlnum will be suppressed during this calculation. ReplaceRepeated::reps: {FindRoot[nabla2\[Phi][0.000715,0.000715,t]==-0.5,{t,0.1,2.}]} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. FindRoot::nlnum: The function value {0.5 +VectorAnalysis`Laplacian[-0.2]} is not a list of numbers with dimensions {1} at {t} = {0.1}. ReplaceRepeated::reps: {FindRoot[nabla2\[Phi][0.000715,0.000715,t]==-0.5,{t,0.1,2.}]} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. ReplaceRepeated::reps: {FindRoot[nabla2\[Phi][0.000715,0.000715,t]==-0.5,{t,0.1,2.}]} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. General::stop: Further output of FindRoot::nlnum will be suppressed during this calculation. ReplaceRepeated::reps: {FindRoot[nabla2\[Phi][0.000715,0.000715,t]==-0.5,{t,0.1,2.}]} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. General::stop: Further output of ReplaceRepeated::reps will be suppressed during this calculation. ReplaceRepeated::reps: {FindRoot[nabla2\[Phi][0.000715,0.000715,t]==-0.5,{t,0.1,2.}]} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. General::stop: Further output of ReplaceRepeated::reps will be suppressed during this calculation. ReplaceRepeated::reps: {FindRoot[nabla2\[Phi][0.000715,0.000715,t]==-0.5,{t,0.1,2.}]} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. General::stop: Further output of ReplaceRepeated::reps will be suppressed during this calculation. and returns no output. I tried to DistributeDefinitions -- no success. Any hint? Thanks, Dario