This is all very confusing, different versions of Mathematica seem to react differently to the different region functions involved here. What I'm going to write here is only really applicable to version 10.2, I may put a note at the bottom for other versions.
Here is the region,
With[{Rwg = 7.0, RLiner = 8.0, RRib = 8.5, RExt = 9.0,
Theta1 = 0.0227, Theta2 = 0.00916},
region = ! (x^2 + y^2 > RLiner^2 && x^2 + y^2 < RRib^2 &&
0 < y < x*Tan[Theta2]) && (y >= 0 && x^2 + y^2 >= Rwg^2 &&
x^2 + y^2 <= RExt^2 && y <= x Tan[Theta1]);
]
We try to create an ElementMesh
from this region,
Needs["NDSolve`FEM`"];
ToElementMesh[ImplicitRegion[
region, {x, y}],
MaxCellMeasure -> 0.0001]["Wireframe"]
During evaluation of In[22]:= ToElementMesh::fememins: The mesh
elements are not valid. A set of valid mesh element incidents needs to
be positive integers and be able to form a complete sequence starting
from 1 to the largest incident present. There are missing incidents; a
complete sequence cannot be formed. >>
During evaluation of In[22]:= ToElementMesh::femtemnm: A mesh could
not be generated. >>
(* $Failed["Wireframe"] *)
We try MichaelE2's trick of simplifying the conditionals,
ToElementMesh[ImplicitRegion[
Evaluate@Reduce@region, {x, y}],
MaxCellMeasure -> 0.0001]["Wireframe"]
During evaluation of In[24]:= ToElementMesh::fememib: The input has or
generated an intersecting boundary and cannot be processed. >>
During evaluation of In[24]:= ToElementMesh::femtemnm: A mesh could
not be generated. >>
(* $Failed["Wireframe"] *)
Still no luck. But if we first create a MeshRegion
and then convert it to an ElementMesh
, then it does work, even though it still gives some errors.
dregion = DiscretizeRegion[
ImplicitRegion[
Evaluate@Reduce@region, {x, y}],
Method -> "Continuation", PerformanceGoal -> "Quality"];
ToElementMesh[dregion, MaxCellMeasure -> 0.0001]["Wireframe"]
DiscretizeRegion::drcm: Method->Continuation not able to resolve all
components of dimension less than the embedding dimension 2; these may
be omitted from the result. >>
ToElementMesh::femimq: The element mesh has insufficient quality of
-20.1137. A quality estimate below 0. may be caused by a wrong ordering of element incidents or self-intersecting elements. >>

Edit
As shown in this screenshot, I only get this error in version 10.2, not in 10.1 or 10.3

MaxCellMeasure -> 0.1
? $\endgroup$