Source code for pyleecan.Methods.Simulation.StructElmer.get_meshsolution

# -*- coding: utf-8 -*-
from os.path import join

from ....Classes.ElmerResultsVTU import ElmerResultsVTU

# TODO define "Results" dir, etc. in __init__


def get_meshsolution(self, output):
    """Get and set the mesh data and solution data.

    Parameters
    ----------
    self : StructElmer
        a StructElmer object
    save_path: str
        Full path to folder in which the results are saved

    Returns
    -------
    success: bool
        Information if meshsolution could be created

    """
    # logger
    logger = self.get_logger()

    fea_path = self.get_path_save_fea(output)

    # if meshsoltion is not requested set meshsolution to None
    if not self.is_get_mesh or not self.is_save_FEA:
        logger.info("StructElmer: MeshSolution is not stored by request.")
        output.struct.meshsolution = None
        return False

    # setup Elmer result helper class
    ElmerVtu = ElmerResultsVTU()

    ElmerVtu.store_dict = {
        "displacement": {
            "name": "Displacement",
            "unit": "mm",
            "symbol": "disp",
            "norm": 1e-3,
        },
        "vonmises": {
            "name": "Von Mises Stress",
            "unit": "MPa",
            "symbol": "vonmises",
            "norm": 1e6,
        },
    }

    ElmerVtu.label = "Elmer Structural"
    ElmerVtu.file_path = join(fea_path, "Results", "case_t0001.vtu")

    output.struct.meshsolution = ElmerVtu.build_meshsolution()

    return True