9
$\begingroup$

Consider the following region:

eq1 = 4 x;
eq2 = 1/x;
eq3 = 1;
cover = y^2/x^2;
bottom = eq3 < y < eq1 && eq3 < y < eq2;
reg3D = ImplicitRegion[bottom && 0 <= z <= cover, {{x, 1/4, 1}, {y, 1, 2}, {z, 0, 15}}];

RegionPlot3D[bottom && z < cover, {x, 1/4, 1}, {y, 1, 2}, {z, 0, 15}, 
 PlotPoints -> 100, Mesh -> None, AxesLabel -> Automatic]

enter image description here

When I discretize this solid, I get the error messages:

DiscretizeRegion[reg3D, AccuracyGoal -> 4]

DiscretizeRegion::drf: DiscretizeRegion was unable to discretize the region ImplicitRegion[<<2>>].

BoundaryDiscretizeRegion[reg3D, AccuracyGoal -> 4]

BoundaryDiscretizeRegion::drf: "BoundaryDiscretizeRegion was unable to discretize the region ImplicitRegion[<<2>>]."

An attempt with "NDSolveFEMToElementMesh" terminates the C-Compiler. enter image description here

Reducing the z domain 0 < z < 9.7; all works fine.

new3D = ImplicitRegion[bottom && 0 <= z <= cover, {{x, 1/4, 1}, {y, 1, 2}, {z, 0, 9.7}}];
DiscretizeRegion[new3D, AccuracyGoal -> 4]
BoundaryDiscretizeRegion[new3D, AccuracyGoal -> 4]

I am looking for a technique to discretize the whole solid with 0 < z < 15?

$\endgroup$
2
$\begingroup$

Is this sufficient?

mesh = DiscretizeGraphics[
 RegionPlot3D[
    bottom && z < cover, {x, 1/4, 1}, {y, 1, 2}, {z, 0, 15}, 
    PlotPoints -> 100, Mesh -> None, 
    AxesLabel -> Automatic] /. _Directive :> {}];

Show[mesh, BoxRatios -> {1, 1, 1}]

Mathematica graphics

$\endgroup$
  • $\begingroup$ Unfortunately not. Sorry, I was not clear enough. My intention is to check volume calculations.Therefor, I need BondaryDiscretizeRegion or DiscretizeRegion. See my last question: "Is DiscretizeRegion not yet ready to discretize 3D-solids?" Thanks for your effort. $\endgroup$ – user31001 Sep 8 '15 at 16:24
  • $\begingroup$ How can I insert hyperlinks in a comment? $\endgroup$ – user31001 Sep 8 '15 at 16:26
  • 1
    $\begingroup$ Markdown links are permitted in comments: [text](url). $\endgroup$ – Michael E2 Sep 8 '15 at 16:41
  • $\begingroup$ @Willinski My understanding is that DiscretizeRegion is roughly equivalent to DiscretizedGraphics@RegionPlot..., at least for the default settings. So if there's a problem, it's not DiscretizeRegion vs. DiscretizeGraphics. The volume problem, which is distinct from the question you asked here, seems to be the same problem as in your previous question, a degenerate polygon. $\endgroup$ – Michael E2 Sep 8 '15 at 17:10
  • $\begingroup$ No, DiscretizeGraphics@RegionPlot... is not the same as DiscretizeRegion. You can check it with {RegionEmbeddingDimension@mesh, RegionDimension@mesh} = {3, 2}. You can obtain the Area@mesh but not Volume@mesh. $\endgroup$ – user31001 Sep 8 '15 at 17:32
1
$\begingroup$

Here is an alternative:

eq1 = 4 x;
eq2 = 1/x;
eq3 = 1;
cover = y^2/x^2;
bottom = eq3 < y < eq1 && eq3 < y < eq2;
new3D = ImplicitRegion[
   bottom && 0 <= z <= cover, {{x, 1/4, 1}, {y, 1, 2}, {z, 0, 9.7}}];


Needs["NDSolve`FEM`"];
mesh = ToElementMesh[new3D, "MaxCellMeasure" -> 0.5];

To visualize,

 Show[mesh[
  "Wireframe"[
   "MeshElementStyle" -> 
    EdgeForm[Directive[Blue, Thickness[0.003]]]]], 
 BoxRatios -> {1, 1, 1}, ImageSize -> {200, 200}]

yielding

enter image description here

Have fun!

$\endgroup$
  • $\begingroup$ With the reduced z-domain it is ok, however with BondaryDiscretizeRegion or DiscretizeRegion, but not with 0 < z <15. See my last question: "Is DiscretizeRegion not yet ready to discretize 3D-solids?" Thanks for your effort. $\endgroup$ – user31001 Sep 8 '15 at 16:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy