Focus Konstruksjon - File Based System
|
Main class for the CFem plugin. More...
Classes | |
class | AnalysisThreadInfoLinear |
struct | SIntWithDouble |
Struct containing an integer and a double value. More... | |
Public Types | |
enum | CONTROLTYPE { CONTROLTYPE.LOAD, CONTROLTYPE.DISPLACEMENT, CONTROLTYPE.ARC } |
Public Member Functions | |
CfemPlugin () | |
Default constructor. More... | |
void | Dispose () |
void | ClearModel () |
Clear all the lists of the model. More... | |
int | AddNodes (IUListG< BNode > nodes) |
Add a list of nodes to the model. More... | |
int | AddElements (IUListG< BElement > elems) |
Add a list of elements to the model. More... | |
int | AddLoadGroups (IUList loadGroups) |
Add a list of load groups to the cfem plugin. More... | |
int | AddLoadGroup (IMLoadGroup loadGroup) |
Add a group of loads that are to be applied to the model. More... | |
IAInformation | DoLinear (double lambda, bool checkForSingularity, bool bRelativeSingularityEps, double singularityEps, CfemWrapper.CfemInputLinear.RESULTSHANDLING resultsFlag) |
Performs a linear analysis based on the current model. More... | |
IAInformation | DoLinearizedBuckling (bool checkForSingularity, double shift, int numEigenValues) |
Perform a linearized buckling analysis based on the current model. More... | |
IAInformation | DoVibrationModes (int stiffType, double elementMassFactor, double shift, int numEigenValues) |
Perform a vibration mode analysis based on the current model. More... | |
IAInformation | DoNonLinear (double epsDisplacement, double epsResidual, double epsEnergy, double lambdaMax, int stepsMax, int iterMax, CONTROLTYPE controlType, SIntWithDouble[] arcLengths) |
Perform a nonlinear analysis based on the current model. More... | |
IAInformation | DoResponseSpectrum (int summationType, int rsType, int stiffType, double elementMassFactor, double T_B_X, double T_C_X, double T_D_X, double T_cutoff_X, double T_B_Y, double T_C_Y, double T_D_Y, double T_cutoff_Y, double T_B_Z, double T_C_Z, double T_D_Z, double T_cutoff_Z, double a_g_X, double a_g_Y, double a_g_Z, double factorX, double factorY, double factorZ, double xsi, double eta, double q, double beta, double S, int loadGroupId, double shift, int numEigenValues) |
Perform a response spectrum analysis based on the current model. More... | |
void | Initialize (IApplication app) |
Initialize the application. More... | |
UMatrix3x3 | GetTransformation (IBElement element, bool bLinear, IMLoadGroup loadGroup, IMWithCompLoads loadContainer) |
Returns the transformation matrix of the element. More... | |
UMatrix3x3 | GetTransformation (IBElement element, bool bLinear, IMLoadGroup loadGroup, int displSetID) |
Returns the transformation matrix of the element. More... | |
Protected Member Functions | |
bool | AddModel (bool bIsDynamicAnalysis) |
Add the model of the cfem plugin to Cfem. More... | |
bool | InitializeHashtables (int numberOfNodes, int numberOfElements, int numberOfLoadContainers, out CfemWrapper cfemWrapper) |
Initializes and sets the capacities of the hashtables. More... | |
bool | CfemAddNodes (IUListG< BNode > nodes, out CfemWrapper cfemWrapper) |
Add nodes to the Cfem model. More... | |
bool | CfemAddElements (IUListG< BElement > elements, out CfemWrapper cfemWrapper) |
Add a list of elements to the Cfem model. More... | |
bool | CfemAddLoadGroups (UList loadGroups, out CfemWrapper cfemWrapper) |
Add a list of load groups to the Cfem model. More... | |
Protected Attributes | |
UListG< BNode > | m_Nodes = new UListG<BNode>() |
Accumulated list of nodes. More... | |
UListG< BElement > | m_Elements = new UListG<BElement>() |
Accumulated list of elements. More... | |
UList | m_ElementIDs = new UList() |
Accumulated list of elements IDs. More... | |
UList | m_LoadGroups = new UList() |
Accumulated list of load groups. More... | |
UList | m_CfemWrappers = new UList() |
List of the analysis engine instances (wrapped in <CfemWrapper> objects). There is exactly one entry for each load group in the model. More... | |
CfemAnalysisInformation | m_LastAnalysisInformation = null |
Information about the last performed analysis. More... | |
CfemResultsFileSystem | cfemFileSystem |
string | inputFileCfem = "inputFileCfem_fromCfemWrapper.usf" |
Properties | |
IAInformation | LastAnalysisInformation [get] |
Get information about the most recently performed analysis. More... | |
int | OutOfPlaneDirection2D [get, set] |
Get or sets the out of plane direction. More... | |
Main class for the CFem plugin.
Main class for the Cfem plugin. This is the class that processes the input provided by the model, and reorders it before turning it over to the <CFemDLL> dynamic link library. It provides methods for adding the different building blocks of the computation model, as well as methods for carrying out the available analyses and gathering results
|
strong |
CfemPlugin.CfemPlugin.CfemPlugin | ( | ) |
Default constructor.
Default constructor
int CfemPlugin.CfemPlugin.AddElements | ( | IUListG< BElement > | elems | ) |
Add a list of elements to the model.
Add a list of elements to the model. Return the number of elements in the model after the elements have been added
int CfemPlugin.CfemPlugin.AddLoadGroup | ( | IMLoadGroup | loadGroup | ) |
Add a group of loads that are to be applied to the model.
Add a group of loads that are to be applied to the model. The load group contains a list of load containers that in some respect form a logical entity. The elements can have different material properties for different load groups
Input: <loadGroup> : The load group that is to be added
Return: The number of load groups in the model after adding the load group
int CfemPlugin.CfemPlugin.AddLoadGroups | ( | IUList | loadGroups | ) |
Add a list of load groups to the cfem plugin.
Add a list of load groups to the cfem plugin
Input: <loadGroups> : The load groups that are to be added
|
protected |
Add the model of the cfem plugin to Cfem.
Add the model of the cfem plugin to Cfem. Any existing models will be cleared, and a new set of <Cfem> objects will be created, one for each load group in the model
Input:
int CfemPlugin.CfemPlugin.AddNodes | ( | IUListG< BNode > | nodes | ) |
Add a list of nodes to the model.
Add a list of nodes to the model. Return the number of nodes in the model after the nodes have been added
|
protected |
Add a list of elements to the Cfem model.
Add a list of elements to the Cfem model. This includes adding materials and property sets
Input: <elements> : List of all the elements ( objects that implement the <IBElement> interface) that are to be added to the Cfem model
Output: <cfemWrapper> : If, for some reason, something went wrong, this is a reference to the <Cfem> instance (if any) where the problem arose. <cfem.GetErrorString()> can then be used to find out what went wrong
Return: <true> : The elements were successfully added to all the <Cfem> instances in <m_CfemTable> <false> : Something went wrong when trying to add the elements
|
protected |
Add a list of load groups to the Cfem model.
Add list of load groups to the <Cfem> model. It is, actually, the contents of the load group that is added. Each load groups has already been assigned a <CfemWrapper>, and the contents are added to this and only this object
Input: <loadGroups> : The load groups whose contents are to be added
Output: <cfemWrapper> : If, for some reason, something went wrong, this is a reference to the <Cfem> instance (if any) where the problem arose. <cfem.GetErrorString()> can then be used to find out what went wrong
Return: <true> : The load groups were successfully added to the cfem model <false> : Something went wrong when trying to add the load groups
|
protected |
Add nodes to the Cfem model.
Add a list of nodes to the Cfem model. The nodes will be added to all the <Cfem> instances in <m_CfemTable>, which holds one <Cfem> instance for each load group in the model
Input: <nodes> : List of all the nodes ( objects that implement the <IBNode> interface) that are to be added to the Cfem model
Output: <cfemWrapper> : If, for some reason, something went wrong, this is a reference to the <CfemWrapper> instance (if any) where the problem arose. <cfem.GetErrorString()> can then be used to find out what went wrong
Return: <true> : The nodes were successfully added to all the <Cfem> instances in <m_CfemTable> <false> : Something went wrong when trying to add the nodes
void CfemPlugin.CfemPlugin.ClearModel | ( | ) |
Clear all the lists of the model.
Clear all the lists of the model
void CfemPlugin.CfemPlugin.Dispose | ( | ) |
IAInformation CfemPlugin.CfemPlugin.DoLinear | ( | double | lambda, |
bool | checkForSingularity, | ||
bool | bRelativeSingularityEps, | ||
double | singularityEps, | ||
CfemWrapper.CfemInputLinear.RESULTSHANDLING | resultsFlag | ||
) |
Performs a linear analysis based on the current model.
Performs a linear analysis based on the current model. Actually, there may be more than one analysis that is performed. The <CfemPlugin> provides a functionality when it comes to load groups, that allows for different sets of material properties for different sets of loads. Therefore, one analysis will be performed for each load group. This can be useful when analysing structures with loads that have different duration. Some design codes, like Eurocode 5, demand that a deflection analysis is done with different stiffness parameters for different load durations. By grouping the loads so that all the loads with a given load duration is in one load group, and pairing the load group with a set of materials, this can be done
Input:
Return: Information about the analysis
IAInformation CfemPlugin.CfemPlugin.DoLinearizedBuckling | ( | bool | checkForSingularity, |
double | shift, | ||
int | numEigenValues | ||
) |
Perform a linearized buckling analysis based on the current model.
Perform a linearized buckling analysis on the current model. The return value is <true> if all went well; otherwise <false>. <numEigenValues> is the number of eigen values ( and hence buckling shapes ) to find
Input:
IAInformation CfemPlugin.CfemPlugin.DoNonLinear | ( | double | epsDisplacement, |
double | epsResidual, | ||
double | epsEnergy, | ||
double | lambdaMax, | ||
int | stepsMax, | ||
int | iterMax, | ||
CONTROLTYPE | controlType, | ||
SIntWithDouble [] | arcLengths | ||
) |
Perform a nonlinear analysis based on the current model.
Perform a nonlinear analysis of the current model. The analysis will be performed for each of the load groups that are currently defined in this object
Input: <epsDisplacement> : The convergence criterion for displacement <epsResidual> : The convergence criterion for residual <epsEnergy> : The convergence criterion for energy <lambdaMax> : The virtual time parameter at which the analysis should be terminated <stepsMax> : The maximum number of time steps to perform <iterMax> : The maximum number of iterations to perform at each time step in order to obtain equilibrium <controlType> : The control type to use for the nonlinear analysis <arcLengths> : Array of <SIntWithDouble> structs. Given that the first entry has integer value <n1> and double value <d1>, it will set the arc-length of the first <n1> steps to <d1>. The next entry will set the arc-length of the next <n2> steps to <d2> and so on If the total number of time steps given in <arcLengths> are less than <stepsMax>, the arc-length given by the last entry in <arcLengths> will be used for the remaining steps
Return: Information about the analysis that was performed. There is a list of analysis results; one set for each of the load groups that were analyzed
IAInformation CfemPlugin.CfemPlugin.DoResponseSpectrum | ( | int | summationType, |
int | rsType, | ||
int | stiffType, | ||
double | elementMassFactor, | ||
double | T_B_X, | ||
double | T_C_X, | ||
double | T_D_X, | ||
double | T_cutoff_X, | ||
double | T_B_Y, | ||
double | T_C_Y, | ||
double | T_D_Y, | ||
double | T_cutoff_Y, | ||
double | T_B_Z, | ||
double | T_C_Z, | ||
double | T_D_Z, | ||
double | T_cutoff_Z, | ||
double | a_g_X, | ||
double | a_g_Y, | ||
double | a_g_Z, | ||
double | factorX, | ||
double | factorY, | ||
double | factorZ, | ||
double | xsi, | ||
double | eta, | ||
double | q, | ||
double | beta, | ||
double | S, | ||
int | loadGroupId, | ||
double | shift, | ||
int | numEigenValues | ||
) |
Perform a response spectrum analysis based on the current model.
Perform a response spectrum analysis on the current model. The return value is <true> if all went well; otherwise <false>.
Input: <shift> : A number that specifies a part of the geometric stiffness that is to be considered as material stiffness in the eigen value analysis <numEigenValues> : The number of eigenvalues that are to be found. Depending on the nature of the model, the actual number of eigen values that are found can be less than <numEigenValues> ........
IAInformation CfemPlugin.CfemPlugin.DoVibrationModes | ( | int | stiffType, |
double | elementMassFactor, | ||
double | shift, | ||
int | numEigenValues | ||
) |
Perform a vibration mode analysis based on the current model.
Perform a vibration mode analysis on the current model. The return value is <true> if all went well; otherwise <false>. <numEigenValues> is the number of eigen values ( and hence vibration modes ) to find
Input: <stiffType> : The stiffness type in the model. 0 = material stiffness, 1 = material and geometric stiffenss <shift> : A number that specifies a part of the geometric stiffness that is to be considered as material stiffness in the eigen value analysis <numEigenValues> : The number of eigenvalues that are to be found. Depending on the nature of the model, the actual number of eigen values that are found can be less than <numEigenValues>
UMatrix3x3 CfemPlugin.CfemPlugin.GetTransformation | ( | IBElement | element, |
bool | bLinear, | ||
IMLoadGroup | loadGroup, | ||
IMWithCompLoads | loadContainer | ||
) |
Returns the transformation matrix of the element.
Returns the transformation matrix of the element, including the effects of deformation. In nonlinear analysis, the element's coordinate system may be altered. The end forces in the element is therefore not given in the element's original coordinate system, but rather the deformed coordinate system of the element. This method returns the transformation (orientation) matrix of that coordinate system.
Input:
UMatrix3x3 CfemPlugin.CfemPlugin.GetTransformation | ( | IBElement | element, |
bool | bLinear, | ||
IMLoadGroup | loadGroup, | ||
int | displSetID | ||
) |
Returns the transformation matrix of the element.
Returns the transformation matrix of the element, including the effects of deformation. In nonlinear analysis, the element's coordinate system may be altered. The end forces in the element is therefore not given in the element's original coordinate system, but rather the deformed coordinate system of the element. This method returns the transformation (orientation) matrix of that coordinate system.
Input:
void CfemPlugin.CfemPlugin.Initialize | ( | IApplication | app | ) |
Initialize the application.
Initialize the application by adding the new analysis plugin
|
protected |
Initializes and sets the capacities of the hashtables.
Initializes and sets the capacities of the hashtables. This is so we don't have dynamicly sizable hashtables, which are very slow at adding or deleting objects.
Input:
Output: <cfemWrapper> : If, for some reason, something went wrong, this is a reference to the <CfemWrapper> instance (if any) where the problem arose. <cfem.GetErrorString()> can then be used to find out what went wrong
Return: <true> : The hashtables were successfully initialized and capacities was set <false> : Something went wrong when trying to initialized and capacities of the hashtables
|
protected |
|
protected |
|
protected |
List of the analysis engine instances (wrapped in <CfemWrapper> objects). There is exactly one entry for each load group in the model.
|
protected |
Accumulated list of elements IDs.
|
protected |
Accumulated list of elements.
|
protected |
Information about the last performed analysis.
|
protected |
Accumulated list of load groups.
|
protected |
Accumulated list of nodes.
|
get |
Get information about the most recently performed analysis.
Get information about the most recently performed analysis. If no analysis has been performed, or the static model in <CfemPlugin> has been changed since the last analysis, <null> is returned
|
getset |
Get or sets the out of plane direction.
Get or sets the out of plane direction