--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.
Visit this group at http://groups.google.com/group/moose-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/4b135e9f-8895-4e16-9b0d-11c693b9899b%40googlegroups.com.
*************************
Michael R. Tonks
Fuel Modeling and Simulation Department
Idaho National Laboratory
[Kernels]
...
[../][./time]
type=CoupledImplicitEuler
...
[../]1. Can i add the TimeDerivative kernel in[Kernels]
...
[../]
2. What is the role of[./time]
type=CoupledImplicitEuler
...
[../]in connection to the TimeDerivative kernel?
--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.
Visit this group at http://groups.google.com/group/moose-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/e1c83654-ae0a-4748-a2eb-bb33033dd218%40googlegroups.com.
[Variables]
[./c]
order=FIRST
family= LAGRANGE
...
[../]
...
[../]
[Variables]
[./cv]
order=THIRD
family= HERMITE
...
[../]
[../]The order FIRST and THIRD could be generalized from the structure of the residual equations in these two forms, can
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/cced65c1-909a-4e91-bb5b-95e208ed6d60%40googlegroups.com.
I am trying to add a Kernel Class namely CoupledPotential representing
the external electric field in split form of Cahn-Hilliard equation.
That is
R_u = CoupledImplicitEuler + SplitCHWRes +CoupledPotential
R_c = SplitCHParsed
I have prepared the ElectricPotential(
https://github.com/anilkunwar/danphe/blob/master/src/kernel/ElectricPotential.C
) as a derived class of Diffusion Kernel and I would like to couple
Regarding the Physics of Coupled Potential, how do we represent in MOOSE code.
M*Div.c Grad(V)
where, M is constant
and V is voltage.
Can you please instruct me in what i have done in CoupledPotential.C :
Actually your free energy contribution could be as simple as c*V
I'm not sure if you are on the right track here. If you have a _potential_ you have an energy term. It would be better to Create a Material class derived from DerivativeFunctionMaterial to implement the free energy contribution of that external potential. That way you get proper coupling.
Why is this derived from Diffusion? Do you really mean "derived" in a C++ sense, or do you mean "I copy-pasted the Diffusion kernel in a new file and changed it"?
| Real | |
| ElectricPotential::computeQpResidual() | |
| { | |
| // sigma * grad_u * grad_phi[i] | |
| return (_conductivity) * Diffusion::computeQpResidual(); | |
| } |
Check out the examples for obtaining the weak form expression. You need to apply the chain rule and the Gauss-Divergence-Theorem.
For things that _you_ have done you will have to instruct _us_ ;-).
Anyhow, try to think about your problem in terms of the free energy. It might be simpler to solve.
--
You received this message because you are subscribed to a topic in the Google Groups "moose-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/moose-users/4qzSmJJlI_g/unsubscribe.
To unsubscribe from this group and all its topics, send an email to moose-users...@googlegroups.com.
Visit this group at http://groups.google.com/group/moose-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/CAPxoKqdpgU3TMEE4BG8gZxzK9yigTQ8smV1WTjHiUvphzfY3pg%40mail.gmail.com.
> This potential is a voltage. I will try to relate it with energy term through the use of Material Class derived from DerivativeFunctionMaterial. Do we need to still couple it with the equation Div dot sigma_c* grad_v =0 ?
I don't think so. The evolution will be done through the phase field equations. See my other mail for the form of the free energy. Voltage times charge is energy (do you need a factor that connects concentration and charge).
> Do i need to do this if i express the Electrical Potential contribution in free energy term?
No.
Actually your free energy contribution could be as simple as c*V.
--
You received this message because you are subscribed to a topic in the Google Groups "moose-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/moose-users/4qzSmJJlI_g/unsubscribe.
To unsubscribe from this group and all its topics, send an email to moose-users...@googlegroups.com.
Visit this group at http://groups.google.com/group/moose-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/CAPxoKqeu2yYuvwnYZ8XT0-FKYS%2BMvfye6gf-vj5Q3y18_XDPyw%40mail.gmail.com.
See my other mail for the form of the free energy.
--
You received this message because you are subscribed to a topic in the Google Groups "moose-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/moose-users/4qzSmJJlI_g/unsubscribe.
To unsubscribe from this group and all its topics, send an email to moose-users...@googlegroups.com.
Visit this group at http://groups.google.com/group/moose-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/CAPxoKqdo%2BRFPmNYU4iwtpLZkxQaTpQSVYYUFCUxCoxtBF8DPag%40mail.gmail.com.
Anil, you actually need no programming at all! This free energy contribution can be implemented using a DerivativeParsedMaterial.
Daniel
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.
Visit this group at http://groups.google.com/group/moose-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/CAFuDzTzqzKwKNSZmj3qrTqs5vfyNv4CFsREGDc9sEhW5QcnPhw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/CAPxoKqdLkZXg_VRK0v0g6%2BgigdGprSUm_tMB1xB7_XOYLF99hw%40mail.gmail.com.
| ||
| DerivativeParsedMaterialHelper(name, parameters, USE_MOOSE_NAMES), | ||
| ParsedMaterialBase(name, parameters) | ||
| { | ||
| // Build function, take derivatives, optimize | ||
| functionParse(_function, | ||
| _constant_names, _constant_expressions, | ||
| getParam<std::vector<std::string> >("material_property_names"), | ||
| _tol_names, _tol_values); | ||
| } |
| [./free_energy] type = DerivativeParsedMaterial | |
| block = 0 | |
| f_name = fbulk | |
| args = c | |
| constant_names = W | |
| constant_expressions = 1.0/2^2
# material_property_names = W | |
| function = W*(1-c)^2*(1+c)^2 | |
| enable_jit = true | |
| outputs = exodus | |
| [../] |
[AuxKernels]
[./localenergy]
type = TotalFreeEnergyBase
...
How do i represent additional_free_energy due to external voltage?
...
[../]
[../]
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/CA%2BEq2487duz_LoZ8C2VzVXWVYQc478i3egskcw6TK4h4kGeOrw%40mail.gmail.com.
1. If we try to express through material_property_names, where do we need to assign the numerical value of W. Is this supplied through constant_expressions?
or, do i just need to add it in the DerivativeParsedMaterial. in function by defining constant name and constant expression for voltage?
representation, I am still not totally clear. I tried to study the following input file https://github.com/idaholab/moose/blob/devel/test/tests/functions/function_ic/function_ic_test.i.In this tutorial,which of the variables "u" and the AuxVariable "u_aux" for diffusion equation correspond to the voltage "V" , as i see both of them have the same function_ic? Is the variable "u_aux" representing the value of "u",being be used as a variable "V" in the "c*V" expression, provided that c is the phase field variable?
| [./w] | |
| scaling = 1.0e3 | |
| [../] |
--
You received this message because you are subscribed to a topic in the Google Groups "moose-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/moose-users/4qzSmJJlI_g/unsubscribe.
To unsubscribe from this group and all its topics, send an email to moose-users...@googlegroups.com.
Visit this group at http://groups.google.com/group/moose-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/CAPxoKqeJWYRj17rTGwfcJwTYZTT0S--6Ex2%2B4bq_5GKCGmV0EA%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.
Visit this group at http://groups.google.com/group/moose-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/CAFuDzTz-6eq-d3VxNdHJosedmDC-KS843kumuzYAuu0Pzh%3DP6w%40mail.gmail.com.
[Global Params]
polynomial_order = 4 or 6 or 8.
[]
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/CA%2BEq248kNr79DS%3DMESc0VoBM33ctiHpJR5RfhfHXTAb8P6dx4g%40mail.gmail.com.
5. A newer question: Earlier Daniel had commented somewhere that as fields like Temperature (T) and Potential (V) have some free-energy contribution associated with them. Is there a possibility to derive a material class from the DerivativeFunctionMaterialclass for the effect of temperature field and couple it with the heat conduction equation rather than use the function = A + B.T, where T is temperature in [AuxKernels] block?
--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.
Visit this group at http://groups.google.com/group/moose-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/CAPxoKqcz_5God2fE0CaxL_0bN3sR1ziwnrp9_BdopzFBbTKD9g%40mail.gmail.com.
You received this message because you are subscribed to a topic in the Google Groups "moose-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/moose-users/4qzSmJJlI_g/unsubscribe.
To unsubscribe from this group and all its topics, send an email to moose-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/CA%2BEq249XxZf_GPEzru%2BuPGMTBMyHL5-f6Lerv_KzJUjGk_otMg%40mail.gmail.com.
[Mesh]type = GeneratedMeshdim = 2xmax = 1000ymax = 1000nx = 50ny = 50[][GlobalParams]polynomial_order = 8[][Variables][./T][../][./c][../]
[./w]scaling = 1.0e3[../]
[][ICs][./c_IC]type = SmoothCircleICx1 = 175.0y1 = 0.0radius = 100invalue = 1.0outvalue = 0.01int_width = 100.0variable = c[../][]#[AuxVariables]#[./T]#[../]#[][Kernels][./heat_conduction]type = HeatConductionvariable = T[../][./c_res]type = SplitCHParsedvariable = ckappa_name = kappaw = wf_name = F[../][./w_res]type = SplitCHWResvariable = wmob_name = M[../][./w_res_soret]type = SoretDiffusionvariable = wc = cT = Tdiff_name = DQ_name = Qstar[../][./time]type = CoupledTimeDerivativevariable = wv = c[../][]#[AuxKernels]# [./Temp]# type = FunctionAux# variable = T# function = 1000.0+0.025*x# [../]#[][BCs][./bottom_temperature]type = DirichletBCvariable = Tboundary = bottomvalue = 350 # (C)[../][./top_temperature]type = DirichletBCvariable = Tboundary = topvalue = 348 # (C)[../][Materials][./Copper]type = PFParamsPolyFreeEnergyblock = 0c = cT = T # Kint_width = 80.0length_scale = 1.0e-9time_scale = 1.0e-6D0 = 3.1e-5 # m^2/s, from Brown1980Em = 0.71 # in eV, from Balluffi1978 Table 2Ef = 1.28 # in eV, from Balluffi1978 Table 2surface_energy = 0.708 # Total guess[../][./Cu_cond]type = GenericConstantMaterialblock = 0prop_names = thermal_conductivityprop_values = 73 # K: (W/m*K) from wikipedia @296K[../][./free_energy]type = PolynomialFreeEnergyblock = 0c = coutputs = exodusderivative_order = 2[../][][Preconditioning][./SMP]type = SMPfull = true[../][][Executioner]type = Transientscheme = 'bdf2'solve_type = 'NEWTON'petsc_options_iname = '-pc_type -ksp_grmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap'petsc_options_value = 'asm 31 preonly lu 1'l_max_its = 10l_tol = 1.0e-4nl_max_its = 25nl_rel_tol = 1.0e-9start_time = 0.0num_steps = 20dt = 3[][Outputs]output_initial = trueexodus = trueprint_perf_log = true[]When i tried to run the input file, the solve did not converge with the following message.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/931d66ef-6d03-440b-ae51-d298f460cdf7%40googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "moose-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/moose-users/4qzSmJJlI_g/unsubscribe.
To unsubscribe from this group and all its topics, send an email to moose-users...@googlegroups.com.
Visit this group at http://groups.google.com/group/moose-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/CA%2BEq24_U2WPwrTWtxvdv5OKVh8GYB%2BkDQgQ5KLDLhHOawyPE%2BQ%40mail.gmail.com.
[Mesh] type = GeneratedMesh dim = 2
nx = 60 ny = 60 xmax = 500 ymax = 500 elem_type = QUAD4
[] [GlobalParams] polynomial_order = 8 [] [Variables]
[./c] [../] [./w] scaling = 1.0e2 [../] [./volt] initial_condition = 1000 scaling = 1.0e5
[../] [] [ICs] [./c_IC] type = SmoothCircleIC
x1 = 125.0 y1 = 250.0 radius = 60.0 invalue = 1.0 outvalue = 0.1
int_width = 100.0 variable = c [../] []
[Kernels] [./electrical_potential] type = MatDiffusion variable = volt D_name = electrical_conductivity [../] #[./electric_potential] # type = ElectricPotential # variable = volt # conductivity = 73 # (W/m K) From NIST leadfree solder database # [../]
[./c_res] type = SplitCHParsed variable = c kappa_name = kappa w = w f_name = F [../] [./w_res] type = SplitCHWRes variable = w mob_name = M [../]
[./w_res_voltage] type = SplitCHVoltage
variable = w c = c
volt = volt diff_name = D z_name = zeff T = T
[../] [./time] type = CoupledTimeDerivative variable = w v = c [../] []
[BCs] [./bottom_volt] type = DirichletBC variable = volt boundary = bottom value = 1024 [../] [./top_volt] type = DirichletBC variable = volt boundary = top value = 1000 [../] [] [Materials] [./Copper] type = VoltPFParamsPolyFreeEnergy
block = 0 c = c
volt = volt
T = T # K
int_width = 60.0 length_scale = 1.0e-9 time_scale = 1.0e-9
D0 = 3.1e-5 # m^2/s, from Brown1980 Em = 0.71 # in eV, from Balluffi1978 Table 2 Ef = 1.28 # in eV, from Balluffi1978 Table 2 surface_energy = 0.708 # Total guess [../]
[./elcond] type = ParsedMaterial block = 0 args = 'c' function = 'if(c>0.7,1.0e-8,5.5e-8)' f_name = electrical_conductivity outputs = exodus
[../] [./free_energy] type = PolynomialFreeEnergy block = 0 c = c
derivative_order = 2 [../] [] [Preconditioning] [./SMP] type = SMP full = true [../] [] [Executioner] type = Transient scheme = 'bdf2'
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_grmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap' petsc_options_value = 'asm 31 preonly lu 1'
l_max_its = 30
l_tol = 1.0e-4 nl_max_its = 25 nl_rel_tol = 1.0e-9
num_steps = 60 dt = 20.0 [] [Outputs] output_initial = true interval = 1
exodus = true print_perf_log = true []
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/CAFuDzTxyZ%2Bqc1xv1_tAUtRie7e34fSXs4qdySdrOF_ULFKCtHg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.