Disable Boundary Condition depending on Time

  • Helfenstein
  • Topic Author
  • Offline
  • New Member
  • New Member
More
9 years 1 month ago #7912 by Helfenstein
Hi

In my simulation I will first press down a blank holder while forming a collar. Later I will lift up the blank holder. Therefore, first I want to add a force (AFFE_CHAR_MECA -> PRES) and later a displacement (AFFE_CHAR_MECA -> DDL_IMPO). I know the possibility to multiply the load with time depending values. But in this case it is not possible to define first the value of DLL_IMPO by zero bacause in this case the force will not have an effect.

How is it possible to enable and dissable boundary conditions like the DLL_IMPO in Code_Aster depending on time?

Thank you in advance for your support.

Best regards,
Urs Helfenstein

Please Log in or Create an account to join the conversation.

More
9 years 1 month ago #7913 by RichardS
Hello Urs,

it is not directly possible to de-activate a BC depending on the time, but indirectly of course.
You just have to divide your calculation into two solution steps of STAT_NON_LINE with the first one without displacement BCs as initial state (key word ETAT_INIT)
for the second one, where you can have a different set of BCs.

Best regards,
Richard

SimScale - Engineering Simulation in your browser!
The following user(s) said Thank You: Helfenstein

Please Log in or Create an account to join the conversation.

  • Helfenstein
  • Topic Author
  • Offline
  • New Member
  • New Member
More
9 years 1 month ago - 9 years 1 month ago #7942 by Helfenstein
Replied by Helfenstein on topic Re: Disable Boundary Condition depending on Time
Hey Richard,

Thank you very much for your reply. Works fine. Below an example if someone runs into the same question:
# User Parameters
endT1	= 0.04				#[s] Stop Time for first Calculation Run
endT 	= 0.05				#[s] Stop of the simulation
maxdT	= 0.001				#[s] Max Time Step
archivT	= 0.001				#[s] Time increment to write results



DEBUT();

...

                                                                 




# List of time instant for the INCREMENTAL SOLUTION
timestep=DEFI_LIST_REEL(DEBUT=0.0,
						INTERVALLE=_F(JUSQU_A=endT,
                                     		 NOMBRE=endT/maxdT,),
                        I			NFO=2,
                        );

# List of time instant for ARCHIVAGE
L_archiv=DEFI_LIST_REEL(DEBUT=0.0,
						INTERVALLE=_F(JUSQU_A=endT,
                                     		NOMBRE=endT/archivT,),);

# Variable Time Step
incrm=DEFI_LIST_INST(
					DEFI_LIST=_F(METHODE='AUTO',
								 	LIST_INST=timestep,
								  	PAS_MINI=1e-10,),
					 ECHEC=_F(EVENEMENT='ERREUR',
							  		SUBD_PAS=4,),
					 ADAPTATION=_F(EVENEMENT='SEUIL',
								  	 NB_INCR_SEUIL=3,
								   	NOM_PARA='NB_ITER_NEWTON',
								   	CRIT_COMP='LE',
								  	PCENT_AUGM=100.0,),);


#Calculate first phase
Result=DYNA_NON_LINE(
					MODELE=Model,
					INCREMENT=_F(LIST_INST=incrm,
								 	INST_FIN=endT1,								#SPECIFIES END TIME FOR FIRST PHASE
									),

					EXCIT=(_F(CHARGE=matFix,),
							
							#### HOLD ####
							_F(CHARGE=holdPres,
								FONC_MULT=LRForce,),
							#~ _F(CHARGE=HoldMove,
								#~ FONC_MULT=LRLift,),
							
							),
					
					...
					
					  ),
				  );

#Calculate Free String					
Result=DYNA_NON_LINE(
					reuse = Result,												#Reuse former results
					ETAT_INIT=_F(EVOL_NOLI=Result,),							#Load Fields
					MODELE=Model,
					INCREMENT=_F(LIST_INST=incrm,),
					EXCIT=(_F(CHARGE=matFix,),
							
							#### HOLD ####
							#~ _F(CHARGE=holdPres,
								#~ FONC_MULT=LRForce,),
							_F(CHARGE=HoldMove,
								FONC_MULT=LRLift,),
							
							  ),
					...
					
				  );

...

FIN();


Best regards,

Urs
Last edit: 9 years 1 month ago by Helfenstein.

Please Log in or Create an account to join the conversation.

Moderators: catux
Time to create page: 0.130 seconds
Powered by Kunena Forum