template<>
InputParameters validParams<SplitConformingMeshForMortar>()
{
InputParameters params = validParams<MeshModifier>();
params.addRequiredParam<unsigned int>("num_subdomains", "Number of subdomains for mortar FEM");
params.addRequiredParam<std::vector<unsigned int> >("num_subdomain_blocks", "Number of blocks on all subdomains");
params.addRequiredParam<std::vector<SubdomainName> >("subdomain_blocks", "The block names of all blocks of all subdomains");
params.addParam<std::vector<std::string> >("subdomain_names", "Subdomain names");
return params;
}I actually sent a PR in moose for add this but decided this is too special for my own cases. You can ask MOOSE developers that if it is proper to promote this into moose.I've been playing around with meshing in the past couple of days, and I've developed a series of questions (Feel free to answer none, one, or all :-)
1) Is there a way to sequentially order execution of mesh modification? For example I wanted to create a SubdomainBoundingBox and then SideSetsBetweenSubdomains. If I included both of these in my input file, ran with --mesh-only, and then viewed the resulting mesh, I noticed that my sideset did not get created. However, if I ran with just SubdomainBoundingBox, then fed the resulting mesh back in as an input, and then ran with only SideSetsBetweenSubdomains, I got my desired sideset.
2) Running SideSetsBetweenSubdomains produces not only a new sideset but also a new nodeset. Would it not make sense to also give the nodeset the same boundary_name as the sideset instead of leaving it unnamed? Just add the following line at the end of SideSetsBetweenSubdomains.C?:
for (unsigned int i=0; i<boundary_ids.size(); ++i) {
boundary_info.sideset_name(boundary_ids[i]) = boundary_names[i];
boundary_info.nodeset_name(boundary_ids[i]) = boundary_names[i];
}
I've been playing around with meshing in the past couple of days, and I've developed a series of questions (Feel free to answer none, one, or all :-)
1) Is there a way to sequentially order execution of mesh modification? For example I wanted to create a SubdomainBoundingBox and then SideSetsBetweenSubdomains. If I included both of these in my input file, ran with --mesh-only, and then viewed the resulting mesh, I noticed that my sideset did not get created. However, if I ran with just SubdomainBoundingBox, then fed the resulting mesh back in as an input, and then ran with only SideSetsBetweenSubdomains, I got my desired sideset.
See "depends_on" parameter of MeshModifier class.
2) Running SideSetsBetweenSubdomains produces not only a new sideset but also a new nodeset. Would it not make sense to also give the nodeset the same boundary_name as the sideset instead of leaving it unnamed? Just add the following line at the end of SideSetsBetweenSubdomains.C?:
for (unsigned int i=0; i<boundary_ids.size(); ++i) {
boundary_info.sideset_name(boundary_ids[i]) = boundary_names[i];
boundary_info.nodeset_name(boundary_ids[i]) = boundary_names[i];
}
AFAIK, node sets are created from side sets by libMesh automatically, so that's probably what you are seeing. I guess the name does not get copied.If you are creating a named side set, why do you care about the node set name? You need the side set, right?
----David
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/CADJmAN-5N2NZJcWKnFMiU-SSeEmXZFpNMZ-YZbJJ2gHB1E2QWA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
On 09/30/2015 02:21 PM, Andrs, David wrote:
Perfect. Thank youI've been playing around with meshing in the past couple of days, and I've developed a series of questions (Feel free to answer none, one, or all :-)
1) Is there a way to sequentially order execution of mesh modification? For example I wanted to create a SubdomainBoundingBox and then SideSetsBetweenSubdomains. If I included both of these in my input file, ran with --mesh-only, and then viewed the resulting mesh, I noticed that my sideset did not get created. However, if I ran with just SubdomainBoundingBox, then fed the resulting mesh back in as an input, and then ran with only SideSetsBetweenSubdomains, I got my desired sideset.
See "depends_on" parameter of MeshModifier class.
A good point. There's no functional reason to also name the nodeset. I just like seeing matching names when I look at the mesh information.
2) Running SideSetsBetweenSubdomains produces not only a new sideset but also a new nodeset. Would it not make sense to also give the nodeset the same boundary_name as the sideset instead of leaving it unnamed? Just add the following line at the end of SideSetsBetweenSubdomains.C?:
for (unsigned int i=0; i<boundary_ids.size(); ++i) {
boundary_info.sideset_name(boundary_ids[i]) = boundary_names[i];
boundary_info.nodeset_name(boundary_ids[i]) = boundary_names[i];
}
AFAIK, node sets are created from side sets by libMesh automatically, so that's probably what you are seeing. I guess the name does not get copied.If you are creating a named side set, why do you care about the node set name? You need the side set, right?
For consistency's sake, should the end of AddExtraNodeset.C call nodeset_name instead of sideset_name
, especially since in this case libmesh is not automatically creating a sideset? I believe there is no functional difference, but perhaps for consistency/clarity.
--
Alex
----David
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/CADJmAN-5N2NZJcWKnFMiU-SSeEmXZFpNMZ-YZbJJ2gHB1E2QWA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
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/560C3CB5.3010801%40ncsu.edu.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/D2328E0C.1DBAB%25Andrew.Wilkins%40csiro.au.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/CABk6%3D%2Bbgb0WD8utumRQJSOdbLgZzaWayOFb%3DcLK9e7sVMiPxkw%40mail.gmail.com.