This is fixed in version 10.3.
I'm trying to solve a system of PDE over a large domain.
This doesn't means I need to have a huge amount of mesh points and mesh elements to discretize the domain. Just that the domains has a big bounding box in some units, e.g. a domain like Disk[{0,0}, 10.^6]
.
I can obviously choose a different unit and rescale the domain, but I'll then need to change the PDE and the nice physical constants involved in the PDE and I'll lose the nice and easy interpretation of the solution.
So I prefer to keep the more "natural" units of the domain, if possible.
However I notice that ToElementMesh
keeps running continuously with my domain. Indeed:
Table[Timing@ToElementMesh[Disk[{0, 0}, r]], {r, 10^Range[4]}]
{{0.125000, ElementMesh[{{-10., 10.}, {-10., 10.}}, {TriangleElement[ "<" 488 ">"]}]}, {0.343750, ElementMesh[{{-100., 100.}, {-100., 100.}}, {TriangleElement[ "<" 488 ">"]}]}, {3.046875, ElementMesh[{{-999.998, 1000.}, {-999.998, 1000.}}, {TriangleElement["<" 474 ">"]}]}, {28.593750, ElementMesh[{{-10000., 10000.}, {-10000., 10000.}}, {TriangleElement["<" 504 ">"]}]}}
So the automatically generated mesh always has about 500 TriangleElement
but the running time increase a lot with the radius of the domain.
Suspecting a relationship between this behavior and an AccuracyGoal
requirement, I tried to play with the undocumented AccuracyGoal
option without success.
As a workaround I can for sure 1) generate a mesh in a completely manual manner or 2) generate an automatic mesh for the unitary Disk and rescale the incidents coordinates.
But, it is possible to use directly ToElementMesh
to accomplish this task, maybe adding a proper option?
System: Windows 8.1 x64, Mathematica 10.0.2.0