python - plaxis 2d soil material parameter

Hi,

I am using Plaxis 2D V21 Ultimate. I would like to input einit、DataSetFlow and UsdaSoilType through python remote scripting.However, It does not work. My script is as the following:

material = g_i.soilmat()
material.setproperties("MaterialName", f"Sunshan VI CL-111", "SoilModel", 2, "DrainageType", 1, "DilatancyCutOff", False, "gammaUnsat", 16,"gammaSat", 20, "einit", 0.65, "Eref", 13000, "nu", 0.3, "cref", 1, "phi", 30, "psi", 0, "InterfaceStrength", 2, "Rinter", 0.667, "K0Determination" , 0, "K0Primary", 0.66, "DataSetFlow", 2, "UsdaSoilType", 0)[0]

Parents
  • Dear 簡 宜婕,

    Our previous version (V21 and older) required to define some different parameters than the ones exposed in GUI. In this case, PLAXIS actually stores the porosity (n) instead of the void ratio (e), therefore instead of the einit you should define the ninit = einit / (1+einit).

    In this case, the command becomes:

    material = g_i.soilmat()
    material.setproperties("MaterialName", f"Sunshan VI CL-111", "SoilModel", 2, "DrainageType", 1, "DilatancyCutOff", False, "gammaUnsat", 16,"gammaSat", 20, "ninit", 0.393939, "Eref", 13000, "nu", 0.3, "cref", 1, "phi", 30, "psi", 0, "InterfaceStrength", 2, "Rinter", 0.667, "K0Determination", 0, "K0Primary", 0.66, "DataSetFlow", 2, "UsdaSoilType", 0)

    Note that in our latest version PLAXIS CONNECT Edition V22, this process has been improved.

    Answer Verified By: 簡 宜婕 

  • Hello Stefanos Papavasileiou

    Thank you for your reply.

    That also doesn't work for DataSetFlow and UsdaSoilType,can this problem be resolved if I update to Edition V22 ?

    Because when I input DataSetFlow is 2, the result should be "USDA",but the display is not.

    Best regards

    簡宜婕

Reply Children
  • Hello again,

    Yes, this is also improved with V22.

    For V21 this is a bit of trial & error as PLAXIS has a specific property that links the DataSetFlow and the SoilTypeFlow (and ModelFlow and LowerUpper properties when applicable).
    This is called FlowDataModel and in your case, the value for that (Standard with Coarse) is 0.

    So, in your script you should have something like this:

    mc_params_gw_2 = [("MaterialName", "Sand_MC"),
                    ("SoilModel", 2),
                    ("Gref", 25E3 / (2 * (1 + 0.3))),
                    ("nu", 0.3),
                    ("phi", 29),
                    ("FlowDataModel", 0),  # specific integer for Standard and Coarse
                    ("DataSetFlow", "Standard"),  # Standard
                    ("SoilTypeFlow", "Coarse")]

    The way to find it is the following:

    1. create the material via the GUI;
    2. echo the FlowDataModel property;
    3. include it with the rest in the material definition.