GEOS-DEV / GEOS

GEOS Simulation Framework
GNU Lesser General Public License v2.1
206 stars 83 forks source link

Element Regions vs Geological regions, and defining properties on it #299

Closed AntoineMazuyer closed 5 years ago

AntoineMazuyer commented 5 years ago

Following the meeting of this morning, sorry if I were not so clear on the problem I have.

Let say I have this model, and that I want to run a linear elasticity problem on it:

structuralmodel

With this mesh:

mesh

For the moment, I am doing this

cellblock

So in the XML file, I will define my ElementRegions

  <ElementRegions>
    <ElementRegion name="Top" cellBlocks="Top_Tri Top_Quad" materialList="rock"/>
    <ElementRegion name="Mid" cellBlocks="Mid_Tri Mid_Quad" materialList="rock"/>
    <ElementRegion name="Bot" cellBlocks="Bot_Tri Bot_Quad" materialList="rock"/>
  </ElementRegions>

and to define the properties, it becomes quite tedious...

    <Dirichlet name="TopYoung"
               initialCondition="1"
               setNames="all"
               objectPath="ElementRegions/elementRegions/Top/cellBlockSubRegions/Top_Tri"
               fieldName="youngModulus"
               scale="1e9"/>

    <Dirichlet name="TopYoung2"
               initialCondition="1"
               setNames="all"
               objectPath="ElementRegions/elementRegions/Top/cellBlockSubRegions/Top_Quad"
               fieldName="youngModulus"
               scale="1e9"/>

    <Dirichlet name="MidYoung"
               initialCondition="1"
               setNames="all"
               objectPath="ElementRegions/elementRegions/Top/cellBlockSubRegions/Mid_Tri"
               fieldName="youngModulus"
               scale="3e9"/>

    <Dirichlet name="MidYoung2"
               initialCondition="1"
               setNames="all"
               objectPath="ElementRegions/elementRegions/Top/cellBlockSubRegions/Mid_Quad"
               fieldName="youngModulus"
               scale="3e9"/>

    <Dirichlet name="BotYoung"
               initialCondition="1"
               setNames="all"
               objectPath="ElementRegions/elementRegions/Top/cellBlockSubRegionsBot_Tri"
               fieldName="youngModulus"
               scale="4e9"/>

    <Dirichlet name="BotYoung2"
               initialCondition="1"
               setNames="all"
               objectPath="ElementRegions/elementRegions/Top/cellBlockSubRegions/Bot_Quad"
               fieldName="youngModulus"
               scale="4e9"/>

So I think there is two things to be solved here (and that is on this point that we did not understand each other this morning)

  1. (conceptual) elementRegions are supposed to be used for defining different behaviors. For instance, we can use poroelasticity on the Mid layer, whereas we can use simple elasticity on the two others. I use the elementRegions to define the actual geological regions, and to set different properties on it (but with the same "physics" behind).

  2. (practical) It's very tedious to define properties like that. So we need to find a more convenient way to set, let's say the Young modulus, using one XML node. (and I think it is what you were talking about by showing me the BoundaryCondition code).

I think the second point can be solved pretty easily, I am not sure for the first point.

In any case, the user has to be able to specify properties, constant by geological regions (which is the assumption made in a lot of application cases in geomechanics),

AntoineMazuyer commented 5 years ago

This is related to PR #382