Skip to content

First Brainstorming about the handling of multiple loadcases #1

@RiccardoRossi

Description

@RiccardoRossi

ok, this is a very first brainstorming about what is needed to mimic Nastran handling of load cases, spcs (fixity) and mpcs

here it is put on the top of the analysis stage, and is completely not standard ... the idea is simply to explain what is needed and we start discussing from here

    def Initialize():
        #form the dofset
        global_dof_set = ... 6 dofs  --> Ndofs
        
        R.shape = (ndof)
        K.shape = (ndof,ndof)
        
        assemble Kglobal
        
        for spc in spcs: #fixities - in nastran it contains the load cases
            fixity[spc.name] = ...
        
        for mpc in mpcs: 
            ...
            
        for load in base_loadcases:
            f = AssembleLoads....
            load_database[load.name] = f
            
        combined_loadcases = ...
        spc_groups = ...group together similar spcs and mpcs
            
    def InitializeSolutionStep(self):
        
        
            
        for load_combination in load_combinations:
            ...
            
            
            
            
    Kglobal dxglobal = Rglobal
    
    dxeff = T * dxglobal + q  #T and q take into account MPCs and SPCs
    
    Keff = T^t @Kglobal@ T
    Reff = T^t @ R
        

        
        
    def RunSolutionLoop(self):
        """This function executes the solution loop of the AnalysisStage
        It can be overridden by derived classes
        """
        for spc in spc_groups:
            T q 
            Keff
            Keff_factors
            for load in spc_loads[spc.name]:

                self.InitializeSolutionStep() Reff
                self._GetSolver().Predict()
                is_converged = self._GetSolver().SolveSolutionStep()
                self.__CheckIfSolveSolutionStepReturnsAValue(is_converged)
                self.FinalizeSolutionStep()
                self.OutputSolutionStep()
                
    def OutputSolutionStep():
        for out in outputs:
            ...

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions