FEM: result object refactor, move most properties from C++ to a new Python result object

This commit is contained in:
qingfengxia
2017-02-16 07:54:32 +01:00
committed by Bernd Hahnebach
parent ea1829c9fa
commit c13ca92792
8 changed files with 187 additions and 32 deletions

2
src/Mod/Fem/App/CMakeLists.txt Executable file → Normal file
View File

@@ -109,6 +109,7 @@ SET(FemScripts_SRCS
_ViewProviderFemSolverCalculix.py
_ViewProviderFemSolverZ88.py
_ViewProviderFemMaterial.py
_ViewProviderFemResult.py
ccxDatReader.py
ccxFrdReader.py
convert2TetGen.py
@@ -139,6 +140,7 @@ SET(FemScripts_SRCS
FemToolsCcx.py
FemToolsZ88.py
FemMaterial.py
FemResult.py
FemSelectionObserver.py
TestFem.py
TaskPanelFemBeamSection.ui

View File

@@ -38,8 +38,12 @@ PROPERTY_SOURCE(Fem::FemResultObject, App::DocumentObject)
FemResultObject::FemResultObject()
{
ADD_PROPERTY_TYPE(Mesh,(0), "General",Prop_None,"Link to the corresponding mesh");
ADD_PROPERTY_TYPE(NodeNumbers,(0), "Data",Prop_None,"Numbers of the result nodes");
ADD_PROPERTY_TYPE(Stats,(0), "Fem",Prop_None,"Statistics of the results");
ADD_PROPERTY_TYPE(Time,(0), "Fem",Prop_None,"Time of analysis incement");
/*
ADD_PROPERTY_TYPE(DisplacementVectors,(), "Fem",Prop_None,"List of displacement vectors");
ADD_PROPERTY_TYPE(DisplacementLengths,(0), "Fem",Prop_None,"List of displacement lengths");
ADD_PROPERTY_TYPE(StressVectors,(), "Fem",Prop_None,"List of Stress vectors");
@@ -50,15 +54,16 @@ FemResultObject::FemResultObject()
ADD_PROPERTY_TYPE(PrincipalMin,(0), "Fem",Prop_None,"List of Third Principal (Min) stress values");
ADD_PROPERTY_TYPE(MaxShear,(0), "Fem",Prop_None,"List of Maximum Shear stress values");
ADD_PROPERTY_TYPE(Temperature,(0), "Fem",Prop_None,"Nodal temperatures");
ADD_PROPERTY_TYPE(Mesh,(0), "General",Prop_None,"Link to the corresponding mesh");
ADD_PROPERTY_TYPE(Eigenmode,(0), "Fem",Prop_None,"Number of the eigenmode");
ADD_PROPERTY_TYPE(EigenmodeFrequency,(0), "Fem",Prop_None,"Frequency of the eigenmode");
ADD_PROPERTY_TYPE(Time,(0), "Fem",Prop_None,"Time of analysis incement");
ADD_PROPERTY_TYPE(UserDefined,(0), "Fem",Prop_None,"User Defined Results");
*/
// make read-only for property editor
NodeNumbers.setStatus(App::Property::ReadOnly, true);
Stats.setStatus(App::Property::ReadOnly, true);
Time.setStatus(App::Property::ReadOnly, true);
/*
DisplacementVectors.setStatus(App::Property::ReadOnly, true);
DisplacementLengths.setStatus(App::Property::ReadOnly, true);
StressVectors.setStatus(App::Property::ReadOnly, true);
@@ -71,8 +76,8 @@ FemResultObject::FemResultObject()
Temperature.setStatus(App::Property::ReadOnly, true);
Eigenmode.setStatus(App::Property::ReadOnly, true);
EigenmodeFrequency.setStatus(App::Property::ReadOnly, true);
Time.setStatus(App::Property::ReadOnly, true);
UserDefined.setStatus(App::Property::ReadOnly, false);
* */
}
FemResultObject::~FemResultObject()

View File

@@ -46,35 +46,12 @@ public:
/// Link to the corresponding mesh
App::PropertyLink Mesh;
/// Stats of analysis
App::PropertyFloatList Stats;
/// Displacement vectors of analysis
App::PropertyVectorList DisplacementVectors;
/// Lengths of displacement vectors of analysis
App::PropertyFloatList DisplacementLengths;
/// Stress vectors of analysis
App::PropertyVectorList StressVectors;
/// Strain vectors of analysis
App::PropertyVectorList StrainVectors;
/// Von Mises Stress values of analysis
App::PropertyFloatList StressValues;
/// First principal Stress values of analysis
App::PropertyFloatList PrincipalMax;
/// Second principal Stress values of analysis
App::PropertyFloatList PrincipalMed;
/// Third principal Stress values of analysis
App::PropertyFloatList PrincipalMin;
/// Shear Stress values of analysis
App::PropertyFloatList MaxShear;
/// Temperature
App::PropertyFloatList Temperature;
/// Eigenmode
App::PropertyInteger Eigenmode;
/// Eigenmode frequency
App::PropertyFloat EigenmodeFrequency;
/// Increment time
App::PropertyFloat Time;
/// User defined results
App::PropertyFloatList UserDefined;
App::PropertyFloatList Stats;
/// Displacement vectors of analysis
/// returns the type name of the ViewProvider
virtual const char* getViewProviderName(void) const {